在CentOS上自動化部署Kubernetes集群可以使用多種工具,其中最流行的是Kubeadm。以下是一個使用Kubeadm自動化部署Kubernetes集群的示例腳本。這個腳本假設你在一個CentOS 7或更高版本的系統上操作,并且已經安裝了Docker和kubeadm、kubelet和kubectl。
#!/bin/bash
# 設置變量
MASTER_NODE="master"
WORKER_NODES=("node1" "node2" "node3")
NETWORK_CIDR="10.244.0.0/16"
POD_CIDR="10.244.0.0/16"
# 安裝Docker
echo "Installing Docker..."
yum install -y docker
systemctl enable docker
systemctl start docker
# 配置Docker守護進程
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# 重啟Docker服務
systemctl restart docker
# 安裝kubeadm, kubelet和kubectl
echo "Installing kubeadm, kubelet and kubectl..."
yum install -y kubeadm-$(curl -s https://mirrors.aliyun.com/kubernetes/yum/doc/yum-repo-gpg) kubectl-$(curl -s https://mirrors.aliyun.com/kubernetes/yum/doc/yum-repo-gpg) kubelet-$(curl -s https://mirrors.aliyun.com/kubernetes/yum/doc/yum-repo-gpg)
yum clean all
systemctl enable kubelet
systemctl start kubelet
# 初始化主節點
echo "Initializing the Kubernetes master node..."
kubeadm init --pod-network-cidr=$POD_CIDR
# 設置kubectl配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 安裝網絡插件(這里以Flannel為例)
echo "Installing Flannel network plugin..."
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 獲取加入集群的命令
echo "Get the join command for worker nodes..."
kubeadm token create --print-join-command
# 在工作節點上運行加入命令
for NODE in "${WORKER_NODES[@]}"; do
echo "On $NODE node, run the following command to join the cluster:"
ssh $NODE "bash -s" < <(kubeadm token create --print-join-command)
done
echo "Kubernetes cluster has been successfully deployed!"
在使用這個腳本之前,請確保你已經:
MASTER_NODE
變量設置為你的主節點名稱。WORKER_NODES
數組設置為你的工作節點名稱列表。NETWORK_CIDR
和POD_CIDR
。運行這個腳本將會:
請注意,這個腳本是一個基本的示例,實際的部署可能需要更多的配置和步驟,例如設置持久化存儲、配置Ingress控制器、設置監控和日志收集等。此外,根據你的具體需求,你可能需要選擇不同的網絡插件。