Ubuntu K8S网络配置需完成基础网络设置、内核参数调整及网络插件部署,以下是关键步骤:
修改主机名与hosts文件
# 设置主机名(示例)
sudo hostnamectl set-hostname k8s-master
sudo hostnamectl set-hostname k8s-node1
# 编辑/etc/hosts,添加集群节点IP与主机名映射
sudo nano /etc/hosts
# 示例内容:
192.168.1.101 k8s-master
192.168.1.102 k8s-node1
配置静态IP(Netplan)
sudo nano /etc/netplan/00-installer-config.yaml
# 示例配置(ens33为网卡名,需替换为实际名称):
network:
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.101/24]
gateway4: 192.168.1.2
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
sudo netplan apply
关闭防火墙与Swap
# 关闭防火墙
sudo systemctl stop ufw && sudo systemctl disable ufw
# 关闭Swap
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
# 启用IP转发与网桥过滤
sudo nano /etc/sysctl.d/k8s.conf
# 添加以下内容:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
# 加载配置
sudo modprobe br_netfilter
sudo sysctl --system
K8S需通过CNI插件实现Pod网络,以下为常用插件安装示例:
Calico(推荐,支持网络策略)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Flannel(轻量级,适合简单场景)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Weave Net(支持加密,易部署)
kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')
kubectl get nodes
kubectl run test-pod --image=busybox -- sleep 3600
kubectl exec -it test-pod -- ping 192.168.1.102 # 替换为其他节点IP
参考资料: