Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Cloud Container Engine/ Preguntas frecuentes/ Carga de trabajo/ Otros/ ¿Qué es un servicio sin cabeza cuando creo un StatefulSet?
Actualización más reciente 2023-08-08 GMT+08:00

¿Qué es un servicio sin cabeza cuando creo un StatefulSet?

El servicio de detección inter-pod de CCE corresponde al Service sin cabeza de Kubernetes. Los Services sin cabeza especifican None para la IP del clúster (spec:clusterIP) en YAML, lo que significa que no se asigna ninguna IP del clúster.

Diferencias entre los Services sin cabeza y los Services comunes

  • Services comunes:

    Un servicio puede estar respaldado por múltiples puntos de conexión (pods). Un cliente accede a la dirección IP del clúster y la solicitud se reenvía al servidor real basándose en las reglas iptables o IPVS para implementar el equilibrio de carga. Por ejemplo, un Service tiene dos puntos de conexión, pero solo se devuelve la dirección de servicio durante la consulta de DNS. Las reglas iptables o IPVS determinan el servidor real al que accede el cliente. El cliente no puede acceder al punto de conexión especificado.

  • Services sin cabeza:

    Cuando se accede a un Service sin cabeza, se devuelve el punto de conexión real (dirección IP del pod). El Service sin cabeza apunta directamente a cada punto de conexión es decir, cada pod tiene un nombre de dominio DNS. De esta manera, los pods pueden acceder entre sí, logrando el descubrimiento y el acceso inter-pod.

Escenarios de aplicaciones de Service sin cabeza

Si no hay diferencia entre varios pods de una carga de trabajo, puede usar un servicio común y usar el clúster kube-proxy para implementar el balanceo de carga, por ejemplo, una Nginx Deployment.

Sin embargo, en algunos escenarios de aplicación, los pods de una carga de trabajo tienen diferentes roles. Por ejemplo, en un clúster de Redis, cada pod de Redis es diferente. Tienen una relación maestro/esclavo y necesitan comunicarse entre sí. En este caso, un Service común no puede acceder a un pod especificado con la dirección IP del clúster. Por lo tanto, debe permitir que el Service sin cabeza acceda directamente a la dirección IP real del pod para implementar el acceso mutuo entre pods.

Los Services sin cabeza trabajan con StatefulSet para desplegar las aplicaciones de stateful, como Redis y MySQL.