Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Expose an application with an existing SLB instance

Última actualización: Sep 18, 2026

Asocie un CLB o NLB existente a un LoadBalancer Service para mantener una IP fija o compartirla entre varios servicios.

Desde fuera del clúster, use <SLB-IP>:<Service port> o el nombre de dominio del SLB. Desde dentro del clúster, use <Service name>:<Service port>.

Requisitos previos

Asegúrese de cumplir con lo siguiente:

Importante

Si planea reutilizar una instancia SLB existente, no seleccione Install Ingresses durante la creación del clúster. Especifique la instancia manualmente después. Consulte Use an existing CLB instance y Use an existing NLB instance.

Notas de uso

La gestión de listeners depende de la versión de cloud-controller-manager, por lo que algunas instancias SLB no se pueden reutilizar.

Comportamiento de los listeners según la versión de cloud-controller-manager

La configuración de los listeners varía según la versión de cloud-controller-manager:

  • v1.9.3.59-ge3bc999-aliyun y posteriores: cloud-controller-manager no configura los listeners de forma predeterminada. Agregue service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true" para permitir que ACK gestione los listeners o configúrelos manualmente.

  • Anteriores a v1.9.3.59-ge3bc999-aliyun: cloud-controller-manager crea y gestiona los grupos de servidores backend. Además, asocia todos los listeners (incluidos los configurados manualmente) a dichos grupos.

Comprobar la versión de cloud-controller-manager

  • Consola: En la consola de ACK, vaya a la página Operations > Add-ons de su clúster. En la pestaña Core Components, compruebe la versión de Cloud Controller Manager.

  • kubectl (solo para clústeres dedicados de ACK):

    kubectl get pod -n kube-system -o yaml | grep image: | grep cloud-con | uniq

Límites de uso

Desplegar una aplicación

Despliegue una aplicación NGINX sin estado como backend del LoadBalancer Service.

Usar la consola de ACK

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel izquierdo, elija Workloads > Deployments.

  3. En la página Deployments, haga clic en Create from Image y configure el Deployment:

    1. En la página Basic Information, establezca Name como my-nginx y haga clic en Next.

    2. En la página Container, configure la imagen y el puerto:

      Parameter

      Value

      Image Name

      Haga clic en Select images. En la pestaña Artifact Center, busque nginx y seleccione openanolis/nginx. Haga clic en Select Image Tag, establezca una etiqueta y haga clic en OK.

      Port

      Nombre: nginx, puerto del contenedor: 80

    3. En la página Advanced, conserve los valores predeterminados y haga clic en Create.

Usar kubectl

  1. Cree un archivo llamado my-nginx.yaml con el siguiente contenido:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-nginx        # Deployment name
      labels:
        app: nginx
    spec:
      replicas: 2           # Number of pod replicas
      selector:
        matchLabels:
          app: nginx        # Must match the selector in the Service
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
  2. Despliegue la aplicación:

    kubectl apply -f my-nginx.yaml
  3. Compruebe que el Deployment esté listo:

    kubectl get deployment my-nginx

    Salida esperada:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    my-nginx   2/2     2            2           50s

Crear un LoadBalancer Service

Apunte el Service a su instancia SLB existente para enrutar el tráfico externo hacia los pods de NGINX.

Usar la consola de ACK

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel izquierdo, elija Network > Services.

  3. En la página Services, haga clic en Create. En el cuadro de diálogo Create Service, configure estos parámetros:

    Parameter

    Description

    Example

    Name

    Nombre del Service

    my-nginx-svc

    Service Type

    Seleccione SLB, establezca SLB Type en CLB y seleccione Use Existing Resource. Elija una instancia CLB. Para las instancias sin listeners, habilite Overwrite Existing Listeners.

    SLB > CLB > Use Existing Resource

    External Traffic Policy

    Local enruta el tráfico solo a los pods del nodo actual. Cluster enruta el tráfico a los pods de todos los nodos.

    Local

    Backend

    La aplicación que se asociará con el Service

    Nombre: app, valor: nginx

    Port Mapping

    Asigna el puerto del Service al puerto del contenedor

    Puerto del Service: 80, puerto del contenedor: 80, protocolo: TCP

    Annotations

    Agregue anotaciones para configurar la instancia SLB. Consulte Use annotations to configure CLB instances y Use annotations to configure NLB instances.

    N/A

  4. Haga clic en OK. Haga clic en el nombre del Service para abrir los detalles y luego haga clic en la External IP (por ejemplo, 39.106.XX.XX:80) para comprobar el acceso.

    image

Usar kubectl

  1. Cree un archivo llamado my-nginx-svc.yaml con el siguiente contenido:

    Field

    Description

    metadata.annotations

    alibaba-cloud-loadbalancer-id: el ID de la instancia SLB existente. alibaba-cloud-loadbalancer-force-override-listeners: 'true': permite que ACK gestione los listeners. Omítalo para conservar la configuración actual de los listeners.

    spec.selector

    Selecciona los pods que recibirán el tráfico. Debe coincidir con matchLabels del Deployment (app: nginx).

    spec.ports.port

    El puerto expuesto en la IP del clúster. Acceda dentro del clúster mediante clusterIP:port.

    spec.ports.targetPort

    El puerto del pod de backend. kube-proxy reenvía el tráfico de port a targetPort.

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${YOUR_LB_ID}                      # Replace with your SLB instance ID
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 'true'       # Set to true for a new instance with no listeners configured
      labels:
        app: nginx
      name: my-nginx-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx            # Must match the labels on the backend pods
      type: LoadBalancer
  2. Aplique el Service:

    kubectl apply -f my-nginx-svc.yaml
  3. Confirme que el Service tenga una IP externa:

    kubectl get svc my-nginx-svc

    Salida esperada:

    NAME           TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
    my-nginx-svc   LoadBalancer   172.21.5.82   39.106.XX.XX     80:30471/TCP   5m
  4. Acceda a la aplicación:

    curl <YOUR-EXTERNAL-IP>    # Replace with the external IP from the previous step

    Salida esperada:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    ...
    </html>

Gestionar Services

Usar la consola de ACK

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel izquierdo, elija Network > Services.

  3. En la página Services, haga clic en el nombre de un Service para ver sus detalles, o bien haga clic en Update o Delete en la columna Actions.

Usar kubectl

Actualizar un Service

kubectl edit service my-nginx-svc

También puede editar my-nginx-svc.yaml y volver a aplicarlo:

kubectl apply -f my-nginx-svc.yaml

Consultar un Service

kubectl get service my-nginx-svc

Salida esperada:

NAME           TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
my-nginx-svc   LoadBalancer   172.21.XX.XX   192.168.XX.XX    80:31599/TCP   5m

Eliminar un Service

kubectl delete service my-nginx-svc

Referencia de configuración de CLB

Configure estos parámetros cuando cree o reutilice una instancia CLB en la consola de ACK.

Crear una nueva instancia CLB

Parameter

Description

Name

Nombre de la instancia CLB

Access Method

Public Access o Internal Access

Billing Method

Pay-by-specification o Pay-as-you-go (Pay-by-CU). Consulte Facturación de CLB.

IP Version

IPv4 o IPv6

Scheduling Algorithm

Round Robin (RR) (predeterminado): distribuye las solicitudes en secuencia. Weighted Round Robin (WRR): los servidores con mayor peso reciben más solicitudes.

Access Control

Habilite o deshabilite el control de acceso a nivel de listener. Consulte Control de acceso.

Health Check

TCP o HTTP. Consulte Comprobaciones de estado de CLB.

Others

Configure mediante anotaciones. Consulte Use annotations to configure CLB instances.

Usar una instancia CLB existente

Seleccione la instancia y, de manera opcional, habilite Overwrite Existing Listeners. Consulte Usar una instancia CLB existente y sobrescribir forzosamente sus listeners.

Importante

Revise los límites de uso antes de reutilizar un CLB. Consulte Usage notes en "Consideraciones para configurar un LoadBalancer Service".

Configuración avanzada

Parameter

Description

Scheduling Algorithm

Round Robin (RR) (predeterminado) o Weighted Round Robin (WRR)

Access Control

Habilite o deshabilite el control de acceso del listener

Health Check

TCP o HTTP. Consulte Comprobaciones de estado de CLB.

Others

Configure mediante anotaciones. Consulte Use annotations to configure CLB instances.

Referencia de configuración de NLB

Configure estos parámetros cuando cree o reutilice una instancia NLB en la consola de ACK.

Crear una nueva instancia NLB

Parameter

Description

Name

Nombre de la instancia NLB

Access Method

Public Access o Internal Access

Billing Method

Pay-as-you-go (Pay-by-CU). Consulte Facturación de NLB.

IP Version

IPv4 o Dual-stack

Scheduling Algorithm

Round-Robin: distribuye en secuencia. Weighted Round-Robin (predeterminado): los servidores con mayor peso reciben más solicitudes. Source IP Hashing: la misma IP de origen se enruta al mismo servidor. Four-Element Hashing: enruta según la IP de origen, la IP de destino, el puerto de origen y el puerto de destino. QUIC ID Hashing: el mismo ID de QUIC se enruta al mismo servidor. Weighted Least Connections: enruta según el peso y el número de conexiones.

Health Check

TCP (predeterminado): sondeo SYN. Configure Health Check Response Timeout, Health Check Interval, Healthy Threshold y Unhealthy Threshold. HTTP: sondeo HEAD/GET. Configure Domain Name (Backend Server Internal IP o Custom Domain Name), Path y Health Check Status Codes (http_2xx, http_3xx, http_4xx, http_5xx; predeterminado: http_2xx).

VPC

La región de VPC y el ID de VPC del clúster

Vswitch

Seleccione un vSwitch en una zona compatible o cree uno nuevo

Others

Configure mediante anotaciones. Consulte Use annotations to configure NLB instances.

Usar una instancia NLB existente

Seleccione la instancia y, de manera opcional, habilite Overwrite Existing Listeners. Consulte Use an existing NLB instance.

Importante

Revise los límites de uso antes de reutilizar un NLB. Consulte Usage notes en "Consideraciones para configurar un LoadBalancer Service".

Configuración avanzada

Parameter

Description

Scheduling Algorithm

Las mismas opciones que en la tabla anterior para crear una instancia NLB

Health Check

Las mismas opciones que en la tabla anterior para crear una instancia NLB

VPC

La región de VPC y el ID de VPC del clúster

Vswitch

Seleccione un vSwitch en una zona compatible o cree uno nuevo

Others

Configure mediante anotaciones. Consulte Use annotations to configure NLB instances.

Pasos siguientes