云服务器内容精选

  • 通过kubectl命令行创建 请参见通过kubectl连接集群,使用kubectl连接集群。 创建一个名为securitygroup-demo.yaml的描述文件。 vi securitygroup-demo.yaml 例如,用户创建如下的SecurityGroup资源对象,给所有的app:nginx工作负载绑定上提前已经创建的64566556-bd6f-48fb-b2c6-df8f44617953,5451f1b0-bd6f-48fb-b2c6-df8f44617953的两个安全组。示例如下: apiVersion: crd.yangtse.cni/v1 kind: SecurityGroup metadata: name: demo namespace: default spec: podSelector: matchLabels: app: nginx securityGroups: - id: 64566556-bd6f-48fb-b2c6-df8f44617953 - id: 5451f1b0-bd6f-48fb-b2c6-df8f44617953 以上yaml参数说明如表2。 表2 参数说明 字段名称 字段说明 必选/可选 apiVersion 表示API的版本号,版本号为crd.yangtse.cni/v1。 必选 kind 创建的对象类别。 必选 metadata 资源对象的元数据定义。 必选 name SecurityGroup的名称。 必选 namespace 工作空间名称。 必选 spec 用户对SecurityGroup的详细描述的主体部分都在spec中给出。 必选 podSelector 定义SecurityGroup中需要关联安全组的工作负载。 必选 securityGroups id为安全组的ID。 必选 执行以下命令,创建SecurityGroup。 kubectl create -f securitygroup-demo.yaml 回显如下表示已开始创建SecurityGroup securitygroup.crd.yangtse.cni/demo created 执行以下命令,查看SecurityGroup。 kubectl get sg 回显信息中有创建的SecurityGroup名称为demo,表示SecurityGroup已创建成功。 NAME POD-SELECTOR AGE all-no map[matchLabels:map[app:nginx]] 4h1m s001test map[matchLabels:map[app:nginx]] 19m demo map[matchLabels:map[app:nginx]] 2m9s
  • 通过界面创建 登录CCE控制台,单击集群名称,进入集群。 在左侧选择“工作负载”,单击工作负载名称。 在“安全组策略”页签下,单击“创建”。 根据界面提示,配置参数, 具体如表1所示。 表1 配置参数 参数名称 描述 示例 安全组策略名称 输入安全组策略名称。 请输入1-63个字符,以小写字母开头,由小写字母、数字、连接符(-)组成,且不能以连接符(-)结尾。 security-group 关联安全组 选中的安全组将绑定到选中的工作负载的弹性网卡/辅助弹性网卡上,在下拉框中最多可以选择5条,安全组必选,不可缺省。 如将绑定的安全组未创建,可单击“创建安全组”,完成创建后单击刷新按钮。 须知: 最多可选择5个安全组。 鼠标悬浮在安全组名称旁的图标上,可查看安全组的详细信息。 64566556-bd6f-48fb-b2c6-df8f44617953 5451f1b0-bd6f-48fb-b2c6-df8f44617953 参数配置后,单击“确定”。 创建完成后页面将自动返回到安全组策略列表页,可以看到新添加的安全组策略已在列表中。
  • 通过控制台创建工作负载类型的容器网络配置 登录CCE控制台。 单击集群名称进入集群,在左侧选择“配置中心”,选择“网络配置”页签。 集群中存在默认容器网络配置default-network,对所有未配置自定义容器网络配置的Pod生效,“总览”页面的网络信息中的“默认容器子网”即为default-network中的容器子网。 查看“自定义容器网络配置”,单击“添加自定义容器网络配置”,在弹窗中配置容器子网和安全组等信息。 名称:自定义容器网络配置名称,最长支持253个字符。default-network、default、mgnt0、mgnt1四个名称为系统预留,请勿使用。 关联资源类型:自定义容器网络配置关联的资源类型,详情请参见表1。创建命名空间类型的容器网络配置请选择“工作负载”类型。 容器子网:请选择子网。若无子网可选请单击后方的“创建子网”进行创建,创建完成后单击刷新按钮。最多可选择 20 个子网。 关联安全组:默认为容器ENI安全组,您也可以选择单击后方的“创建安全组”进行创建,创建完成后单击刷新按钮。最多可选择5个安全组。 图3 创建工作负载类型的容器网络配置 完成基本配置后单击“创建”,创建完成后页面自动返回到自定义容器网络配置列表,可以看到新创建的容器网络配置已在列表中。 图4 容器网络配置列表 在创建工作负载时,可选择自定义的容器网络配置。 在左侧导航栏中选择“工作负载”,在右侧选择“无状态负载”页签。 单击页面右上角“创建工作负载”,在“高级配置”中选择“网络配置”页签,并选择是否开启指定容器网络配置。 选择一个已有的容器网络配置。如果没有可用的网络配置,可单击“添加自定义容器网络配置”进行创建。 图5 选择容器网络配置 工作负载其余信息都配置完成后,单击“创建工作负载”。 返回到“配置中心”,在容器网络配置列表里可以看到创建的容器网络配置关联的资源名称。 图6 查看容器网络配置关联的资源
  • 删除网络配置 您可以查看新添加网络配置的YAML,也可以对新添加的配置进行“删除”操作。 在删除网络配置时,需先删除该配置所对应的容器,否则将删除失败。 执行以下命令筛选集群中使用该配置的Pod(其中example为示例配置名称,请自行替换): kubectl get po -A -o=jsonpath="{.items[?(@.metadata.annotations.cni\.yangtse\.io/network-status=='[{\"name\":\"example\"}]')]['metadata.namespace', 'metadata.name']}" 返回结果中包含了该配置关联的Pod名字及命名空间。 删除创建该Pod的Owner,其Owner可能为Deployment、StatefulSet、DaemonSet或Job类型的工作负载。
  • 操作场景 CCE Turbo集群支持以命名空间或工作负载粒度设置容器所在的容器子网及安全组,该功能通过名为NetworkAttachmentDefinition的CRD资源实现。如您想为指定的命名空间或工作负载配置指定的容器子网和安全组,可创建自定义容器网络配置(NetworkAttachmentDefinition),并将该容器网络配置与相应的命名空间或工作负载关联,进而实现业务的子网划分或业务安全隔离的述求。 目前容器网络配置(NetworkAttachmentDefinition)支持关联的资源类型对比如下: 表1 关联资源类型对比 维度 容器网络配置(NetworkAttachmentDefinition)关联的资源类型 命名空间 工作负载 容器网络划分维度说明 容器网络配置关联的命令空间下创建的所有工作负载使用相同的子网配置跟安全组配置 指定了相同容器网络配置的工作负载使用相同的子网配置跟安全组配置 支持的集群版本 仅在CCE Turbo集群中可用,且集群为1.23.8-r0、1.25.3-r0及以上版本 仅在CCE Turbo集群中可用,且集群为1.23.11-r0、1.25.6-r0、1.27.3-r0、1.28.1-r0及以上版本 约束限制 不同容器网络配置之间的命名空间不可重复 只能指定未关联命名空间的自定义容器网络配置
  • 约束与限制 仅默认容器网络配置 default-network 支持开启网卡预热,使用自定义容器网络配置的Pod的创建速度相对使用默认容器网络配置的Pod会稍慢一些,因此不适用于极速Pod弹性场景。 默认容器网络配置 default-network 不支持删除。 已开启固定IP的工作负载,如果需要关联新的容器网络配置,Pod重建时,固定IP功能会失效。请删除工作负载并释放已经固定的IP,然后重新创建工作负载。 如需删除创建的自定义容器网络配置(NetworkAttachmentDefinition),请先删除对应的命名空间下使用该配置创建的Pod(带有名为“cni.yangtse.io/network-status”的annotation),详情请参见删除网络配置。
  • 通过控制台创建命名空间类型的容器网络配置 登录CCE控制台。 单击集群名称进入集群,在左侧选择“配置中心”,选择“网络配置”页签。 集群中存在默认容器网络配置default-network,对所有未配置自定义容器网络配置的Pod生效,“总览”页面的网络信息中的“默认容器子网”即为default-network中的容器子网。 查看“自定义容器网络配置”,单击“添加自定义容器网络配置”,在弹窗中配置容器子网和安全组等信息。 名称:自定义容器网络配置名称,最长支持253个字符。default-network、default、mgnt0、mgnt1四个名称为系统预留,请勿使用。 关联资源类型:自定义容器网络配置关联的资源类型,详情请参见表1。创建命名空间类型的容器网络配置请选择“命名空间”类型。 命名空间:请选择您需要关联的命名空间。不同容器网络配置之间关联的命名空间不可重复。若无命名空间可选请单击后方的“创建命名空间”进行创建。 容器子网:请选择子网。若无子网可选请单击后方的“创建子网”进行创建,创建完成后单击刷新按钮。最多可选择 20 个子网。 关联安全组:默认为容器ENI安全组,您也可以选择单击后方的“创建安全组”进行创建,创建完成后单击刷新按钮。最多可选择5个安全组。 图1 创建命名空间类型的容器网络配置 完成基本配置后单击“创建”,创建完成后页面自动返回到自定义容器网络配置列表,可以看到新创建的容器网络配置已在列表中。 图2 容器网络配置列表
  • 通过kubectl命令行设置 您可以通过对StatefulSet添加annotations来设置是否开启Pod固定EIP功能,同时需要开启随Pod创建EIP功能,如下所示。 apiVersion: apps/v1kind: StatefulSetmetadata: name: nginxspec: serviceName: nginx replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: pod.alpha.kubernetes.io/initialized: 'true' yangtse.io/static-eip: 'true' yangtse.io/static-eip-expire-no-cascading: 'false' yangtse.io/static-eip-expire-duration: 5m yangtse.io/pod-with-eip: 'true' yangtse.io/eip-bandwidth-size: '5' yangtse.io/eip-network-type: 5_bgp yangtse.io/eip-charge-mode: bandwidth yangtse.io/eip-ip-version: '4' spec: containers: - name: container-0 image: nginx:alpine resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi imagePullSecrets: - name: default-secret 表1 Pod固定EIP的annotation配置 annotation 默认值 参数说明 取值范围 yangtse.io/static-eip false 是否开启Pod固定EIP,只有StatefulSet类型的Pod或无ownerReferences的Pod支持,默认不开启。 "false"或"true" yangtse.io/static-eip-expire-duration 5m 删除固定EIP的Pod后,对应的固定EIP过期回收的时间间隔。 支持时间格式为Go time type,例如1h30m、5m。关于Go time type,请参见Go time type。 yangtse.io/static-eip-expire-no-cascading false 是否关闭StatefulSet工作负载的级联回收。 默认为false,表示StatefulSet删除后,会级联删除对应的固定EIP。如果您需要在删除StatefulSet对象后,在EIP过期回收时间内保留对应的固定EIP,用于下一次重建同名的StatefulSet再次使用对应的固定EIP,请将该参数设为true。 "false"或"true" 表2 EIP跟随Pod创建的annotation配置 annotation 默认值 参数说明 取值范围 yangtse.io/pod-with-eip false 是否需要跟随Pod创建EIP并绑定到该Pod。 "false"或"true" yangtse.io/eip-bandwidth-size 5 带宽大小,单位为Mbit/s。 默认1Mbit/s~2000Mbit/s 具体范围以各区域配置为准,详情请参见弹性公网IP控制台。 yangtse.io/eip-network-type 5_bgp 公网IP类型。 5_bgp 5_union 5_sbgp 具体类型以各区域配置为准,详情请参见弹性公网IP控制台。 yangtse.io/eip-charge-mode bandwidth 按流量计费或按带宽计费。 默认取值为traffic,表示按流量计费。 bandwidth:按带宽计费 traffic:按流量计费 yangtse.io/eip-ip-version 4 公网EIP的版本,例如IPv4,IPv6。 默认取值为4,即表示IPv4。 4 6 yangtse.io/eip-bandwidth-id 空 已有的带宽ID,填写该值时会忽略其他自动创建EIP相关的annotation。 - yangtse.io/eip-bandwidth-name Pod名称 带宽名称。 1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点) 最小长度:1 最大长度:64