Kubespray en un entorno fuera de línea (o local)

Kubespray en un entorno fuera de línea (o local)

Soy nuevo en k8s y kubespray.

Mi propósito es construir un clúster k8s en un entorno local. Con los EC2 que tienen IP públicas y acceso a Internet, todo estuvo bien. Pero con restricciones más complicadas, estoy estancado. A continuación se muestra mi restricción.

  • 1 bastión que tiene IP pública y acceso a Internet.
  • n nodos que no tienen IP pública ni acceso a Internet

De acuerdo adocumento de kubespray, requiere algunas configuraciones. Pero mi opinión es que, dado que Bastion tiene acceso completo a Internet, puede haber una manera fácil de crear un clúster k8s con kubespray.

¿Hay algún blog o paso a paso para hacer esto?

Respuesta1

Hasta donde tengo entendido, si su bastión puede acceder a los registros y repositorios públicos, entonces puede instalar algún servidor Squid, enviando consultas en nombre de sus nodos de Kubernetes.

En cuyo caso, esta ya no es una implementación desconectada y podemos configurar las variables http_proxy https_proxyy no_proxyen group_vars/all.yml, utilizando ese proxy para sacar los activos de su lugar original.

Pruebe con algo como apt-get install squido dnf install squid. Un squid.conf básico podría verse así:

http_port 3128
cache_log /var/log/squid/cache.log
cache_mem 256 MB
cache_dir aufs /var/spool/squid 10240 16 256
maximum_object_size 1024 MB
cache_effective_group proxy
hosts_file /etc/hosts
logfile_rotate 4
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined
coredump_dir /var/spool/squid
error_directory /usr/share/squid/errors/en
http_access allow all
http_reply_access allow all
cache allow all
icp_access allow all

Pruebe la conectividad desde uno de sus nodos de Kubernetes:

# curl -vvv --proxy http://10.42.44.100:3128/ https://perdu.com
...
* Connected to 10.42.44.100 (10.42.44.100) port 3128 (#0)
...
* Establish HTTP proxy tunnel to perdu.com:443
...

Ahora, asegúrese de que su inventario de Kubespray establezca las variables adecuadas utilizando ese proxy. La configuración del administrador de paquetes del sistema operativo y del contenedor de ejecución los usaría.


Si configurar ese proxy no es adecuado por algún motivo, deberá reflejar todas las imágenes y archivos mencionados en ese offline-environment.mddocumento.

Tal vez configure un servidor Nginx para los archivos binarios y archivos kubectl / etcd / ... y ejecute un contenedor de registro acoplable, reflejando esas imágenes. Sin embargo, tenga en cuenta que el tiempo de ejecución de su contenedor debe configurarse correctamente ignorando los errores de registro inseguros (variables adicionales de Kubespray para configurar), o su sistema operativo debe confiar en la CA que firmó su certificado de servidor de registro.

información relacionada