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

公网访问

概述

公网访问是指使用外部网络访问负载,您可以给负载添加LoadBalancer类型的Service,配置ELB包含公网IP(ELB必须与负载在同一个VPC内),通过ELB实例访问负载。

约束与限制

  • 创建的ELB需要与负载所在命名空间在同一个VPC内。
  • 在使用弹性公网IP(Elastic IP Address,简称EIP)前,请先了解EIP的使用限制。详细信息,请参见弹性公网IP
  • CCI 2.0暂时不支持共享型负载均衡,建议您创建独享型ELB实例,且ELB实例已绑定公网IP。

配置公网访问-工作负载创建完成后设置

在工作负载创建完成后对Service进行配置,此配置对工作负载状态无影响,且实时生效。具体操作如下:

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

    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。
      spec:
        selector:
          app: kubectl-test #关联的负载label。
        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。
      		}
      	},
      	"spec": {
      		"selector": {
      			"app": "kubectl-test" #关联的负载label。
      		},
      		"ports": [
      			{
      				"name": "service-0",
      				"targetPort": 80,     #容器开放的端口。
      				"port": 12222,        #访问端口。
      				"protocol": "TCP",    #访问负载的协议。
      				"type": "LoadBalancer"
      			}
      		]
      	}
      }

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

公网无法访问如何处理

  • 公网能正常访问的前提是负载已处于运行中状态,如果您的负载处于未就绪或异常状态,公网访问将无法正常使用。
  • 从负载开始创建到公网可以正常访问可需要1分钟到3分钟的时间,在此时间内网络路由尚未完成配置,请稍作等待。
  • 负载创建3分钟以后仍然无法访问。可能原因是用户配置的容器端口实际上没有相应进程在监听,目前云容器实例服务无法检测出该类使用异常,需要您排查镜像是否有监听该容器端口。如果容器端口监听正确,此时无法访问的原因可能为ELB实例本身有问题,请排查ELB实例状态。

更新Service

您可以在添加完Service后,更新此Service的访问端口。操作如下:

  1. 登录云容器实例 CCI2.0控制台。
  2. 左侧导航栏中选择“服务管理 ”,在服务管理页面中,选择对应的命名空间,单击需要更新端口配置的Service后的“YAML编辑”。
  3. 仅支持更新Service内访问端口参数修改:

    端口配置:spec.ports[i].port:访问端口,端口范围为1-65535,可任意指定。

  4. 单击“确定”。工作负载已更新Service。