搭建前的说明

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

搭建步骤

  1. 修改每个服务器的hostname,要确保每个hostname都不是localhost
# 修改 hostname
hostnamectl set-hostname your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts
  1. 安装docker和kubelet
# 在 master 节点和 worker 节点都要执行

curl -sSL https://kuboard.cn/install-script/v1.16.0/install-kubelet.sh | sh
  1. 初始化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
  1. 获取master节点的加入集群的命令

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

然后会得到下面的命令

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

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

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

然后在worker节点运行第4步得到的命令

kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt     --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
  1. 查看集群加入状态
# 只在 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    <none>   2m26s   v1.16.0
demo-worker-a-2   Ready    <none>   3m56s   v1.16.0

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

  1. 移除worker节点

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

# 在 worker 节点执行
kubeadm reset

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

# 其中节点名为在master节点执行kubectl get nodes 得到的节点名
  1. 安装 Ingress Controller
# 只在 master 节点执行
kubectl apply -f https://kuboard.cn/install-script/v1.16.0/nginx-ingress.yaml

结尾

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