溫馨提示×

CentOS上Kubernetes部署的自動化腳本示例

小樊
48
2025-07-27 02:36:32
欄目: 智能運維

在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!"

在使用這個腳本之前,請確保你已經:

  1. 準備好了CentOS服務器,并且它們之間可以通過SSH無密碼登錄。
  2. MASTER_NODE變量設置為你的主節點名稱。
  3. WORKER_NODES數組設置為你的工作節點名稱列表。
  4. 根據你的網絡環境調整NETWORK_CIDRPOD_CIDR。

運行這個腳本將會:

  • 安裝Docker并配置它作為Kubernetes的容器運行時。
  • 安裝kubeadm、kubelet和kubectl。
  • 初始化Kubernetes主節點。
  • 配置kubectl以便你可以從主節點管理集群。
  • 安裝Flannel網絡插件以便Pod間可以通信。
  • 輸出工作節點加入集群的命令,你需要在每個工作節點上運行這些命令來完成集群的部署。

請注意,這個腳本是一個基本的示例,實際的部署可能需要更多的配置和步驟,例如設置持久化存儲、配置Ingress控制器、設置監控和日志收集等。此外,根據你的具體需求,你可能需要選擇不同的網絡插件。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女