K8S入门(一) 环境准备

目的

  • 构建一个虚拟机,为后续搭建环境提供Node模板
  • 尽量避免对科学上网的依赖

依赖

  • VirtualBox 5.2.16
  • Ubuntu Sever 16.04 x64
  • Docker 18.06.0-ce
  • kubernetes v1.11.1

准备docker镜像仓库

提前准备好kube镜像,防止搭建环境时下载不到镜像而失败

  • k8s.gcr.io镜像列表

注意:镜像版本与Kuberneters版本保持一致

"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"

在阿里云平台上准备一台按量付费的海外云服务器(用完就可以释放),并在此服务器上下载上述docker镜像然后推送到自己的容器镜像服务中,参考阿里云容器镜像服务

  • 拉取镜像

#! /bin/bash

images=(
"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"
)
for image in ${images[@]}
do
    docker pull k8s.gcr.io/$image
done
  • 推送镜像

#! /bin/bash

images=(
"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"
)

mirror=your_registry_server
ns=your_registry_namespace

echo "[[mirror=$mirror, namespace=$ns"

for image in ${images[@]}
do
    echo "[[push image - $image"
    # tag gcr image
    docker tag k8s.gcr.io/$image $mirror/$ns/$image
    # push gcr image
    docker push $mirror/$ns/$image
done
  • 其他选择

可以将镜像全部打包存储在自己的硬盘上,需要的时候在解包到docker所在的机器上

# 打包
sudo docker save $image > $image.tar
tar zcvf images.tar.gz *.tar

# 下载到本地硬盘 
wget images.tar.gz

# 上传到模板机器上再解包
upload images.tar.gz
sudo docker load -i $image.tar

# 如果需要,重新打标签
# sudo docker tag

构建模板

制作一个模板虚拟机,方便在搭建环境时直接根据此模板生成Node虚拟机

新建vbox虚拟机并安装Ubuntu Server

安装docker-ce

参考文档

关闭交换分区

sudo swapoff -a

也可以在启动脚本(如/etc/init.d/rc.local)中,启动时自动关闭

修改网络配置

参考如下命令

sudo -s
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p

安装Kubernetes

参考官方文档,建议使用阿里云镜像安装

sudo -s
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 </etc/apt/sources.list.d/kubernetes.list
deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF  
apt-get update
apt-get install -y kubelet kubeadm kubectl

准备docker镜像

拉取前面所将的镜像仓库中的docker镜像并重新打标签

#! /bin/bash

images=(
"kube-proxy-amd64:v1.11.1"
"kube-controller-manager-amd64:v1.11.1"
"kube-scheduler-amd64:v1.11.1"
"kube-apiserver-amd64:v1.11.1"
"kubernetes-dashboard-amd64:v1.8.3"
"coredns:1.1.3"
"etcd-amd64:3.2.18"
"pause:3.1"
)

mirror=your_registry_server
ns=your_registry_namespace

echo "[[mirror=$mirror, namespace=$ns"

for image in ${images[@]}
do
    echo "[[pull image - $image"
    docker pull $mirror/$ns/$image
    docker tag $mirror/$ns/$image k8s.gcr.io/$image
done

完成

接下来我们就用这个模板来创建kuberneters集群节点主机,并搭建集群环境

我已准备好的镜像

registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-proxy-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-controller-manager-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-scheduler-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kube-apiserver-amd64:v1.11.1
registry.cn-hangzhou.aliyuncs.com/kuberneters/kubernetes-dashboard-amd64:v1.8.3
registry.cn-hangzhou.aliyuncs.com/kuberneters/coredns:1.1.3
registry.cn-hangzhou.aliyuncs.com/kuberneters/etcd-amd64:3.2.18
registry.cn-hangzhou.aliyuncs.com/kuberneters/pause:3.1

你可能感兴趣的:(K8S入门(一) 环境准备)