debian

Debian上K8s的网络配置怎么做

小樊
39
2025-03-29 06:30:16
栏目: 智能运维

在Debian上配置Kubernetes(K8s)网络通常涉及设置Pod网络,以便集群中的Pod能够相互通信。以下是一个基本的步骤指南,帮助你在Debian上为Kubernetes集群配置网络。

1. 设置主机名和更新hosts文件

首先,你需要在每个节点上设置主机名,并在/etc/hosts文件中添加相应的条目以确保主机名解析正确。

sudo hostnamectl set-hostname "k8s-master01"
echo "192.168.16.20 k8s-master01.test.local k8s-master01" | sudo tee -a /etc/hosts

sudo hostnamectl set-hostname "k8s-node01"
echo "192.168.16.21 k8s-node01.test.local k8s-node01" | sudo tee -a /etc/hosts

sudo hostnamectl set-hostname "k8s-node02"
echo "192.168.16.22 k8s-node02.test.local k8s-node02" | sudo tee -a /etc/hosts

2. 关闭所有节点的swap分区

为了确保kubelet顺利运行,建议禁用swap分区。

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3. 为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

4. 安装containerd运行时

在所有节点上安装containerd运行时,并设置必要的内核参数。

sudo apt update
sudo apt install -y containerd

cat <<eof | sudo tee /etc/modules-load.d/containerd.conf
overlaybr_netfilter
eof

sudo modprobe overlay
sudo modprobe br_netfilter

cat <<eof | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
eof

sudo sysctl --system

5. 安装Kubernetes工具

在所有节点上安装kubeadm、kubelet和kubectl。

sudo apt update
sudo apt install -y apt-transport-https curl
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

6. 初始化Kubernetes集群

在主节点上使用kubeadm初始化集群,并安装网络插件(例如Calico)。

sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers

7. 配置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

8. 部署Pod网络

部署Calico或其他网络插件的YAML文件。

wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
kubectl apply -f calico.yaml

9. 验证网络配置

验证网络配置是否成功,例如通过部署一个简单的Nginx部署并测试Pod之间的通信。

kubectl create deployment nginx-app --image=nginx --replicas=2
kubectl expose deployment nginx-app --name=nginx-web-svc --type=NodePort --port=80 --target-port=80

curl http://<node-ip>:31743

通过以上步骤,你应该能够在Debian上成功配置Kubernetes集群的网络。根据具体需求,你可能还需要调整网络策略和防火墙规则。

0
看了该问题的人还看了