You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
CLB 负载均衡
通过 kubectl 创建 CLB 负载均衡服务
复制全文
下载 pdf
通过 kubectl 创建 CLB 负载均衡服务
容器服务支持创建负载均衡模式(LoadBalancer)的服务。本文为您介绍如何通过 YAML 创建负载均衡服务。​
注意​
配置负载均衡服务前,请务必仔细阅读 负载均衡服务使用注意事项。​
前提条件​
  • 已通过 Kubectl 连接目标集群。具体操作说明,请参见 连接集群。​
说明​
当前仅支持关联无状态负载(Deployment)、有状态负载(Statefulset)和守护进程(DaemonSet)。​
操作步骤​
  1. 创建服务的 YAML 文件。示例文件service-demo.yaml代码如下:​
  • ​
    apiVersion: v1​
    kind: Service​
    metadata:​
    name: service-demo # 服务的名称​
    spec:​
    selector:​
    app: nginx # 通过标签选择器将服务与后段容器组(Pod)绑定​
    ipFamilyPolicy: PreferDualStack # 通信协议类型。SingleStack 表示单栈,PreferDualStack 表示双栈​
    ipFamilies: # 具体使用的通信协议。单栈场景支持 IPv4;双栈场景支持 IPv4&IPv6、IPv6&IPv4​
    - IPv6​
    - IPv4​
    ports:​
    - name: rule # 端口映射规则名称​
    protocol: TCP # 服务协议,支持 TCP 或 UDP​
    port: 80 # 服务端口​
    targetPort: 80 # 容器端口,即工作负载对外提供服务的端口号或端口名称,例如:Nginx 开放的默认端口号为 80​
    type: LoadBalancer # 服务的类型,包括:Nodeport、ClusterIP 和 LoadBalancer​
    ​
注意​
  • 使用上述 YAML 在 IPv4 集群中创建负载均衡服务时,系统会基于默认参数自动创建对应的 CLB 实例。如果您需要自定义 CLB 的配置,建议使用 Annotation 创建 CLB。详情请参见 使用 Annotation 配置负载均衡服务。​
  • 使用上述 YAML 在 IPv4 集群中创建负载均衡服务时,默认为非 Pod 直通模式。如有 Pod 直通需求,需要在配置中增加注解service.beta.kubernetes.io/volcengine-loadbalancer-pass-through: "true"。详情请参见 使用 Annotation 配置 CLB 负载均衡服务。​
  • 双栈集群不支持 PUBLIC 类型的 CLB 实例。因此,在双栈集群中使用 YAML 创建负载均衡服务时,需要在配置中增加 Annotation service.beta.kubernetes.io/volcengine-loadbalancer-address-type: "PRIVATE",指定 CLB 的类型为 PRIVATE。​
  1. 执行以下命令,创建服务。​
  • ​
    kubectl apply -f service-demo.yaml​
    ​
结果验证​
  1. 执行以下命令,查看已创建的服务。​
  • ​
    kubectl get svc -n default​
    ​
  • 预期结果如下。其中,EXTERNAL-IP是与该服务对接的 CLB 公网 IP 地址。​
  • ​
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE​
    service-demo LoadBalancer 10.xxx.xxx.xxx 180.xxx.xxx.xxx 80:30891/TCP 44s​
    ​
  1. 执行以下命令,查看已创建服务的详细信息。​
  • ​
    kubectl describe svc service-demo -n default​
    ​
  • 预期结果如下。其中,Annotation 中展示了 CLB 的相关信息,包括:CLB 实例 ID、子网 ID、EIP 计费类型等。您可以在 负载均衡控制台 中,使用 CLB 实例 ID 查找对应的 CLB 实例。​
说明​
负载均衡服务 Annotation 的详细解释,请参考 使用 Annotation 配置负载均衡服务。​
  • ​
    Name: service-demo​
    Namespace: default​
    Labels: service.beta.kubernetes.io/volcengine-loadbalancer-id=clb-3qe5tw***​
    Annotations: service.beta.kubernetes.io/system-volcengine-loadbalancer-create-response-id: clb-3qe5twv8***​
    service.beta.kubernetes.io/volcengine-loadbalancer-address-type: PUBLIC​
    service.beta.kubernetes.io/volcengine-loadbalancer-bandwidth: 1​
    service.beta.kubernetes.io/volcengine-loadbalancer-eip-billing-type: 3​
    service.beta.kubernetes.io/volcengine-loadbalancer-health-check-flag: off​
    service.beta.kubernetes.io/volcengine-loadbalancer-isp-type: BGP​
    service.beta.kubernetes.io/volcengine-loadbalancer-name: k8s-7f328f46***​
    service.beta.kubernetes.io/volcengine-loadbalancer-pass-through: false​
    service.beta.kubernetes.io/volcengine-loadbalancer-scheduler: wrr​
    service.beta.kubernetes.io/volcengine-loadbalancer-spec: small_1​
    service.beta.kubernetes.io/volcengine-loadbalancer-subnet-id: subnet-3qe2d3p***​
    Selector: app=nginx​
    Type: LoadBalancer​
    IP Family Policy: SingleStack​
    IP Families: IPv4​
    IP: 10.xxx.xxx.xxx​
    IPs: 10.xxx.xxx.xxx​
    LoadBalancer Ingress: 180.xxx.xxx.xxx​
    Port: rule 80/TCP​
    TargetPort: 80/TCP​
    NodePort: rule 30429/TCP​
    Endpoints: 192.168.112.4:80,192.168.128.9:80,192.168.48.3:80​
    Session Affinity: None​
    External Traffic Policy: Cluster​
    Events:​
    Type Reason Age From Message​
    ---- ------ ---- ---- -------​
    Normal EnsuringLoadBalancer 71s (x4 over 83s) service-controller Ensuring load balancer​
    Normal EnsuredLoadBalancer 70s (x2 over 71s) service-controller Ensured load balancer​
    ​
​
最近更新时间:2026.06.24 19:27:59
这个页面对您有帮助吗?
有用
有用
无用
无用