更新时间:2025-11-21 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进行配置,此配置对工作负载状态无影响,且实时生效。具体操作如下:
- 登录云容器实例 CCI2.0控制台。
- 左侧导航栏中选择“服务管理”,在右侧页面单击“YAML创建”。
- 导入或者添加Service yaml。
Service文件格式说明
- Service.yaml资源描述
metadata: name: service-1 namespace: hyctest annotations: kubernetes.io/elb.class: elb kubernetes.io/elb.id: 123456789 # 关联的elb id,只支持独享型elb,不支持共享型elb。 kubernetes.io/elb.protocol-port: "http:80,https:81" # ELB的协议及端口号,需要与spec.ports中的端口号对应。 kubernetes.io/elb.cert-id: 123456789 # ELB服务中的证书ID。 kubernetes.io/elb.l7-keepalive-timeout: '0' # 七层监听器闲置超时时间。 kubernetes.io/elb.l4-keepalive-timeout: '10' # 四层监听器闲置超时时间。 spec: ports: - name: service-1 protocol: TCP port: 80 #访问端口。 targetPort: 80 #容器开放的端口。 - name: service-2 protocol: TCP port: 81 targetPort: 81 - name: service-3 protocol: TCP port: 82 targetPort: 82 - name: service-4 protocol: UDP port: 83 targetPort: 83 selector: app: a type: LoadBalancer - Service.json资源描述
{ "metadata": { "name": "service-1", "namespace": "hyctest", "annotations": { "kubernetes.io/elb.class": "elb", # 关联的elb id,只支持独享型elb,不支持共享型elb。 "kubernetes.io/elb.id": 123456789, "kubernetes.io/elb.protocol-port": "http:80,https:81",# ELB协议及端口号,需要与spec.ports端口号对应。 "kubernetes.io/elb.cert-id": 123456789, # ELB服务中的证书ID。 "kubernetes.io/elb.l7-keepalive-timeout": "0", # 七层监听器闲置超时时间。 "kubernetes.io/elb.l4-keepalive-timeout": "10" # 四层监听器闲置超时时间。 } }, "spec": { "ports": [ { "name": "service-1", "protocol": "TCP", "port": 80, #访问端口。 "targetPort": 80 #容器开放的端口。 }, { "name": "service-2", "protocol": "TCP", "port": 81, "targetPort": 81 }, { "name": "service-3", "protocol": "TCP", "port": 82, "targetPort": 82 }, { "name": "service-4", "protocol": "UDP", "port": 83, "targetPort": 83 } ], "selector": { "app": "a" }, "type": "LoadBalancer" } }
- Service.yaml资源描述
- 单击“确定”,创建Service。查看服务管理页面,根据访问地址公网IP和端口映射中的访问端口[公网IP:访问端口],即可通过公网访问负载。
公网无法访问如何处理
- 公网能正常访问的前提是负载已处于运行中状态,如果您的负载处于未就绪或异常状态,公网访问将无法正常使用。
- 从负载开始创建到公网可以正常访问可需要1分钟到3分钟的时间,在此时间内网络路由尚未完成配置,请稍作等待。
- 负载创建3分钟以后仍然无法访问。可能原因是用户配置的容器端口实际上没有相应进程在监听,目前云容器实例服务无法检测出该类使用异常,需要您排查镜像是否有监听该容器端口。如果容器端口监听正确,此时无法访问的原因可能为ELB实例本身有问题,请排查ELB实例状态。
更新Service
您可以在添加完Service后,更新此Service的访问端口。操作如下:
- 登录云容器实例 CCI2.0控制台。
- 左侧导航栏中选择“服务管理 ”,在服务管理页面中,选择对应的命名空间,单击需要更新端口配置的Service后的“YAML编辑”。
- 仅支持更新Service内访问端口参数修改:
端口配置:spec.ports[i].port:访问端口,端口范围为1-65535,可任意指定。
- 单击“确定”。工作负载已更新Service。