在centos上搭建Kubernetes集群


搭建前的说明

  • centos系统需要使用7.5以上的版本
  • 单个系统的配置需要在2核4G以上
  • 每个系统都需要安装wget插件

搭建步骤

修改每个服务器的hostname,要确保每个hostname都不是localhost

# 修改 hostname
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts 

安装docker和kubelet

#  master 节点和 worker 节点都要执行

curl -sSL https://kuboard.cn/install-script/v1.16.0/install-kubelet.sh | sh 

初始化master节点

初始化 master 节点时,如果因为中间某些步骤的配置出错,想要重新初始化 master 节点,请先执行 kubeadm reset 操作

# 只在 master 节点执行
# 替换 x.x.x.x  master 节点实际 IP(请使用内网 IP)
# export 命令只在当前 shell 会话中有效,开启新的 shell 窗口后,如果要继续安装过程,请重新执行此处的 export 命令
export MASTER_IP=x.x.x.x
# 替换 apiserver.demo  您想要的 dnsName (不建议使用 master  hostname 作为 APISERVER_NAME)
export APISERVER_NAME=apiserver.demo
# Kubernetes 容器组所在的网段,该网段安装完成后,由 kubernetes 创建,事先并不存在于您的物理网络中
export POD_SUBNET=10.100.0.1/20	#该值一般不动
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.0/init-master.sh | sh 

获取master节点的加入集群的命令

# 只在 master 节点执行
kubeadm token create --print-join-command 

然后会得到下面的命令

kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303 

保存这个命令,待会在worker节点会用到

初始化worker节点

# 只在 worker 节点执行
# 替换 ${MASTER_IP}  master 节点实际 IP
# 替换 ${APISERVER_NAME} 为初始化 master 节点时所使用的 APISERVER_NAME
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts 

然后在worker节点运行命令:

kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303 

查看集群加入状态

# 只在 master 节点执行
kubectl get nodes -o wide 

输出结果如下

[root@demo-master-a-1 ~]# kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
demo-master-a-1   Ready    master   5m3s    v1.16.0
demo-worker-a-1   Ready       2m26s   v1.16.0
demo-worker-a-2   Ready       3m56s   v1.16.0 

其中每个节点都变成Ready状态即表示创建成功,本次示例中使用了一个master节点,两个worker节点,所有节点都变为了Ready状态,表示创建成功。变为Ready状态的节点最长可能需要十多分钟,请耐心等待。

移除worker节点

当不需要该wroker节点的时候,可以选择移除该节点

#  worker 节点执行
kubeadm reset

#  master 节点执行
kubectl delete node 节点名

# 其中节点名为在master节点执行kubectl get nodes 得到的节点名 

安装 Ingress Controller(可选)

# 只在 master 节点执行
kubectl apply -f https://kuboard.cn/install-script/v1.16.0/nginx-ingress.yaml 

结尾

至此,集群的搭建也就完成了,当你需要添加新的worker节点的时候,只需要在新机器上执行第2步和第5步即可,祝大家搭建集群愉快!