温馨提示×

Debian上Kubernetes部署自动化脚本

小樊
36
2025-12-26 21:10:04
栏目: 智能运维

在Debian上自动化部署Kubernetes集群可以使用多种工具,比如kubeadm、Kubespray、Minikube等。下面是一个使用kubeadm的基本自动化脚本示例,用于在多个Debian节点上部署Kubernetes集群。

请注意,这个脚本假设你已经有了一个Debian服务器作为控制平面(master)节点,并且至少有一个工作节点(worker)。此外,所有节点都已经安装了Docker和kubeadm、kubelet和kubectl。

#!/bin/bash

# 设置变量
MASTER_IP="192.168.1.100" # 控制平面节点的IP地址
WORKER_IPS=("192.168.1.101" "192.168.1.102") # 工作节点的IP地址数组
KUBE_NETWORK="calico" # 网络插件

# 初始化控制平面
echo "初始化控制平面..."
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=$MASTER_IP

# 设置kubectl配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 安装网络插件
echo "安装网络插件 $KUBE_NETWORK..."
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml

# 将工作节点加入集群
for WORKER_IP in "${WORKER_IPS[@]}"; do
    echo "将工作节点 $WORKER_IP 加入集群..."
    kubeadm join $MASTER_IP:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
done

echo "Kubernetes集群部署完成!"

在使用这个脚本之前,你需要替换以下变量:

  • MASTER_IP:控制平面节点的IP地址。
  • WORKER_IPS:一个包含所有工作节点IP地址的数组。
  • KUBE_NETWORK:你想要使用的网络插件,例如Calico、Flannel等。

此外,你需要从kubeadm join命令的输出中获取<token><hash>值,并将它们替换到脚本中的相应位置。

请确保在运行脚本之前,所有的节点都已经配置了正确的DNS设置,并且可以互相通信。你可能还需要配置防火墙规则来允许Kubernetes所需的端口通信。

这个脚本只是一个基本的示例,实际的部署可能会更加复杂,包括设置高可用性控制平面、配置持久存储、设置监控和日志收集等。根据你的具体需求,可能需要进行相应的调整。

0