更新时间: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进行配置,此配置对工作负载状态无影响,且实时生效。具体操作如下:
- 登录云容器实例 CCI2.0控制台。
- 左侧导航栏中选择“服务管理”,在右侧页面单击“YAML创建”。
- 导入或者添加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" } ] } }
- 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。
父主题: 服务(Service)