01-正文
本章节下载: 01-正文 (465.25 KB)
目 录
Kubernetes是开源的容器集群管理平台,它支持自动化部署、大规模可伸缩、应用容器化管理。
Kubernetes使用Pod管理容器,Pod是一组紧密关联的容器集合,多个容器共享网络和文件系统,可以通过进程间通信和文件共享等简单高效的方式提供服务。
SDN Kubernetes插件是针对SeerEngine-DC推出的符合Kubernetes规范的网络插件,通过安装插件可实现Kubernetes平台与SeerEngine-DC的对接,Kubernetes平台中的Pod可在SeerEngine-DC中上线,由SeerEngine-DC提供流量监控、安全策略及网络服务等业务。
SDN Kubernetes插件所需的服务器或虚拟机硬件配置需求如表2-1所示。
|
CPU内核 |
内存 |
所需磁盘空间 |
|
4核及以上 |
8GB及以上 |
50GB及以上 |
SDN Kubernetes插件所需的软件配置需求如表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 |
安装SDN Kubernetes插件前,需要对Kubernetes 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节点到计算域主机中。
(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
使用本章节的步骤分别在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
在Master节点和Node节点上完成插件Docker镜像的加载后,需要在Master节点上安装插件,操作步骤如下:
(1) 获取预处理脚本,名称为webhook-create-signed-cert.sh,并上传到Master节点待安装目录下。
(2) 执行预处理脚本。
$ sh webhook-create-signed-cert.sh
(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/,不同的部署工具和版本可能会存在差异,需要以实际环境为准。
在安装插件前,需根据K8s集群的版本修改插件配置文件中各资源的apiVersion参数。
使用配置文件安装插件。
$ kubectl create -f SeerEngine_DC_NET_PLUGIN-E3606.crd.yaml
$ kubectl create -f SeerEngine_DC_NET_PLUGIN-E3606.yaml
验证插件的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
卸载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.1.1 上传并加载插件Docker镜像”。
具体操作步骤请参见“4.1.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。
SDN Kubernetes插件安装完成后,即完成了SeerEngine-DC与Kubernetes的对接,可实现Kubernetes上的Pod在SeerEngine-DC上线。
本节介绍在Kubernetes上创建Pod并上线至SeerEngine-DC的操作步骤。
(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的上线状态。
(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的上线状态。
(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的上线状态。
(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.1 配置Pod网络参数),可为Pod配置固定IP地址或从IP地址池中动态分配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的上线状态。
(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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
