Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Crear un servicio

Última actualización: Oct 09, 2026

En Kubernetes, un Service es una abstracción que expone una aplicación en ejecución sobre un conjunto de pods como un servicio de red. Proporciona un nombre DNS estable y balanceo de carga para los pods. Este tema explica cómo funcionan los Services de Kubernetes, describe consideraciones importantes y ofrece recomendaciones para elegir el tipo de Service adecuado.

Requisitos previos

Se requiere un clúster de ACK Serverless. Para más información, consulte Quick start for ACK Serverless.

Cómo funcionan los Services

Un selector de etiquetas identifica a qué pods se dirige un Service. Cuando el Service recibe tráfico, distribuye las solicitudes entre todos los pods cuyas etiquetas coinciden con el selector.

A continuación se muestran los tres tipos de Service y cuándo utilizar cada uno:

Tipo de Service

Patrón de acceso

Cuándo usarlo

Cluster IP

Solo dirección IP interna del clúster (predeterminado)

Para exponer la aplicación a otras cargas de trabajo dentro del mismo clúster

Node Port

<NodeIP>:<NodePort> desde fuera del clúster

Acceso directo a nivel de nodo; no disponible para clústeres de ACK Serverless

Server Load Balancer

Instancia de SLB orientada a Internet o interna

Para exponer la aplicación a usuarios externos o a consumidores internos de la VPC

Para consultar la especificación completa de los Services de Kubernetes, visite Kubernetes Services.

Paso 1: Crear un Deployment

  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 de navegación izquierdo, haga clic en Workloads > Deployments.

  3. En la esquina superior derecha de la página Deployments, haga clic en Create from YAML.

  4. Seleccione una plantilla de ejemplo o introduzca su YAML personalizado y, a continuación, haga clic en Create.

    En este ejemplo, la plantilla de muestra corresponde a un Deployment de NGINX.

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
       name: nginx-deployment-basic
       labels:
         app: nginx
    spec:
       replicas: 2
       selector:
         matchLabels:
           app: nginx
       template:
         metadata:
           labels:
             app: nginx
         spec:
           containers:
           - name: nginx
             image: nginx:1.7.9                # Replace with your image name and tag.
             ports:
             - containerPort: 80               # This port must be exposed in the service.
  5. En la lista de deployments, haga clic en el nombre de la aplicación de destino o en Details dentro de la columna Actions para consultar el estado del Deployment. La página de detalles de nginx-deployment-basic muestra su información básica: el espacio de nombres default, tanto el selector como las labels son app:nginx, la anotación es deployment.kubernetes.io/revision:1 y la política de actualización es RollingUpdate (incremento máximo del 25 % e indisponibilidad máxima del 25 %). El estado indica que 2 de 2 pods están listos, 2 se actualizaron y 2 están disponibles. En la lista de pods, ambos utilizan la imagen nginx:1.7.9, se encuentran en estado Running y tienen un recuento de reinicios de 0.

Paso 2: Crear un servicio

  1. En el panel de navegación izquierdo de la página de administración del clúster, elija Network > Services.

  2. En la página Services, haga clic en Create.

  3. En el cuadro de diálogo Create Service, configure los parámetros.

    Parámetro

    Descripción

    Name

    Introduzca un nombre para el servicio.

    Tipo de Service

    Seleccione un tipo de Service, lo cual determina cómo se accede al servicio. Opciones:

    • Cluster IP: expone el servicio en una dirección IP interna del clúster. Este tipo de servicio solo es accesible desde dentro del clúster. Es el tipo predeterminado.

      Nota

      Solo puede configurar un Headless Service cuando el Service Type es Cluster IP. Un Headless Service le permite interactuar con otros mecanismos de detección de servicios sin depender de la implementación de Kubernetes.

    • Node Port: expone el servicio en un puerto estático (el NodePort) de la dirección IP de cada nodo. Un Service de tipo NodePort enruta el tráfico hacia un Service de tipo ClusterIP, el cual se crea automáticamente. Puede acceder a un Service de tipo Node Port desde fuera del clúster mediante una solicitud a <NodeIP>:<NodePort>.

      Nota

      Solo los clústeres de ACK admiten NodePort. Los clústeres de ACK Serverless no lo admiten.

    • Server Load Balancer: utiliza una instancia de Alibaba Cloud Server Load Balancer (SLB) para exponer el servicio. Puede elegir exponerlo a través de Internet o únicamente dentro de una red privada. Un load balancer puede enrutar tráfico hacia Services de tipo NodePort y ClusterIP.

      • Create SLB Instance: haga clic en Modify para cambiar la especificación de la instancia de SLB.

      • Use Existing SLB Instance: seleccione una instancia de SLB de la lista de instancias existentes.

      Nota

      El tipo Load balancer admite crear una nueva instancia de SLB o utilizar una existente. Varios Services de Kubernetes pueden compartir la misma instancia de SLB, sujetos a los siguientes límites:

      • Si utiliza una instancia de SLB existente, sus listeners actuales se sobrescriben.

      • No reutilice una instancia de SLB creada automáticamente por otro servicio, ya que esto podría provocar una eliminación accidental.

      • Cuando varios servicios reutilizan la misma instancia de SLB, asegúrese de que los puertos de listener del frontend sean distintos para evitar conflictos de puertos.

      • Al reutilizar una instancia de SLB, Kubernetes emplea los nombres de los listeners y de los grupos vServer como identificadores únicos. No modifique estos nombres.

      • No es posible reutilizar una instancia de SLB entre distintos clústeres.

    External Traffic Policy

    Establezca la política de tráfico externo. Para ver una comparación detallada, consulte Comparison of external traffic policies.

    • Local: el tráfico se enruta únicamente a los pods del mismo nodo que recibió la solicitud.

    • Cluster: el tráfico se puede reenviar a pods ubicados en otros nodos del clúster.

    Nota

    Solo puede configurar la External Traffic Policy cuando el Tipo de Service es Node Port o Server Load Balancer.

    Backend

    Seleccione la aplicación de backend a la que el servicio enviará el tráfico. Si no asocia el servicio con un backend, Kubernetes no crea el objeto Endpoints correspondiente. Para más detalles, consulte Services without selectors.

    Port Mapping

    Agregue un puerto de servicio (el campo port en el archivo YAML del servicio) y un puerto de contenedor (el campo targetPort en el archivo YAML del servicio). El puerto del contenedor debe coincidir con el puerto expuesto por los pods del backend.

    Anotaciones

    Agregue una anotación para configurar parámetros del load balancer. Puede seleccionar Custom Annotation o Alibaba Cloud Annotation. Por ejemplo, la anotación service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:2 establece el ancho de banda máximo del servicio en 2 Mbit/s para controlar el tráfico. Para conocer más parámetros, consulte Configure a Classic Load Balancer (CLB) by using annotations.

    Labels

    Agregue una etiqueta para identificar el servicio.

  4. Haga clic en Create.

    El servicio recién creado aparece en la lista de la página Services.

    En la página Services, haga clic en Update o en Delete dentro de la columna Actions del Service que desea gestionar.

    Nota

    En la página de detalles del servicio, haga clic en el enlace junto a External Endpoint para acceder a la aplicación.