Configurar variables de entorno de proxy en un Pod de Kubernetes
Coloque las variables de proxy HTTP compatibles en la especificación del contenedor de Kubernetes y mantenga las rutas directas del clúster separadas de la configuración de descarga de imágenes.
Un comando en el nodo de Kubernetes puede usar un proxy de shell mientras que un Pod en ese nodo no tiene ningún entorno de proxy. El entorno del contenedor lo definen su imagen y la configuración del Pod.
Para una aplicación que admite estas variables, añada una lista env a su entrada de contenedor existente:
env:
- name: HTTP_PROXY
value: http://proxy.example:8080
- name: HTTPS_PROXY
value: http://proxy.example:8080
- name: NO_PROXY
value: localhost,127.0.0.1,kubernetes.default.svc,.svc,.cluster.local
En un Deployment, esto va bajo el contenedor correspondiente en spec.template.spec.containers. Actualice la carga de trabajo mediante su despliegue habitual para que los Pods nuevos lo reciban. Proporcione también nombres en minúsculas cuando el cliente real los requiera.
La lista de omisión es una ilustración inicial, no un inventario de todas las rutas del clúster. Utilice el sufijo DNS real del clúster y los destinos internos. Las aplicaciones que usan IP de servicio pueden necesitar los rangos de servicio reales en una sintaxis que admita su cliente.
Los contenedores de inicialización tienen sus propias especificaciones de contenedor. Añada allí la configuración prevista cuando realicen una descarga externa. Para descargas HTTP públicas, un punto de conexión de la lista de proxies HTTP es un candidato para estos valores de entorno del contenedor.
La descarga de imágenes ocurre antes de que se ejecute la aplicación y la realiza el entorno de ejecución de contenedores del nodo. El entorno del Pod no puede configurar esa conexión anterior con el registro.
Por último, las variables de proxy HTTP solo afectan a los clientes que las consumen. No redirigen el tráfico arbitrario de bases de datos, UDP u otros sockets desde el Pod.