「连载」边缘计算(九)01-25:云、边、端的部署与配置(基础篇)

95 阅读3分钟

(接上篇)

安装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.png

图 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.png

图2-8 下载Kubernetes binary

解压Kubernetes-server-linux-amd64.tar.gz,命令如下:

# tar -zxvf Kubernetes-server-linux-amd64.tar.gz

解压Kubernetes binary,具体如图2-9所示。

2-9.png

图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.png

图 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 。

我们可以根据具体情况具体指定以上参数。 「未完待续……」 点击下方标题可阅读技术文章

「连载」边缘计算(一)01-16:边缘计算系统(基础篇)

juejin.cn/post/732453…

「连载」边缘计算(二)01-16:边缘计算系统(基础篇)

juejin.cn/post/732452…

「连载」边缘计算(三)01-17:边缘计算系统(基础篇)

juejin.cn/post/732488…

「连载」边缘计算(四)01-18:边缘计算系统(基础篇)

juejin.cn/post/732525…

「连载」边缘计算(五)01-19:云、边、端的部署与配置(基础篇)

juejin.cn/post/732542…

「连载」边缘计算(六)01-22:云、边、端的部署与配置(基础篇)

juejin.cn/post/732657…

「连载」边缘计算(七)01-23:云、边、端的部署与配置(基础篇)

juejin.cn/post/732686…

「连载」边缘计算(八)01-24:云、边、端的部署与配置(基础篇)

juejin.cn/post/732719…