(接上篇)
安装kubeadm
安装kubeadm有两种方式,即通过操作系统的包管理工具进行安装和从Kubernetes GitHub仓库的release上下载pre-build的binary进行安装。下面对这两种安装方式进行详细说明。
1)通过操作系统的包管理工具安装kubeadm。
在需要安装kubeadm的节点上设置安装kubeadm需要的仓库,命令如下:
#cat < /etc/yum.repos.d/Kubernetes.repo
[Kubernetes]
name=Kubernetes
baseurl=packages.cloud.google.com/yum/repos/K…
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=packages.cloud.google.com/yum/doc/yum… packages.cloud.google.com/yum/doc/rpm…
EOF
将SELinux设置为permissive,命令如下:
#setenforce 0
#sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
安装kubeadm、Kubelet、kubectl,命令如下:
#yum install -y Kubelet kubeadm kubectl --disableexcludes=Kubernetes
将Kubelet设置为开机自启动,命令如下:
#systemctl enable --now Kubelet
注意:由于网络问题,通过操作系统包管理工具安装kubeadm很可能会失败。
2)通过在Kubernetes GitHub仓库的release上下载pre-build的binary安装kubeadm。
进入Kubernetes的GitHub 仓库上的release主页,找到需要下载的Kubernetes版本,比如要下载的版本是v1.16.6,如图2-7所示。
图 2-7 Kubernetes release版本
点击CHANGELOG-1.16.md进入binary下载列表,复制server binary下载地址,使用wget下载server binary压缩包,命令如下:
# wget dl.k8s.io/v1.16.6/Kub…
下载Kubernetes binary具体如图2-8所示。
图2-8 下载Kubernetes binary
解压Kubernetes-server-linux-amd64.tar.gz,命令如下:
# tar -zxvf Kubernetes-server-linux-amd64.tar.gz
解压Kubernetes binary,具体如图2-9所示。
图2-9 解压Kubernetes binary
由图2-9可知,kubeadm在Kubernetes/server/bin只需将其放入/usr/bin下即可,命令如下:#cp Kubernetes/server/bin/kubeadm /usr/bin
(3)使用kubeadm
使用kubeadm可以部署Kubernetes单节点集群、Kubernetes单控制节点集群和Kubernetes高可用集群。下面将详细说明部署3种集群的具体步骤和注意事项。
1)部署Kubernetes单节点集群。
使用kubeadm部署Kubernetes单节点集群,其实是在一个节点使用kubeadm部署Kubernetes的控制平面,然后对该节点进行设置,使其能够运行应用负载。
查看使用kubeadm部署Kubernetes集群时所需的镜像,命令如下:
#kubeadm config images list
所需镜像如图2-10所示。
图 2-10 kubeadm 所需镜像
由于这些镜像都是以k8s.gcr.io*开头,一般情况下,kubeadm无法正常下载这些镜像,需要提前准备好。获取这些镜像的方法不止一种,笔者建议通过dockerhub获得。
使用kubeadm创建Kubernetes集群,在创建集群的过程中会用到图2-10中列出的所有镜像,命令为#kubeadm init {args}。
在args中一般只需指定--control-plane-endpoint、--pod-network-cidr、--cri-socket、--apiserver-advertise-address参数。这些参数的具体作用如下。
1)--control-plane-endpoint:在搭建高可用Kubernetes集群时,为多个控制平面共用的域名或负载均衡IP;
2)--pod-network-cidr Kubernetes:集群中pod所用的IP池;
3)--cri-socket :指定Kubernetes集群使用的容器运行时;
4)--apiserver-advertise-address :指定kube-api-server绑定的IP地址,既可以是IPv4也可以是IPv6 。
我们可以根据具体情况具体指定以上参数。 「未完待续……」 点击下方标题可阅读技术文章