购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 安装Kubernetes集群

本节主要是完整地搭建一套Kubernetes集群出来,包括实验环境的准备、安装Master、把Worker加入集群、安装Calico网络等。

3.2.1 实验拓扑图及环境

要完成本章及后续的实验,我们需要3台机器:1台Master,2台Worker。实验拓扑图如图3-5所示。

图3-5 实验拓扑图

机器的配置如表3-3所示。

表3-3 机器的配置

3.2.2 实验准备

在安装Kubernetes之前,需要设置好yum源、关闭SELinux及关闭Swap等。下面的准备操作都是在所有节点上进行的。

第1步 建议所有节点使用CentOS 7.6,在所有节点上同步/etc/hosts。

第2步 在所有节点上配置防火墙和关闭SELinux。

注意

这里SELinux的配置,如果getenforce的值原来不是Disabled,则需要重启系统才能生效。

第3步 在所有节点上关闭Swap,并注释掉/etc/fstab里的Swap相关条目。

第4步 在所有节点上配置好yum源(请提前安装好wget,再执行下面的操作)。

第5步 在所有节点上设置内核参数。

让其立即生效。

第6步 在所有节点上安装并启动Containerd,并设置Containerd自动启动。

第7步 修改Containerd的配置文件。

删除默认的配置文件,然后下载已经修改好的配置文件。

第8步 安装nerdctl和CNI网络插件。

下载地址如下。

下载好之后,按如下步骤进行安装(可以参考前面容器部分的安装步骤)。

第9步 在所有节点上安装软件包。

重启Containerd服务。

第10步 在所有节点上安装软件包。

注意

安装时如果没有指定版本,则安装的是最新版本。

第11步 在所有节点上启动Kubelet,并设置开机自动启动。

注意

此时Kubelet的状态为Activating。

3.2.3 在Master上执行初始化

下面的操作是在vms10上进行的,目的是把vms10配置成Master。

第1步 在Master上执行初始化。

上面输出的是安装完之后的操作,按上面的提示分别执行每条命令。

注意

(1)这里使用--image-repository选项来指定使用阿里云的镜像。

(2)--pod-network-cidr=10.244.0.0/16 在这里指的是Pod的网段。

第2步 复制Kubeconfig文件。

上面的提示中,如下命令是用于把Worker加入Kubernetes集群的命令。

如果忘记了保存此命令,可以使用如下命令获取。

3.2.4 配置Worker加入集群

下面的步骤是把vms11和vms12以Worker的身份加入Kubernetes集群。

第1步 在vms11和vms12上分别执行以下命令。

第2步 切换到Master上,可以看到所有节点已经加入集群了。

可以看到,所有节点的状态为NotReady,我们需要安装Calico网络才能使K8s正常工作。

3.2.5 安装Calico网络

因为在整个Kubernetes集群里,Pod都是分布在不同的主机上的,为了实现这些Pod的跨主机通信,必须安装CNI网络插件,这里选择Calico网络。

第1步 在Master上下载配置Calico网络的YAML文件。

下载地址为https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/calico.yaml或https://docs.tigera.io/calico/latest/getting-started/(图3-6)。

图3-6 下载配置Calico网络的YAML文件

如果下载不下来,可以按如下命令下载。

第2步 修改calico.yaml里的Pod网段。

把calico.yaml里Pod所在的网段改为kubeadm init时--pod-network-cidr选项所指定的网段,用Vim编辑器打开此文件后查找“IPV4POOL_CIDR”,按如下标记进行修改。

把两个#及#后面的空格去掉,并把192.168.0.0/16改为10.244.0.0/16。

改的时候请看清缩进关系,即这里的对齐关系。同时这里添加了变量:

这里的ens32要根据自己机器上的网卡名进行修改,比如所使用的服务器网卡名是eth0,这里就改为eth0,笔者的网卡名是ens32,所以这里写的是ens32。

修改这个的原因请参阅文章https://www.rhce.cc/3374.html。

注意

下载的这个calico.yaml已经改好了,特别要注意上面说的网卡名。

第3步 提前下载所需要的镜像。

查看此文件用哪些镜像。

建议提前在所有节点(包括Master)上把这些镜像拉取下来。

第4步 安装Calico网络。

在Master上执行如下命令。

第5步 验证结果。

再次在Master上运行kubectl get nodes命令,查看运行结果。

可以看到,所有节点的状态已经变为Ready了。 9AeJ33+q/jocSqL8DdF/mLLjkh7T132sAUZzdLnbr9ZT08s9Nr83tNMGpdatm2pG

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开