在阿里云建立Kubernetetes-1.11.0镜像服务(高速)

在阿里云建立Kubernetetes-1.11.0镜像服务(高速)

Kubernetetes镜像在国内没法直接访问,致使安装费时、容易出错、难以排查。能够将其抓取到阿里云上面,提早拉取(docker pull)到本地,而后再运行kubeadm安装程序,就要快不少了。git

一、拉取镜像

  • 这里(registry.cn-hangzhou.aliyuncs.com/openthings)有拉取好的,能够运行下面的脚本(上面的连接)就直接pull到本地(速度很快):
echo ""
echo "=========================================================="
echo "Pull Kubernetes 1.11.0 Images from aliyuncs.com ......"
echo "=========================================================="
echo ""

MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings

## 拉取镜像
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0
docker pull ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18
docker pull ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1
docker pull ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3

## 添加Tag
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0 k8s.gcr.io/kube-apiserver-amd64:v1.11.0
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0 k8s.gcr.io/kube-scheduler-amd64:v1.11.0
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0 k8s.gcr.io/kube-controller-manager-amd64:v1.11.0
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0 k8s.gcr.io/kube-proxy-amd64:v1.11.0
docker tag ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18
docker tag ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
docker tag ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 k8s.gcr.io/coredns:1.1.3

echo ""
echo "=========================================================="
echo "Pull Kubernetes 1.11.0 Images FINISHED."
echo "into registry.cn-hangzhou.aliyuncs.com/openthings, "
echo "           by openthings@https://my.oschina.net/u/2306127."
echo "=========================================================="

echo ""

保存为aliyun-get-kubeimages-1.11.0.sh,复制上面内容进去,而后运行便可。github

二、安装Kubernetes

安装Kubernetes1.11.0(下面以Ubuntu16.04.03LTS为准),以下:docker

第一步,安装Kubeadm:api

echo "添加Kubernetes安装源认证key:"
sudo curl -sSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add

echo "添加Kubernetes安装源:"
sudo echo deb http://apt.kubernetes.io/ kubernetes-xenial main > /etc/apt/sources.list.d/kubernetes.list

echo "更新系统软件包列表:"
sudo apt update

echo "查看Kubernetes的可用版本:"
apt-cache madison kubeadm

echo "安装kubeadm 1.11.0: "
apt-get install -y kubeadm=1.11.0-00 kubectl=1.11.0-00 kubelet=1.11.0-00

第二步,经过kubeadm安装Kubernetes1.11.0:bash

echo ""
echo "=========================================================="
echo "Setup Kubernetes Cluster 1.11.0 using kubeadm......"
echo ""
echo "Please visit https://my.oschina.net/u/2306127/blog/1628082"
echo "=========================================================="
echo ""

echo "Close Swap, K8S required."
sudo swapoff -a
echo "请sudo nano /etc/fstab中永久删除或关闭swap分区,使用 # 注释掉便可。"
echo ""

echo "Close IPTable,K8S required."
sudo iptables -F
echo ""

echo ""
echo "Setup Kubernetes Cluster using kubeadm..."
sudo kubeadm init --kubernetes-version=v1.11.0 –pod-network-cidr 10.244.0.0/16 --feature-gates CoreDNS=true
echo ""

echo "Install flannel CNI network driver..."
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
echo ""

echo "Kubernetes status..."
kubectl get pod --all-namespaces
echo ""

echo "=========================================================="
echo "Please visit https://my.oschina.net/u/2306127/blog/1628082"
echo "=========================================================="
echo ""

三、构建本身的镜像库

  • 建立aliyun上的k8s镜像脚本以下,若是想本身作一个镜像库,能够拷下去本身修改:
echo ""
echo "=========================================================="
echo "Push Kubernetes 1.11.0 Images into aliyuncs.com ......"
echo "=========================================================="
echo ""

echo "docker tag to openthings ..."

## 添加Tag for registry.cn-hangzhou.aliyuncs.com/openthings

MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings

docker tag k8s.gcr.io/kube-apiserver-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0 
docker tag k8s.gcr.io/kube-scheduler-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0
docker tag k8s.gcr.io/kube-controller-manager-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0 
docker tag k8s.gcr.io/kube-proxy-amd64:v1.11.0 ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0 
docker tag k8s.gcr.io/etcd-amd64:3.2.18 ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 
docker tag k8s.gcr.io/pause-amd64:3.1 ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 
docker tag k8s.gcr.io/coredns:1.1.3 ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 

echo ""
echo "=========================================================="
echo ""

## Push镜像
echo ""
echo "1.k8s-kube-apiserver-amd64"
docker push ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.0

echo ""
echo "2.k8s-kube-controller-manager-amd64"
docker push ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.0

echo ""
echo "3.k8s-kube-scheduler-amd64"
docker push ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.0

echo ""
echo "4.k8s-kube-proxy-amd64"
docker push ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.0

echo ""
echo "5.k8s-etcd-amd64"
docker push ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18

echo ""
echo "6.k8s-pause-amd64"
docker push ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1

echo ""
echo "7.k8s-coredns"
docker push ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3

echo ""
echo "=========================================================="
echo "Push Kubernetes 1.11.0 Images FINISHED."
echo "into registry.cn-hangzhou.aliyuncs.com/openthings, "
echo "           by openthings@https://my.oschina.net/u/2306127."
echo "=========================================================="

echo ""

上面的脚本须要在可以同时访问gcr.io和阿里云的registry服务的机器上运行。镜像仓库服务我在这里用的阿里云的{华东1}的容器仓库服务(registry.cn-hangzhou.aliyuncs.com,须要注意:阿里云的每一个区都有registry服务区,是相互独立的),你能够改为本身的地址。app

相关文章
相关标签/搜索