Saltar al contenido

Agregar asignación de host a / etc / hosts en Kubernetes

Solución:

Para agregar un nombre de host al archivo de hosts de una manera “semi” dinámica, se puede usar el postStart gancho:

spec:
  containers:
  - name: somecontainer
    image: someimage
    lifecycle:
      postStart:
        exec:
          command:
            - "cat"
            - "someip"
            - "somedomain"
            - ">"
            - "/etc/hosts"

Sin embargo, una mejor manera sería utilizar un nombre abstracto que represente el servicio en múltiples etapas. Por ejemplo, en lugar de usar database01.production.company.com usar database01 y configurar el entorno de modo que esto se resuelva en producción en el entorno de producción y puesta en escena en el entorno de puesta en escena.

Por último, también es posible editar la configuración de kubedns de modo que el DNS de kubernetes se pueda utilizar para recuperar nombres DNS externos. Entonces simplemente usaría el nombre que necesite en el código, y simplemente funcionará “automágicamente”. Vea, por ejemplo, https://github.com/kubernetes/kubernetes/issues/23474 sobre cómo configurar esto (varía un poco de una versión a otra de skydns: algunos más antiguos realmente no funcionan con esto, así que actualice a al menos kube 1.3 para que esto funcione correctamente)

Cree un archivo en el sistema host (o un secreto) con todos los hosts adicionales que necesita (por ejemplo, / tmp / extra-hosts)

Luego, en el manifiesto K8S:

spec:
  containers:
    - name: haproxy
      image: haproxy
      lifecycle:
        postStart:
          exec:
            command: ["/bin/sh", "-c", "cat /hosts >> /etc/hosts"]

      volumeMounts:
        - name: haproxy-hosts
          mountPath: /hosts

      volumes:
        - name: haproxy-hosts
          hostPath:
            path: /tmp/extra-hosts

De kubernetes.io/docs: “Además del texto estándar predeterminado, podemos agregar entradas adicionales al archivo de hosts para resolver foo.local, bar.local en 127.0.0.1 y foo.remote, bar.remote en 10.1.2.3, podemos agregando HostAliases al Pod en .spec.hostAliases: “

También puede “Configurar el dominio stub y los servidores DNS ascendentes”.

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



Utiliza Nuestro Buscador

Deja una respuesta

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