Saltar al contenido

¿Cómo saber la propia dirección IP de un Pod desde dentro de un contenedor en el Pod?

Esta cuestión se puede tratar de diversas formas, sin embargo te damos la que para nosotros es la resolución más completa.

Solución:

La respuesta más sencilla es asegurarse de que los archivos yaml/json del pod o del controlador de replicación agreguen la IP del pod como una variable de entorno agregando el bloque de configuración que se define a continuación. (el bloque a continuación también hace que el nombre y el espacio de nombres estén disponibles para el pod)

env:
- name: MY_POD_NAME
  valueFrom:
    fieldRef:
      fieldPath: metadata.name
- name: MY_POD_NAMESPACE
  valueFrom:
    fieldRef:
      fieldPath: metadata.namespace
- name: MY_POD_IP
  valueFrom:
    fieldRef:
      fieldPath: status.podIP

Vuelva a crear el pod/rc y luego intente

echo $MY_POD_IP

también corre env para ver qué más te ofrece kubernetes.

Salud

Algunas aclaraciones (no es realmente una respuesta)

En kubernetes, a cada pod se le asigna una dirección IP y a cada contenedor del pod se le asigna la misma dirección IP. Por lo tanto, como dijo Alex Robinson en su respuesta, solo puede usar hostname -i dentro de su contenedor para obtener la dirección IP del pod.

Probé con un pod que ejecutaba dos contenedores tontos y, de hecho, hostname -i estaba generando la misma dirección IP dentro de ambos contenedores. Además, esa IP era equivalente a la obtenida usando kubectl describe pod desde el exterior, lo que valida todo el asunto de la OMI.

Sin embargo, la respuesta de PiersyP me parece más clara.

Fuentes

De los documentos de Kubernetes:

Todas las aplicaciones en un pod usan el mismo espacio de nombres de red (misma IP y espacio de puerto) y, por lo tanto, pueden “encontrarse” entre sí y comunicarse usando localhost. Debido a esto, las aplicaciones en un pod deben coordinar su uso de puertos. Cada pod tiene una dirección IP en un espacio de red plano compartido que tiene comunicación completa con otras computadoras físicas y pods a través de la red.

Otra pieza de los documentos de Kubernetes:

Hasta ahora este documento ha hablado de contenedores. En realidad, Kubernetes aplica direcciones IP en el ámbito del Pod: los contenedores dentro de un Pod comparten sus espacios de nombres de red, incluida su dirección IP. Esto significa que todos los contenedores dentro de un pod pueden llegar a los puertos de los demás en localhost.

kubectl describe pods le dará alguna información incluyendo la IP

Si tienes alguna duda o forma de progresar nuestro sección te mencionamos realizar una acotación y con mucho gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *