ubuntu

Ubuntu上Kubernetes网络配置怎么做

小樊
62
2025-10-04 02:54:33
栏目: 智能运维

Ubuntu上Kubernetes网络配置指南
在Ubuntu上配置Kubernetes网络需完成基础集群搭建网络插件选择与部署网络验证可选策略配置四大步骤,以下是详细操作流程:

一、准备工作:安装基础组件

在配置网络前,需确保Ubuntu节点已安装Docker(容器运行时)及Kubernetes核心组件(kubelet、kubeadm、kubectl)。

  1. 更新系统包
    sudo apt update && sudo apt upgrade -y
    
  2. 安装Docker
    sudo apt install -y docker.io
    sudo systemctl enable --now docker
    
  3. 添加Kubernetes仓库并安装组件
    sudo apt install -y apt-transport-https curl
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo apt update
    sudo apt install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl  # 锁定版本避免自动升级
    

二、初始化Kubernetes集群

仅在Master节点执行以下命令,初始化集群时需指定Pod网络CIDR(与后续网络插件网段一致,如10.244.0.0/16):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

初始化完成后,配置kubectl以连接集群:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

三、安装网络插件(关键步骤)

Kubernetes需通过网络插件实现Pod跨节点通信,常见插件及安装流程如下:

1. Calico(企业级,支持网络策略)

Calico基于BGP协议,提供高性能三层网络及细粒度安全策略,适合中大规模生产环境。

2. Flannel(轻量Overlay,适合开发测试)

Flannel通过Overlay网络实现跨节点通信,配置简单,资源消耗低,适合中小规模集群。

四、验证网络连通性

安装插件后,通过创建测试Pod验证网络是否正常:

  1. 创建Nginx测试Pod
    kubectl run nginx --image=nginx --port=80
    
  2. 获取Pod IP
    POD_IP=$(kubectl get pod nginx -o jsonpath='{.status.podIP}')
    
  3. 从其他节点Pod访问
    kubectl run test-pod --image=busybox --rm -it -- wget -qO- http://$POD_IP
    
    若能正常访问Nginx页面,说明网络配置成功。

五、配置网络策略(可选,增强安全性)

若需控制Pod间通信(如限制某命名空间Pod仅能访问特定服务),可使用Calico的网络策略功能。以下示例创建一个允许同一命名空间内Pod互相访问的策略:

apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
  name: allow-same-namespace
  namespace: default  # 应用到default命名空间
spec:
  selector: all()  # 匹配所有Pod
  ingress:
  - action: Allow
    source: {}  # 允许同一命名空间内的所有来源
  egress:
  - action: Allow
    destination: {}  # 允许访问同一命名空间内的所有目标

应用策略:

kubectl apply -f network-policy.yaml

注意事项

通过以上步骤,即可在Ubuntu上完成Kubernetes网络配置,实现Pod间的稳定通信。

0
看了该问题的人还看了