OVS组件组网操作

更新时间:2020/12/30 GMT+08:00
查看PDF
分享

前提条件

  1. 已在待部署节点安装Docker组件和Kubernetes组件(kubeadm,kubectl,kubelet)。
  2. 已在待部署节点安装OVS组件。
  3. 待部署节点可正常拉取Docker镜像。

    操作步骤

  4. 所有待部署节点启动OVS服务。k8s-OVS组件组网操作 - 图1说明:
    本节以默认安装路径“/usr”为例,若用户对于OVS修改了相关配置,命令需要进行对应的修改,详见《Open vSwitch安装指南(CentOS 7.6)》。 | export PATH=$PATH:/usr/share/openvswitch/scripts ovs-ctl start | | —- |

  5. 启动过程如下图1所示,启动完成后查询OVS虚拟网桥信息显示版本正常。
    图1 OVS启动过程图
    k8s-OVS组件组网操作 - 图2

  6. 初始化启动Kubernetes主节点。k8s-OVS组件组网操作 - 图3说明:
    本节以10.244.0.0/16网段作为网络驱动CIDR并使用默认网关作为网络广播地址为例,若用户需指定其他网段,命令需要进行对应的修改。 | kubeadm init —pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config | | —- |

  7. 初始化完成后如下图2图3所示,启动完成后查看Kubernetes集群Pods信息显示正常,Node状态处于NotReady状态,备份好输出中的kubeadm join命令备用,下一步进行网络平面部署。
    图2 Kubernetes主节点初始化成功图
    k8s-OVS组件组网操作 - 图4
    图3 Kubernetes主节点初始化状态图
    k8s-OVS组件组网操作 - 图5

  8. 编辑k-vswitch(OVS Kubernetes组件)部署yaml文件。下载并编辑k-vswitch.yaml文件,编辑配置文件中clusterCIDA、serviceCIDA和overlayType字段。
    clusterCIDA、serviceCIDA应配置为与实际Kubernetes集群规划的IP段相同;overlayType根据用户需求配置使用VxLAN或者GRE。
    图4 k-vswitch配置文件修改
    k8s-OVS组件组网操作 - 图6
  9. 部署集群网络组件。使用kubectl部署集群网络组件。 | kubectl apply -f k-vswitch.yaml | | —- |

  10. 部署完成后如下图5图6所示,coredns服务已处于Running状态,node状态处于Ready状态。
    图5 k-vswitch组件安装图
    k8s-OVS组件组网操作 - 图7
    图6 k-vswitch组件部署完成状态图
    k8s-OVS组件组网操作 - 图8

  11. 集群添加节点。在Kubernetes其他待部署节点,输入步骤二中备份的kubeadm join命令,将待部署节点添加到Kubernetes集群中。 | kubeadm join —token \ —discovery-token-ca-cert-hash sha256: | | —- |

  12. 图7所示,集群节点添加完毕后,应看到This node has joined the cluster提示,至此OVS组件组网操作步骤完成。
    图7 OVS组网添加节点图
    k8s-OVS组件组网操作 - 图9

    网络验证

  13. 拷贝下列内容,编辑Nginx部署测试yaml文件,测试节点内部网络与跨节点通信能力。 | apiVersion: apps/v1 kind: Deployment metadata: name: nginx-arm-deployment spec: selector: matchLabels: app: arm64v8_nginx replicas: 5 template: metadata: labels:

    1. app: arm64v8_nginx

    spec: containers:

    • name: nginx image: nginx:latest ports:
      • containerPort: 80 | | —- |

  14. 在命令行使用kubectl命令部署Nginx服务,完成后如图8所示,服务正常运行,且已分配对应的IP地址。 | kubectl apply -f nginx.yaml | | —- |

  15. 图8 OVS组网业务部署测试图
    k8s-OVS组件组网操作 - 图10

  16. 查看节点路由信息和OVS网桥状态,如图9所示,路由信息显示正常,OVS已在k-vswitch0网桥配置cluster-wide和node-local端口信息,所有服务端口以veth pair形式在网桥上挂载端口。节点内与节点间可正常通过路由和OVS网桥完成互相通信。图9 OVS组网节点路由&网桥信息
    k8s-OVS组件组网操作 - 图11