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

H3C SeerEngine-DC Kubernetes插件安装指导-E36xx-5W608

01-正文

本章节下载 01-正文  (465.25 KB)

01-正文


1 概述

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

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

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

 


2 安装前的准备工作

2.1  硬件配置需求

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

表2-1 硬件配置需求

CPU内核

内存

所需磁盘空间

4核及以上

8GB及以上

50GB及以上

 

2.2  软件配置需求

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

表2-2 软件配置需求

软件配置需求

备注

Kubernetes

Kubernetes 1.9.X-1.21.X

vSwitch

·     主机Overlay:S1020V的版本信息请参见SeerEngine-DC版本说明书中的版本配套表

·     网络Overlay:Open vSwitch 2.9版本及以上。Open vSwitch与操作系统的内核版本配套关系如表2-3所示

 

表2-3 Open vSwitch版本与内核版本配套关系

Open vSwitch版本

Linux内核版本

2.9.x

3.10-4.13

2.10.x

3.16-4.17

2.11.x

3.16-4.18

2.12.x

3.16-5.0

2.13.x

3.16-5.0

2.14.x

3.16-5.5

2.15.x

3.16-5.8

 


3 节点基础配置

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

3.1  主机Overlay Node节点

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

(2)     在SeerEngine-DC上配置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。Open vSwitch版本与操作系统内核版本的配套关系如表2-3所示。

$ 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

(5)     在裸金属中部署K8s时,需额外为OVS桥添加三个属性:控制器上裸金属对应的虚拟端口的UUID,该虚拟端口所在虚拟链路层网络的UUID,以及K8s集群管理网网关。分别以1e10786f-f894-533f-838c-23c2766ed1d1、3c07b72c-4ee8-4b2a-aff2-cacb3d84c8f6和10.10.0.254为例。

$ ovs-vsctl br-set-external-id br-eno2 uplinkNetworkId 3c07b72c-4ee8-4b2a-aff2-cacb3d84c8f6

$ ovs-vsctl br-set-external-id br-eno2 uplinkPortId 1e10786f-f894-533f-838c-23c2766ed1d1

$ ovs-vsctl br-set-external-id br-eno2 managementNetworkGw 10.10.0.254

(6)     在OpenStack使用Trunk Port方式创建的虚拟机中部署K8s时,需额外为OVS桥添加六个属性:

¡     OpenStack上对应的Trunk Port的UUID,以1e10786f-f894-533f-838c-23c2766ed1d1为例

¡     该Trunk Port所在虚拟链路层网络的UUID,以3c07b72c-4ee8-4b2a-aff2-cacb3d84c8f6为例

¡     K8s集群管理网网关,以10.10.0.254为例

¡     对接的云场景,仅支持OpenStack

¡     虚拟化类型,仅支持KVM

¡     可接受类型,仅支持Netoverlay

另外还需要在虚拟机所在的宿主机上配置lldpd服务,具体配置方式请参见步骤“(2)”。

$ ovs-vsctl br-set-external-id br-eno2 uplinkNetworkId 3c07b72c-4ee8-4b2a-aff2-cacb3d84c8f6

$ ovs-vsctl br-set-external-id br-eno2 uplinkPortId 1e10786f-f894-533f-838c-23c2766ed1d1

$ ovs-vsctl br-set-external-id br-eno2 managementNetworkGw 10.10.0.254

$ ovs-vsctl br-set-external-id br-eno2 cloud openstack

$ ovs-vsctl br-set-external-id br-eno2 virtType kvm

$ ovs-vsctl br-set-external-id br-eno2 accessType netoverlay

 


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

4.1  安装SDN Kubernetes插件

4.1.1  上传并加载插件Docker镜像

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

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

提示

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

·     不同架构服务器使用不同镜像包,x86_64服务器使用SeerEngine_DC_NET_PLUGIN-version.tar.gz,ARM服务器使用SeerEngine_DC_NET_PLUGIN-version-ARM64.tar.gz。

 

(2)     解压软件包。

$ tar -xzvf SeerEngine_DC_NET_PLUGIN-E3606.tar.gz

SeerEngine_DC_NET_PLUGIN-E3606.tar

SeerEngine_DC_NET_PLUGIN-E3606.yaml

SeerEngine_DC_NET_PLUGIN-E3606.crd.yaml

webhook-create-signed-cert.sh

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

$ docker load -i SeerEngine_DC_NET_PLUGIN-E3606.tar

4.1.2  安装插件

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

1. 上传并执行预处理脚本

(1)     获取预处理脚本,名称为webhook-create-signed-cert.sh,并上传到Master节点待安装目录下。

(2)     执行预处理脚本。

$ sh webhook-create-signed-cert.sh

2. 上传并修改配置文件

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

提示

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

 

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

$ vi SeerEngine_DC_NET_PLUGIN-E3606.yaml

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

kind: ConfigMap

apiVersion: v1

metadata:

  name: sdnc-net-plugin

  namespace: kube-system

data:

  etcd_servers: "https://192.168.0.10:2379"

  etcd_certfile: "/etc/sdnc-net-plugin/etcd.crt"

  etcd_keyfile: "/etc/sdnc-net-plugin/etcd.key"

  etcd_cafile: "/etc/sdnc-net-plugin/etcd-ca.crt"

  k8s_api_server: "https://192.168.0.20:6443"

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

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

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

  k8s_token: ""

---

kind: ConfigMap

apiVersion: v1

metadata:

  name: sdnc-net-master

  namespace: kube-system

data:

  sdnc_url: http://192.168.0.32:10080

  sdnc_username: "admin"

  sdnc_password: "admin@123"

  sdnc_domain: "sdn"

  sdnc_client_timeout: "60"

  sdnc_client_retry: "3"

  openstack_url: "http://99.0.88.40:5000/v3"

  openstack_username: "admin"

  openstack_password: "123456"

  openstack_projectname: "admin"

  openstack_projectdomain: "Default"

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

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

  log_level: "1"

  bind_host: "0.0.0.0"

  bind_port: "9797"

  protocol: "http"

webhook_bind_port: "9898"

  default_network_id: ""

---

kind: ConfigMap

apiVersion: v1

metadata:

  name: sdnc-net-agent

  namespace: kube-system

data:

  net_masters: "auto"

  net_master_app_name: "sdnc-net-master"

  net_master_app_namespace: "kube-system"

  net_master_protocol: "http"

  net_master_port: "9797"

  overlay_mode: "auto"

  log_dir: "/var/log/sdnc-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"

  node_port_net_id: ""

  default_mtu: "0"

  service_strategy: "0"

  service_ip_cidr: "10.68.0.0/16"

apiVersion: admissionregistration.k8s.io/v1beta1

kind: ValidatingWebhookConfiguration

metadata:

  name: validation-webhook-cfg

  labels:

    app: admission-webhook-ippool

webhooks:

  - name: validate.sdnc.io

    failurePolicy: Fail

    clientConfig:

      service:

        name: sdnc-net-master-webhook

        namespace: kube-system

        path: "/v1.0/validate"

      caBundle: ""

    rules:

      - operations: [ "CREATE", "UPDATE", "DELETE" ]

        apiGroups: ["sdnc.io"]

        apiVersions: ["v1"]

        resources: ["ipv4pools","ipv6pools"]

各参数含义如下:

·     etcd_servers:etcd服务API接口地址,支持HTTP地址和HTTPS地址,当使用HTTPS地址时,需要配置参数etcd_certfile、etcd_keyfile、etcd_cafile(以https://192.168.0.10:2379为例)。

·     etcd_certfile:etcd客户端x509证书文件,仅当etcd_servers使用HTTPS时生效。请将(以/etc/sdnc-net-plugin/etcd.crt为例,如环境中不存在该路径,请手动创建,并设置权限为755)。

·     etcd_keyfile:etcd客户端x509证书私钥文件,仅当etcd_servers为HTTPS地址时生效(以/etc/sdnc-net-plugin/etcd.key为例,如环境中不存在该路径,请手动创建,并设置权限为755)。

·     etcd_cafile:etcd客户端CA文件,仅当etcd_servers使用HTTPS时生效(以/etc/sdnc-net-plugin/etcd-ca.crt为例,如环境中不存在该路径,请手动创建,并设置权限为755)。

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

·     k8s_ca:K8s apiserver客户端CA文件,仅当k8s_api_server使用HTTPS时生效(以/etc/sdnc-net-plugin/ca.crt为例,如环境中不存在该路径,请手动创建,并设置权限为755)。

·     k8s_key:K8s apiserver客户端x509证书私钥文件,仅当k8s_api_server为HTTPS地址时生效,与k8s_cert配置项配合使用,当使用k8s_token认证时k8s_key无需配置(以/etc/sdnc-net-plugin/client.key为例,如环境中不存在该路径,请手动创建,并设置权限为755)。

·     k8s_cert:K8s apiserver客户端x509证书文件,仅当k8s_api_server使用HTTPS时生效,当使用k8s_token认证时k8s_cert无需配置(以/etc/sdnc-net-plugin/client.crt为例,如环境中不存在该路径,请手动创建,并设置权限为755)。

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

·     sdnc_url:SNA Center的登录地址(以http://192.168.0.32:10080为例)。

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

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

·     sdnc_domain:SeerEngine-DC所在域的域名(以sdn为例)。

·     sdnc_client_timeout:等待SeerEngine-DC响应的时间,单位为秒(以60为例)。

·     sdnc_client_retry:向SeerEngine-DC发送连接请求消息的尝试次数(以3为例)。

·     openstack_url:OpenStack Keystone的认证地址(以"http://99.0.88.40:5000/v3"

·     为例)。

·     openstack_username:OpenStack的登录用户名(以"admin"为例)。

·     openstack_password:OpenStack的用户密码(以"123456"为例)。

·     openstack_projectname:OpenStack的项目名称(以"admin"为例)。

·     openstack_projectdomain:OpenStack的项目所在域名称(以"Default"为例)。

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

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

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

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

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

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

·     webhook_bind_port:webhook服务端口号,建议与webhook-port保持一致(以9898为例).

·     default_network_id:容器上线的默认虚拟链路层网络的UUID,当容器未配置虚拟链路层网络时,使用该虚拟链路层网络上线。

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

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

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

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

·     net_master_port:sdnc-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为例)。

·     node_port_net_id:为NodePort功能指定虚拟链路层网络的UUID,指定后将为每个节点自动上线一个虚拟端口,用来提供NodePort服务,不使用NodePort功能时无需配置。

·     default_mtu:容器网卡的默认MTU,默认值为0,表示容器网卡MTU将被设置为1500。

·     service_strategy:ClusterIp类型Service的负载均衡策略。取值为“0”表示选用基于源IP的负载均衡策略,取值为“1”表示选用基于源IP和源端口的负载均衡策略,默认值为“0”。

·     service_ip_cidr:K8s集群ClusterIp类型的Service地址段,用于裸金属场景。

·     caBundle:当前K8s集群的认证授权数据(certificate-authority-data),可以通过在Master节点执行命令kubectl config view --raw --flatten -o json获取。

说明

·     参数etcd_certfile、etcd_keyfile、etcd_cafile配置完成后,还需要在Master节点上将环境中的对应的etcd客户端证书文件、客户端证书秘钥文件和证书签名文件拷贝到参数指定的路径中,然后将Master节点的该路径拷贝至所有的Node节点上。以kubeadm部署的k8s环境为例,etcd证书文件存放路径为/etc/kubernetes/pki/,不同的部署工具和版本可能会存在差异,需要以实际环境为准。

·     参数k8s_ca、k8s_key、k8s_cert配置完成后,还需要在Master节点将环境中的对应的k8s apiserver客户端证书文件、客户端证书秘钥文件和证书签名文件拷贝到参数指定的路径中,然后将Master节点的该路径拷贝至所有的Node节点上。以kubeadm部署的k8s环境为例,k8s apiserver证书存放路径为/etc/kubernetes/pki/,不同的部署工具和版本可能会存在差异,需要以实际环境为准。

 

3. 安装插件

提示

在安装插件前,需根据K8s集群的版本修改插件配置文件中各资源的apiVersion参数。

 

使用配置文件安装插件。

$ kubectl create -f SeerEngine_DC_NET_PLUGIN-E3606.crd.yaml

$ kubectl create -f SeerEngine_DC_NET_PLUGIN-E3606.yaml

4. 验证SDN Kubernetes插件是否安装成功

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

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

4.2  卸载SDN Kubernetes插件

卸载SDN Kubernetes插件软件包,卸载前需删除所有用SDN Kubernetes插件创建的Pod。

$ kubectl delete -f SeerEngine_DC_NET_PLUGIN-E3606.yaml

$ kubectl delete -f SeerEngine_DC_NET_PLUGIN-E3606.crd.yaml

4.3  升级SDN Kubernetes插件

4.3.1  上传Docker镜像

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

4.3.2  升级插件

1. 上传并修改配置文件

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

2. 升级插件

$ kubectl delete -f SeerEngine_DC_NET_PLUGIN-E3606.yaml

$ kubectl apply -f SeerEngine_DC_NET_PLUGIN-E3606.crd.yaml

$ kubectl create -f SeerEngine_DC_NET_PLUGIN-E3606.yaml

说明

当原镜像名称为vcfc开头时,需要在Master节点上先卸载容器插件,并在Master节点上运行脚本vcfc2sdnc.sh。

 


5 应用举例

SDN Kubernetes插件安装完成后,即完成了SeerEngine-DC与Kubernetes的对接,可实现Kubernetes上的Pod在SeerEngine-DC上线。

5.1  配置Pod网络参数

本节介绍在Kubernetes上创建Pod并上线至SeerEngine-DC的操作步骤。

5.1.1  通过默认网络为Pod配置网络参数

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

(2)     插件安装前需配置配置文件,在参数default_network_id中指定默认网络,配置方式参见“4.1.2  安装插件”。

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

$ vi postgres-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: postgres

  annotations:

spec:

  containers:

  - name: postgres

    image: postgres

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

$ kubectl create -f postgres-pod.yaml

(5)     创建完成后,在SeerEngine-DC的虚拟端口页面可查看Pod的上线状态。

5.1.2  通过labels为Pod配置网络参数

(1)     在控制器上创建租户、虚拟链路层网络、子网、安全策略、网络策略等资源。如果在OpenStack网络Overlay虚拟机内部署集群,需要在OpenStack上创建租户、虚拟链路层网络、子网等。

(2)     在Master节点上创建并修改Pod配置文件,文件名称以postgres-pod.yaml为例。原标签h3c.io/network_id、h3c.io/tenant_id、h3c.io/qos_policy_id和h3c.io/security_group_id仍可使用。

$ vi postgres-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: postgres

  labels:

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

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

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

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

spec:

  containers:

  - name: postgres

    image: postgres

各参数含义如下:

·     sdnc.io/network_id:SeerEngine-DC虚拟网络的UUID或OpenStack虚拟网络的UUID,必选。

·     sdnc.io/tenant_id:SeerEngine-DC租户的UUID或OpenStack租户的UUID,必选。

·     sdnc.io/qos_policy_id:SeerEngine-DC网络策略的UUID,可选。OpenStack虚拟机暂不支持配置本参数。

·     sdnc.io/security_group_id:SeerEngine-DC安全策略的UUID,可选。OpenStack虚拟机暂不支持配置本参数。

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

$ kubectl create -f postgres-pod.yaml

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

5.1.3  通过annotations为Pod配置网络参数

(1)     在控制器上创建租户、虚拟链路层网络、子网、安全策略、网络策略等资源。如果在OpenStack 网络Overlay虚拟机内部署集群,需要在OpenStack上创建租户、虚拟链路层网络、子网等。

(2)     在Master节点上创建并修改Pod配置文件,文件名称以postgres-pod.yaml为例。原标签h3c.io/network_id、h3c.io/tenant_id、h3c.io/qos_policy_id和h3c.io/security_group_id仍可使用。

$ vi postgres-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: postgres

  annotations:

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

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

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

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

spec:

  containers:

  - name: postgres

    image: postgres

各参数含义如下:

·     sdnc.io/network_id:SeerEngine-DC虚拟网络的UUID或OpenStack虚拟网络的UUID,必选。

·     sdnc.io/tenant_id:SeerEngine-DC租户的UUID或OpenStack租户的UUID,必选。

·     sdnc.io/qos_policy_id:SeerEngine-DC网络策略的UUID,可选。OpenStack虚拟机暂不支持配置本参数。

·     sdnc.io/security_group_id:SeerEngine-DC安全策略的UUID,可选。OpenStack虚拟机暂不支持配置本参数。

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

$ kubectl create -f postgres-pod.yaml

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

5.1.4  通过crd为Pod配置网络参数

(1)     在控制器上创建租户、虚拟链路层网络、子网、安全策略、网络策略等资源。如果在OpenStack 网络Overlay虚拟机内部署集群,需要在OpenStack上创建租户、虚拟链路层网络、子网等。

(2)     在集群中创建NetworkConfiguration资源:

apiVersion: "sdnc.io/v1"

kind: NetworkConfiguration

metadata:

  name: okok

  namespace: default

spec:

  config: '{

    "network": {

        "network_id": "bbdf64ec-73c7-4038-b134-b792cacf43cf"

    },

    "tenant": {

        "tenant_id": "115d0dcc-f5a7-407f-b0d1-9da3431df26b"

    },

    "qos_policy": {

        "qos_policy_id": "bbdf64cc- f5c7-407f-b0d1-9da3431df26b"

    },

    "security_group": {

        "security_group_id": "132d0dec-737f-407f-b0d1-9da3431df26b"

    }

}'

各参数含义如下:

·     network_id:SeerEngine-DC虚拟网络的UUID或OpenStack虚拟网络的UUID,必选。

·     tenant_id:SeerEngine-DC租户的UUID或OpenStack租户的UUID,必选。

·     qos_policy_id:SeerEngine-DC网络策略的UUID,可选。OpenStack虚拟机暂不支持配置本参数。

·     security_group_id:SeerEngine-DC安全策略的UUID,可选。OpenStack虚拟机暂不支持配置本参数。

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

$ vi postgres-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: postgres

  annotations:

    sdnc.io/network_conf: example

spec:

  containers:

  - name: postgres

    image: postgres

各参数含义如下:

·     sdnc.io/network_conf :SeerEngine-DC或OpenStack网络配置的名称。

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

$ kubectl create -f postgres-pod.yaml

(5)     创建完成后,在SeerEngine-DC的虚拟端口页面可查看Pod的上线状态。

5.2  配置Pod的IP地址

在配置网络参数后(参见5.1  配置Pod网络参数),可为Pod配置固定IP地址或从IP地址池中动态分配IP地址。

1. 配置固定IP

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

(2)     在Master节点上创建并修改Pod配置文件,原标签h3c.io/ipv4addr和h3c.io/ipv6addr仍可使用,文件名称以postgres-pod.yaml为例:

$ vi postgres-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: postgres

  annotations:

    sdnc.io/ipv4addr: 10.10.0.1

    sdnc.io/ipv6addr: 201::1

spec:

  containers:

  - name: postgres

    image: postgres

各参数含义如下:

·     sdnc.io/ipv4addr:指定Pod的IPv4地址,可选。

·     sdnc.io/ipv6addr:指定Pod的IPv6地址,可选。

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

$ kubectl create -f postgres-pod.yaml

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

2. 配置IP地址池

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

(2)     在集群中创建IPv4或IPv6地址池资源:

·     IPv4:

apiVersion: sdnc.io/v1

kind: IpV4Pool

metadata:

  name: v4-ippool

spec:

  network_id: 5a25bc62-c8b4-4645-b194-2fa83bf7d91d

  ip_ranges:

  - start: 10.10.1.3

    end: 10.10.1.10

  - start: 10.10.2.3

    end: 10.10.2.10

·     IPv6:

apiVersion: sdnc.io/v1

kind: IpV6Pool

metadata:

  name: v6-ippool

spec:

  network_id: 5a25bc62-c8b4-4645-b194-2fa83bf7d91d

  ip_ranges:

  - start: 201::2:1

    end: 201::2:5

  - start: 201::3:1

end: 201::4:1

各参数含义如下:

·     network_id:SeerEngine-DC虚拟链路层网络的UUID,必选。

·     ip_ranges:Pod IP地址池的地址段。

·     start:地址段的起始IP。

·     end:地址段的结束IP。

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

$ vi postgres-pod.yaml

apiVersion: v1

kind: Pod

metadata:

  name: postgres

  annotations:

    sdnc.io/ipv4pool: v4-ippool

    sdnc.io/ipv6pool: v6-ippool

spec:

  containers:

  - name: postgres

    image: postgres

各参数含义如下:

·     sdnc.io/ipv4pool:指定Pod的IPv4地址池。

·     sdnc.io/ipv6pool:指定Pod的IPv6地址池。

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

$ kubectl create -f postgres-pod.yaml

(5)     创建完成后,在SeerEngine-DC的虚拟端口页面可查看Pod的上线状态,Pod的IP地址为指定IP地址池中的地址。

说明

·     固定IP不能和IP地址池冲突。

·     固定IP和IP地址池不能和控制器子网的DHCP地址池冲突。

 

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

新华三官网
联系我们