Kubernetes国内镜像、下载安装包和拉取gcr.io镜像

Kubernets国内镜像

阿里云提供了Kubernetes国内镜像来安装kubeletkubectlkubeadmlinux

登录阿里云镜像网站:https://opsx.alibaba.com/mirrorgit

查找关键字“kubernetes”,点击【帮助】按钮。github

Debian / Ubuntu

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF  
apt-get update
apt-get install -y kubelet kubeadm kubectl

CentOS / RHEL / Fedora

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

下载安装包

好比下载kubectl v1.10.3:web

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.10.3/bin/linux/amd64/kubectl

参考文档:
* https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-via-curldocker

拉取gcr.io镜像

经过阿里云镜像+GitHub来在gcr.io镜像基础上,经过Dockerfile从新构建一个镜像,并修改标签为同名gcr.io镜像。ubuntu

参考文档:
* 如何借助阿里云免费获取gcr.io上的镜像centos

以k8s.gcr.io/kube-apiserver-amd64:v1.10.3为例:api

Fork docker-library in GitHub

  1. 参照上面的参考文章,fork了docker-library的repository。(若是想直接使用v1.10.3版本也能够直接folk我修改后的 docker-library )
  2. 在kube-apiserver-amd64目录下建立一个v1.10.3子目录
  3. 在该子目录下复制一个Dockerfile,修改基础镜像版本为v1.10.3,例子:
FROM gcr.io/google_containers/kube-apiserver-amd64:v1.10.3

在阿里云上新建镜像仓库

打开阿里云容器镜像服务:https://cr.console.aliyun.com , 新建一个镜像仓库。bash

  1. 选择离本身比较近的区域
  2. 按提示填写信息
  3. 选择”代码变动时自动构建镜像“和”海外机器构建“,并填写构建信息,好比:

代码分支:branches:master
Dockerfile目录:/kube-apiserver-amd64/v1.10.3
Dockerfile文件名:Dockerfile
镜像版本:v1.10.3curl

构建、拉取镜像和打gcr.io标签

  1. 点击【管理】,选择【构建】,点击【当即构建】
  2. 构建成功后,在【基础信息】中查看用法
  3. 拉取新构建成功的镜像,好比:
# 拉取新构建的镜像
docker pull registry.cn-shenzhen.aliyuncs.com/cookcodeblog/kube-apiserver-amd64:v1.10.3
# 打上gcr.io同名标签
docker tag registry.cn-shenzhen.aliyuncs.com/cookcodeblog/kube-apiserver-amd64:v1.10.3 k8s.gcr.io/kube-apiserver-amd64:v1.10.3
# 查看镜像
docker images
# 删除新构建的镜像,只保留gcr.io镜像
docker rmi registry.cn-shenzhen.aliyuncs.com/cookcodeblog/kube-apiserver-amd64:v1.10.3
# 再次查看镜像
docker images

一个拉取kubeadm镜像的脚本请参见:https://github.com/cookcodeblog/k8s-deploy/blob/master/kubeadm/04_pull_kubernetes_images_from_aliyun.sh

查看gcr.io官方镜像

在前面的docker-library中须要知道准确的镜像名称和镜像标签。

在科学上网的状况下,打开 https://console.cloud.google.com/gcr/images/google-containers/GLOBAL ,在右边的“过滤条件“中输入关键词来搜索。

而后再选择正确的镜像。

一般,gcr.io官方镜像的命名规则为:
gcr.io/google_containers/IMAGE_NAME:IMAGE_TAG

好比: gcr.io/google_containers/kube-apiserver-amd64:v1.10.3