---
title: OVS组件组网操作
description: "- 已在待部署节点安装Docker组件和Kubernetes组件（kubeadm，kubectl，kubelet）。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/Docker/kunpengcontainer_06_0016.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/Docker/kunpengcontainer_06_0016.html
indexId: 1e67d5321e81a2507a2ad2995c913b279d4ec395af56fb119d2ec3627791ce5775
---
# OVS组件组网操作

#### 前提条件

- 已在待部署节点安装Docker组件和Kubernetes组件（kubeadm，kubectl，kubelet）。
- 已在待部署节点安装OVS组件。
- 待部署节点可正常拉取Docker镜像。


#### 操作步骤

1. 所有待部署节点启动OVS服务。
  本节以默认安装路径“/usr”为例，若用户对于OVS修改了相关配置，命令需要进行对应的修改，请参见《Open vSwitch安装指南(https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/Open vSwitch/kunpengovs_03_0001.html)》。

  1 2 export PATH=$PATH:/usr/share/openvswitch/scripts ovs-ctl start

  启动过程如下图1所示，启动完成后查询OVS虚拟网桥信息显示版本正常。

  图1 OVS启动过程图


2. 初始化启动Kubernetes主节点。
  本节以10.244.0.0/16网段作为网络驱动CIDR并使用默认网关作为网络广播地址为例，若用户需指定其他网段，命令需要进行对应的修改。

  1 2 3 4 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

  初始化完成后如下图2和图3所示，启动完成后查看Kubernetes集群Pods信息显示正常，Node状态处于NotReady状态，备份好输出中的kubeadm join命令备用，下一步进行网络平面部署。

  图2 Kubernetes主节点初始化成功图

  图3 Kubernetes主节点初始化状态图


3. 编辑k-vswitch（OVS Kubernetes组件）部署yaml文件。
  下载并编辑k-vswitch.yaml文件，编辑配置文件中clusterCIDR、serviceCIDR和overlayType字段。

  clusterCIDR、serviceCIDR应配置为与实际Kubernetes集群规划的IP地址段相同；overlayType根据用户需求配置，可选择VxLAN或者GRE。

  图4 k-vswitch配置文件修改


4. 部署集群网络组件。
  使用kubectl部署集群网络组件。

  1 kubectl apply -f k-vswitch.yaml

  部署完成后如下图5和图6所示，coredns服务已处于Running状态，node状态处于Ready状态。

  图5 k-vswitch组件安装图

  图6 k-vswitch组件部署完成状态图


5. 集群添加节点。
  在Kubernetes其他待部署节点，输入步骤二中备份的kubeadm join命令，将待部署节点添加到Kubernetes集群中。

  1 2 kubeadm join <master-ip:port> --token <your-token> \ --discovery-token-ca-cert-hash sha256:<your-sha256-ca>

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

  图7 OVS组网添加节点图


#### 网络验证

1. 拷贝下列内容，编辑Nginx部署测试yaml文件，测试节点内部网络与跨节点通信能力。
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-arm-deployment spec: selector: matchLabels: app: arm64v8_nginx replicas: 5 template: metadata: labels: app: arm64v8_nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80

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

  图8 OVS组网业务部署测试图

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