ubuntu

Ubuntu K8S网络配置怎么搞

小樊
71
2025-09-02 21:59:25
栏目: 智能运维

Ubuntu K8S网络配置需完成基础网络设置、内核参数调整及网络插件部署,以下是关键步骤:

一、基础网络配置

  1. 修改主机名与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  
    
  2. 配置静态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  
    
  3. 关闭防火墙与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  

三、安装网络插件(CNI)

K8S需通过CNI插件实现Pod网络,以下为常用插件安装示例:

  1. Calico(推荐,支持网络策略)

    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml  
    
  2. Flannel(轻量级,适合简单场景)

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml  
    
  3. Weave Net(支持加密,易部署)

    kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')  
    

四、验证网络

  1. 检查节点状态:
    kubectl get nodes  
    
  2. 测试Pod网络连通性:
    kubectl run test-pod --image=busybox -- sleep 3600  
    kubectl exec -it test-pod -- ping 192.168.1.102  # 替换为其他节点IP  
    

注意事项

参考资料:

0
看了该问题的人还看了