要在Debian系统上将节点加入到Kubernetes集群,可以按照以下步骤进行操作:
确保系统要求:
设置主机名和更新hosts文件:
在所有节点上使用 hostnamectl 命令设置主机名,并在 /etc/hosts 文件中添加节点IP和主机名的映射。
sudo hostnamectl set-hostname "k8s-master"
echo "192.168.1.236 k8s-master" | sudo tee -a /etc/hosts
关闭所有节点的swap分区: 为了让kubelet顺利运行,建议禁用swap。
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
为Kubernetes集群添加防火墙规则: 如果你的Debian系统已启用操作系统防火墙,请在所有节点上允许以下端口:
sudo ufw allow 6443/tcp
sudo ufw allow 2379/tcp
sudo ufw allow 2380/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 10251/tcp
sudo ufw allow 10252/tcp
sudo ufw allow 10255/tcp
sudo ufw reload
在所有节点上安装containerd运行时: containerd是Kubernetes支持的行业标准容器运行时。
sudo apt update
sudo apt install -y containerd
sudo modprobe overlay
sudo modprobe br_netfilter
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo sysctl --system
初始化主节点:
在主节点上使用 kubeadm init 命令初始化集群。
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
配置kubectl:
在主节点上配置 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为例,安装Flannel网络插件。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
加入工作节点:
在每个工作节点上,使用从主节点初始化中获得的 join 命令,将它们加入集群。
sudo kubeadm join 192.168.1.236:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
初始化完成后,你可以使用以下命令来验证集群是否正常运行:
kubectl get nodes
以上步骤涵盖了在Debian系统上将节点加入到Kubernetes集群的基本流程。