更新时间:2025-06-16 GMT+08:00

为Service配置黑名单/白名单访问策略

概述

使用Service服务时,您可以通过添加白名单和黑名单的方式控制访问负载均衡监听器的IP。

  • 白名单:指定的IP允许访问,而其它IP拒绝访问。
  • 黑名单:指定的IP拒绝访问,而其它IP允许访问。

前置条件

已在ELB控制台创建IP地址组,详情请参见创建IP地址组

配置黑名单/白名单访问策略

  1. 登录云容器实例 CCI2.0控制台。
  2. 左侧导航栏中选择“服务管理”,在右侧页面单击“YAML创建”
  3. 导入或者添加Service yaml,配置参数见表1

    Service文件格式说明

    • Service.yaml资源描述
      apiVersion: cci/v2
      kind: Service
      metadata:
        name: kubectl-test
        namespace: kubectl
        annotations:
          kubernetes.io/elb.class: elb
          kubernetes.io/elb.id: 1234567890 #关联的elb id,只支持独享型elb,不支持共享型elb。
          kubernetes.io/elb.acl-id: <your_acl_id>               # ELB的IP地址组ID     
          kubernetes.io/elb.acl-type: 'white'                   # 白名单控制
      spec:
        selector:
          app: kubectl-test
        ports:
          - name: service-0
            targetPort: 80   #容器开放的端口。
            port: 12222      #访问端口。
            protocol: TCP    #访问负载的协议。
        type: LoadBalancer
    • Service.json资源描述
      {
      	"apiVersion": "cci/v2",
      	"kind": "Service",
      	"metadata": {
      		"name": "kubectl-test",
      		"namespace": "kubectl",
      		"annotations": {
                              "kubernetes.io/elb.class": "elb"
      			"kubernetes.io/elb.id": "1234567890"  #关联的elb id,只支持独享型elb,不支持共享型elb。
                              "kubernetes.io/elb.acl-id": "<your_acl_id>"             # ELB的IP地址组ID     
                              "kubernetes.io/elb.acl-type": "white"                   # 白名单控制
      		}
      	},
      	"spec": {
      		"selector": {
      			"app": "kubectl-test"
      		},
      		"ports": [
      			{
      				"name": "service-0",
      				"targetPort": 80,     #容器开放的端口。
      				"port": 12222,        #访问端口。
      				"protocol": "TCP",    #访问负载的协议。
      				"type": "LoadBalancer"
      			}
      		]
      	}
      }

  4. 单击“确定”,创建Service。查看服务管理页面,根据访问地址IP和端口映射中的访问端口[IP地址:访问端口],即可访问负载。

    • 如果配置策略为白名单,仅白名单中IP地址可以访问,其余IP地址拒绝访问。
    • 如果配置策略为黑名单,则黑名单中IP地址拒绝访问,其余IP地址均可访问。

表1 ELB访问控制注解

参数

类型

描述

kubernetes.io/elb.acl-id

String

  • 不填写该参数时:表示CCI不对ELB侧访问控制进行修改。
  • 参数值填写为ELB的IP地址组ID时:表示开启访问控制,为ELB设置IP地址黑名单或白名单。
  • 参数可以填写最多5个IP地址组ID,用“,”隔开。
  • IP地址组ID获取方法:

    登录控制台后,单击顶部菜单右侧的“网络 > 弹性负载均衡ELB”,在网络控制台上单击“弹性负载均衡 > IP地址组”,复制目标IP地址组的“ID”即可。详情请参见IP地址组

kubernetes.io/elb.acl-type

String

为ELB设置IP地址黑名单或白名单时需填写,取值如下:

  • black:表示黑名单,仅所选IP地址组无法访问ELB地址。
  • white:表示白名单,仅所选IP地址组可以访问ELB地址。

如果填写了kubernetes.io/elb.acl-id,且kubernetes.io/elb.acl-type字段没有填写时,默认策略为白名单访问。