• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

H3C VCFC-DC Kubernetes 插件安装手册-E31xx-5W103

01-正文

本章节下载  (343.49 KB)

01-正文


1 概述

Kubernetes是开源的容器集群管理平台,它支持自动化部署、大规模可伸缩、应用容器化管理。

Kubernetes使用Pod管理容器,Pod是一组紧密关联的容器集合,多个容器共享网络和文件系统,可以通过进程间通信和文件共享等简单高效的方式提供服务。

VCF Kubernetes插件是针对控制器推出的符合Kubernetes规范的网络插件,通过安装插件可实现Kubernetes平台与控制器的对接,Kubernetes平台中的Pod可在控制器中上线,由控制器提供流量监控、安全策略及网络服务等业务。

 


2 安装前的准备工作

2.1  硬件配置需求

VCF Kubernetes插件所需的服务器或虚拟机硬件配置需求如表2-1所示。

表2-1 硬件配置需求

CPU内核

内存

所需磁盘空间

4核及以上

8GB及以上

50GB及以上

 

2.2  软件配置需求

VCF Kubernetes插件所需的软件配置需求如表2-2所示。

表2-2 软件配置需求

软件配置需求

备注

Kubernetes

Kubernetes 1.9x-1.21x

vSwitch

·     主机Overlay:S1020V的版本信息请参见控制器版本说明书中的版本配套表

·     网络Overlay:Open vSwitch 2.9版本及以上

 


3 节点基础配置

安装VCF Kubernetes插件前,需要对Kubernetes Node节点进行基础配置工作。

3.1  主机Overlay Node节点

(1)     安装S1020V,具体操作步骤请参见《H3C S1020V虚拟交换机安装指导》。

(2)     在控制器上配置VDS,并在节点上添加VDS相关配置,此处以vSwitch名称为vds1-br、上行口为eth1、VXLAN隧道口名称为vxlan_vds1-br、VTEP IP为100.0.100.100为例。配置完成后,各主机Overlay Node节点间VTEP IP可通。

$ ovs-vsctl add-br vds1-br

$ ovs-vsctl add-port vds1-br eth1

$ ovs-vsctl add-port vds1-br vxlan_vds1-br -- set interface vxlan_vds1-br type=vxlan options:remote_ip=flow options:local_ip=100.0.100.100 options:key=flow

$ ip link set vds1-br up

$ ip addr add 100.0.100.100/16 dev vds1-br

提示

为了防止Node节点重启后VDS桥的IP地址丢失,可参考以下方式配置VDS桥地址。root用户下,vi编辑/etc/profile,非root用户需有/etc/profile写权限,并在下列命令前加sudo。按[i]键进入编辑模式,修改配置文件,文件末尾添加如下两行:

ip link set vds1-br up

ip addr add 100.0.100.100/16 dev vds1-br

修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存配置文件并退出vi编辑器。

 

(3)     在控制器上创建KVM类型的计算域,并关联VDS。

(4)     添加Node节点到计算域主机中。

3.2  网络Overlay Node节点

(1)     安装Open vSwitch。

$ yum install -y openvswitch

$ systemctl enable openvswitch.service

$ systemctl start openvswitch.service

(2)     在节点上安装并启动lldpd。

$ yum install -y lldpd

$ systemctl enable lldpd.service

$ systemctl start lldpd.service

(3)     在节点上添加Open vSwitch桥、配置OpenFlow版本、配置桥逃生模式,以Open vSwitch桥名为br-eno2为例。

$ ovs-vsctl add-br br-eno2

$ ovs-vsctl set bridge br-eno2 protocols=OpenFlow13

$ ovs-vsctl set-fail-mode br-eno2 secure

(4)     为Open vSwitch桥添加上行口,并设置上行口属性。以上行口为eno2为例。

$ ovs-vsctl add-port br-eno2 eno2

$ ovs-vsctl br-set-external-id br-eno2 uplinkInterface eno2

 


4 安装/升级/卸载VCF Kubernetes插件

4.1  安装VCF Kubernetes插件

4.1.1  上传并加载插件Docker镜像

使用本章节的步骤分别在Master节点和Node节点上传并加载Docker镜像。

(1)     获取VCF Kubernetes插件Docker镜像软件包,并将软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SFTP等文件传输协议将软件包上传到指定目录。

提示

使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。

 

(2)     加载插件Docker镜像,软件包名称格式为VCFC_DC_NET_PLUGIN-version.tar,其中version为版本号。

$ docker load -i VCFC_DC_NET_PLUGIN-E3103.tar

4.1.2  安装插件

在Master节点和Node节点上完成插件Docker镜像的加载后,需要在Master节点上安装插件,操作步骤如下:

1. 上传并修改配置文件

(1)     获取VCF Kubernetes插件配置文件,文件名称格式为VCFC_DC_NET_PLUGIN-version.yaml,其中version为版本号。并将文件拷贝至Master节点的待安装目录下,或通过FTP、TFTP、SFTP等文件传输协议将软件包上传到指定目录。

提示

使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。

 

(2)     通过vi编辑器打开配置文件。

$ vi VCFC_DC_NET_PLUGIN-E3103.yaml

(3)     按[i]键进入编辑模式,修改配置文件。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存配置文件并退出vi编辑器。

kind: ConfigMap

apiVersion: v1

metadata:

  name: vcfc-net-plugin

  namespace: kube-system

data:

  etcd_servers: "http://192.168.0.10:2379"

  k8s_api_server: "https://192.168.0.20:6443"

  k8s_ca: "/etc/vcfc-net-plugin/ca.crt"

  k8s_key: "/etc/vcfc-net-plugin/client.key"

  k8s_cert: "/etc/vcfc-net-plugin/client.crt"

  k8s_token: ""

---

kind: ConfigMap

apiVersion: v1

metadata:

  name: vcfc-net-master

  namespace: kube-system

data:

  vcfc_url: https://192.168.0.32:10443/portal

  vcfc_username: "admin"

  vcfc_password: "admin@123"

  vcfc_domain: "sdn"

  vcfc_client_timeout: "1800"

  vcfc_client_retry: "10"

  netoverlay_vlan_ranges: "node01:1:100,node02:101:200"

  log_dir: "/var/log/vcfc-net-plugin/"

  log_level: "1"

  bind_host: "0.0.0.0"

  bind_port: "9797"

  protocol: "http"

---

kind: ConfigMap

apiVersion: v1

metadata:

  name: vcfc-net-agent

  namespace: kube-system

data:

  net_masters: "auto"

  net_master_app_name: "vcfc-net-master"

  net_master_app_namespace: "kube-system"

  net_master_protocol: "http"

  net_master_port: "9797"

  overlay_mode: "auto"

  log_dir: "/var/log/vcfc-net-plugin/"

  log_level: "1"

  default_security_policy: "permit"

  host_networks: "192.168.10.0/24,192.168.2.0/24"

  host_to_container_network: "172.70.0.0/16"

  container_to_host_network: "172.60.0.0/16"

各参数含义如下:

·     etcd_servers:etcd服务API接口地址(以http://192.168.0.10:2379为例)。

·     k8s_api_server:K8s apiserver接口地址(以https://192.168.0.20:6443为例)。

·     k8s_ca:K8s apiserver客户端CA文件,仅当k8s_api_server使用HTTPS时生效(以/etc/vcfc-net-plugin/ca.crt为例)。

·     k8s_key:K8s apiserver客户端x509证书私钥文件,仅当k8s_api_server为HTTPS地址时生效,与k8s_cert配置项配合使用,当使用k8s_token认证时k8s_key无需配置(以/etc/vcfc-net-plugin/client.key为例)。

·     k8s_cert:K8s apiserver客户端x509证书文件,仅当k8s_api_server使用HTTPS时生效,当使用k8s_token认证时k8s_cert无需配置(以/etc/vcfc-net-plugin/client.crt为例)。

·     k8s_token:K8s apiserver客户端认证Token,仅当k8s_api_server为HTTPS地址时生效。当使用k8s_key和k8s_cert认证时k8s_token无需配置。

·     vcfc_url:SNA Center的登录地址(以https://192.168.0.32:10443/portal为例)。

·     vcfc_username:SNA Center的登录用户名(以admin为例)。

·     vcfc_password:SNA Center的用户名密码(以admin@123为例)。

·     vcfc_domain:控制器所在域的域名(以sdn为例)。

·     vcfc_client_timeout:等待控制器响应的时间,单位为秒(以1800为例)。

·     vcfc_client_retry:向控制器发送连接请求消息的尝试次数(以10为例)。

·     netoverlay_vlan_ranges:网络Overlay Node节点的VLAN范围,格式为节点名称:VLAN_min:VLAN_max,多个范围之间以逗号隔开(以node01:1:100,node02:101:200为例)。

·     log_dir:日志目录路径(以/var/log/vcfc-net-plugin/为例)。

·     log_level:日志等级(以1为例)。

·     bind_host:API接口绑定地址(以0.0.0.0为例)。

·     bind_port:API接口绑定端口号,建议与net_master_port保持一致(以9797为例)。

·     protocol:API接口协议,目前只支持HTTP。

·     net_masters:vcfc-net-master的IP地址,auto表示自动获取(以auto为例)。

·     net_master_app_name:vcfc-net-master app名称(以vcfc-net-master为例)。

·     net_master_app_namespace:vcfc-net-master app命名空间(以kube-system为例)。

·     net_master_protocol:vcfc-net-master API接口协议(以http为例)。

·     net_master_port:vcfc-net-master API接口端口号(以9797为例)。

·     overlay_mode:节点的Overlay模式,取值为net表示网络Overlay;取值为host表示主机Overlay;取值为auto表示根据Open vSwitch的配置情况自动判断Overlay模式(以auto为例)。

·     default_security_policy:默认安全策略,仅在网络Overlay模式下生效,取值为permit表示允许;取值为deny表示拒绝(以permit为例)。

·     host_networks:主机所在的网段,多个网段以逗号隔开(以192.168.10.0/24,192.168.2.0/24为例)。

·     host_to_container_network:主机访问容器时使用的NAT地址网段,该网段不能跟其他业务网段冲突(以172.70.0.0/16为例)。

·     container_to_host_network:容器访问主机时使用的NAT地址网段,该网段不能跟其他业务网段冲突(以172.60.0.0/16为例)。

2. 安装插件

使用配置文件安装插件。

$ kubectl create -f VCFC_DC_NET_PLUGIN-E3103.yaml

3. 验证VCF Kubernetes插件是否安装成功

验证插件的Pod是否运行正常,如显示Running表示运行正常

$ kubectl get pods -n kube-system | grep vcfc
vcfc-net-agent-mtwkl 1/1 Running 0 5d7h
vcfc-net-agent-rt2s6 1/1 Running 0 5d7h
vcfc-net-master-79bc68885c-2s9jm 1/1 Running 0 5d7h

4.2  卸载VCF Kubernetes插件

卸载VCF Kubernetes插件软件包。

$ kubectl delete -f VCFC_DC_NET_PLUGIN-E3103.yaml

4.3  升级VCF Kubernetes插件

4.3.1  上传Docker镜像

具体操作步骤请参见“4.1.1  上传并加载插件Docker镜像”。

4.3.2  升级插件

1. 上传并修改配置文件

具体操作步骤请参见“4.1.2  1. 上传并修改配置文件”。

2. 升级插件

$ kubectl delete -f VCFC_DC_NET_PLUGIN-E3104.yaml

$ kubectl create -f VCFC_DC_NET_PLUGIN-E3104.yaml

 


5 应用举例

VCF Kubernetes插件安装完成后,即完成了控制器与Kubernetes的对接,可实现Kubernetes上的Pod在控制器上线。

本例介绍在Kubernetes上创建Pod并上线至控制器的操作步骤。

(1)     在控制器上创建租户、虚拟链路层网络、子网、安全策略、网络策略等资源。

(2)     在Master节点上创建并修改Pod配置文件,文件名称以postgres-pod.yaml为例。

$ vi postgres-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: postgres

  labels:

    h3c.io/network_id: 9e9af886-e038-4c94-8573-11b89079196d

    h3c.io/tenant_id: 14ac7fc1-50d4-409a-ad76-4a0c35f429f3

    h3c.io/qos_policy_id: 38b51db9-cc1d-4b07-872e-cf2644bfc057

    h3c.io/security_group_id: 39b70d60-8bfd-4b27-bb4d-4b8f8955a2e6

spec:

  containers:

  - name: postgres

image: postgres

各参数含义如下:

·     h3c.io/network_id:控制器虚拟网络的UUID,必选。

·     h3c.io/tenant_id:控制器租户的UUID,必选。

·     h3c.io/qos_policy_id:控制器网络策略的UUID,可选。

·     h3c.io/security_group_id:控制器安全策略的UUID,可选。

(3)     使用配置文件创建Pod。

$ kubectl create -f postgres-pod.yaml

(4)     创建完成后,在控制器的虚拟端口页面可查看Pod的上线状态。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们