Configuración de los agentes de Schematics para utilizar un servidor proxy

Muchos entornos no permiten la conectividad directa a la Internet pública, pero requieren que las conexiones sean direccionadas por una pasarela de proxy seguro. Schematics Las políticas de configuración del agente permiten el uso de un servidor proxy donde no se permite el acceso directo a Internet. Puede utilizar un proxy HTTP o HTTPS.

La configuración de proxy debe ser la misma en cada host del clúster. Por lo tanto, al configurar el proxy o modificarlo, debe actualizar el archivo de especificación YAML de despliegue, ConfigMap, y NetworkPolicy. A continuación, reinicie el despliegue para aplicar la configuración del servidor proxy.

Antes de empezar

Confirme que se cumplen los requisitos siguientes antes de configurar el acceso al servidor proxy. El ejemplo aquí utiliza un proxy squid en el puerto 3128.

  • Un servidor proxy que puede llegar a Google mediante HTTP o HTTPS y es accesible desde el clúster.
  • La dirección IP y el puerto del servidor proxy, por ejemplo, http://53.25.191.193:3128
  • La herramienta de línea de mandatos curl está disponible en los pods de clúster.

Configuración de un servidor proxy

  1. Desde la consola del clúster deKubernetes. Haga clic en Kubernetes dashboard

  2. Cambie a schematics-runtime en el recuadro desplegable de selección de espacio de nombres.

  3. En la sección Config and Storage, pulse Correlaciones de configuración para visualizar las correlaciones para el espacio de nombres schematics-runtime.

    • Pulse el recurso de mapa de configuración schematics-runtime-job-config y seleccione el icono de lápiz para editar el archivo YAML para añadir las sentencias de proxy HTTPS/HTTP.

    • Añada entradas de proxy HTTPS/HTTP bajo la propiedad data en la sección inferior del archivo:

      data:
        HTTPS_PROXY: http://<ipaddress>:<port>
        HTTP_PROXY: http://<ipaddress>:<port>
      
    • Pulse Actualizar para guardar el mapa de configuración y confirmar que las nuevas entradas de proxy se muestran en la lista de archivos.

    • Repita el procedimiento para el recurso configmap schematics-runtime-ansible-job-config.

  4. En la sección Cluster, pulse Políticas de red para visualizar las políticas para el espacio de nombres schematics-runtime.

    • Edite el archivo whitelist-runtime-egress-gen-ports NetworkPolicy para añadir el puerto utilizado por el proxy de HTTPS/HTTP.
    • Añada el puerto de proxy HTTPS/HTTP a la propiedad ports.
      - ports:
        - protocol: TCP
          port: 3128
      
  5. Reinicie el despliegue de schematics-runtime y verifique que todos los pods se están ejecutando.

    • En la sección Workloads, pulse Despliegues para visualizar los despliegues actuales para el espacio de nombres schematics-runtime.
    • Seleccione el recurso runtime-job y reinicie el pod.
    • Seleccione el recurso runtime-ansible-job y reinicie el pod.

Verificación del acceso al servidor proxy

Verifique que los pods de clúster pueden acceder a Internet a través del servidor proxy.

  • Inicie sesión en el pod schematics-runtime y ejecute el siguiente mandato curl para verificar que las variables de entorno de proxy se han establecido correctamente en el contenedor.

  • En Workloads > Pods, seleccione el primer job-runtime y Exec en él.

    curl --head https://www.google.com
    

Si el proxy está funcionando para HTTPS, el mandato curl devuelve un 200 OK HTTP response.

Si el mandato curl no se puede conectar, verifique que el proxy sea accesible desde el clúster y pueda direccionar el acceso al sitio web de destino. Utilice el siguiente mandato curl con la opción de proxy para validar que el proxy es accesible.

```curl {: codeblock}
curl --proxy http://<ipaddress>:<port> --head https://www.google.com
```

Si no se puede acceder al sitio web utilizando el parámetro proxy, verifique que la regla de salida de red para el clúster se ha establecido correctamente y que hay acceso de red al proxy.

Si se puede acceder al sitio web utilizando el parámetro de proxy, verifique que el configmap se ha actualizado correctamente y que las variables de entorno de proxy de HTTPS/HTTP se han establecido ejecutando el mandato env.

Las variables de entorno HTTP_PROXY y HTTPS_PROXY se deben listar en la salida. Si no aparece en la lista, vuelva a comprobar las definiciones de configmap.