---
title: 手动安装
description: "- 已在待部署节点部署Docker组件和Kubernetes组件（kubeadm，kubectl，kubelet）。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/Kubernetes/kunpengkubeovn_06_0010.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/Kubernetes/kunpengkubeovn_06_0010.html
indexId: 06153c1a39b39ba0829118781f70553274c42a73f729a5c0835f4e13623482d377
---
# 手动安装

#### 前提条件

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


#### 操作步骤

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

  1 2 3 4 kubeadm init --pod-network-cidr=10.16.0.0/16 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config

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

  图1 Kubernetes主节点初始化完成

  图2 Kubernetes主节点初始化状态

2. 部署相关CRD。
  Kube-OVN创建了Subnet、IP和VLAN三种CRD资源方便网络的管理，如CRD部署YAML所示，创建crd.yaml文件，使用kubectl命令创建CRD资源管理。

  1 kubectl apply -f crd.yaml

  执行完成后，可通过kubectl get crd命令查看添加结果，结果应如下图3所示。

  图3 CRD部署完成状态

3. 标注ovndb所在节点。
  Kube-OVN需要设定OVN的主节点，用于部署ovndb将数据持久化存储在宿主机硬盘上。

  1 kubectl label node <node-name to deploy ovndb> kube-ovn/role=master

  指定完成后，通过kubectl get node --show-labels命令可以查看到对应的标签。

  图4 标注完成后状态

4. 部署OVN。
  Kube-OVN底层依赖Open vSwitch社区提供的OVS和OVN，如OVN部署YAML章节所示，创建ovn.yaml文件；使用kubectl命令部署OVN/OVS。

  1 kubectl apply -f ovn.yaml

  执行完成后，可通过kubectl get pods -A的方式查看Pods状态，结果应如下图5所示。

  图5 OVN部署完成状态

5. 部署Kube-OVN-Controller及CNI Server。
  默认配置下Kube-OVN将会使用10.16.0.0/16作为默认子网，100.64.0.1/16作为主机和Pod通信的子网，使用Kubernetes中的Node主网卡作为Pod流量通信使用网卡，并开启流量镜像模式。部署时需先获取并编辑kube-ovn.yaml文件，如Kube-OVN部署YAML章节所示，使用kubectl命令部署Kube-OVN。

  1 kubectl apply -f kube-ovn.yaml

  执行完成后，可通过kubectl get pods -A的方式查看Pods状态，并通过kubectl get subnet的方式观察自动创建的子网，结果应如下图6所示。

  图6 Kube-OVN部署完成状态

6. 安装kubectl插件。
  为了更好地对网络质量进行监控以及对故障进行排查诊断，Kube-OVN提供了kubectl的插件，推荐安装。

  如kubectl插件章节所示，将内容保存为kubectl-ko文件，并将文件复制到$PATH的某个目录下（以“/usr/local/bin”为例），添加可执行权限。

  1 2 cp kubectl-ko /usr/local/bin/kubectl-ko chmod +x /usr/local/bin/kubectl-ko

  执行完成后，使用kubectl命令检查插件状态。

  1 kubectl plugin list

  结果应如下图所示：

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

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

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

  图7 添加节点
