在Debian上配置Kubernetes(K8s)网络通常涉及以下几个步骤:
设置主机名和更新hosts文件:
/etc/hosts 文件中添加节点IP和主机名的映射。sudo hostnamectl set-hostname "k8s-master01"
echo "192.168.16.20 k8s-master01.test.local k8s-master01" | sudo tee -a /etc/hosts
echo "192.168.16.21 k8s-worker01.test.local k8s-worker01" | sudo tee -a /etc/hosts
echo "192.168.16.22 k8s-worker02.test.local k8s-worker02" | sudo tee -a /etc/hosts
关闭所有节点的swap分区:
sudo swapoff -a
sudo sed -i '/ swap / s/1/g' /etc/fstab
配置网络接口:
/etc/network/interfaces 文件来配置静态IP地址或其他网络方式(DHCP或PPPoE)。auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
如果使用DHCP自动获取IP地址:auto eth0
iface eth0 inet dhcp
配置DNS:
/etc/resolv.conf 文件,添加DNS服务器地址:echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf
初始化Kubernetes集群:
kubeadm init 命令来初始化控制平面。需要指定API服务器地址、Pod网络CIDR、服务CIDR等参数。sudo kubeadm init --apiserver-advertise-address=192.168.1.100 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.0.0.0/16
安装网络插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
对于Calico,可以参考其官方文档进行安装:wget https://docs.projectcalico.org/manifests/calico.yaml
kubectl apply -f calico.yaml
配置kubectl:
kubectl 以连接到Kubernetes集群:mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
验证网络配置:
kubectl get nodes
kubectl get pods --all-namespaces
防火墙配置:
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
通过以上步骤,你可以在Debian上成功配置Kubernetes的网络环境。根据具体需求,可能还需要进行额外的配置,例如设置防火墙规则、配置Docker源等。