Kubespray em ambiente offline (ou local)

Kubespray em ambiente offline (ou local)

Sou novo no k8s e no kubespray.

Meu objetivo é construir um cluster k8s em um ambiente local. Com EC2s que possuem IPs públicos e acesso à internet, estava tudo bem. Mas com restrições mais complicadas, estou preso. Abaixo está minha restrição.

  • 1 bastião que tem IP público e acesso à internet
  • n nós que não possuem IP público e acesso à Internet

De acordo comdocumento kubespray, requer muitas configurações. Mas minha opinião é que, como o Bastion tem acesso total à Internet, pode haver uma maneira fácil de construir um cluster K8s com o Kubespray.

Existe algum blog ou passo a passo para fazer isso?

Responder1

Pelo que entendi, se o seu bastião puder acessar os registros e repositórios públicos, você poderá instalar algum servidor Squid, fazendo proxy de consultas em nome dos seus nós do Kubernetes.

Nesse caso, esta não é mais uma implantação desconectada e podemos definir as variáveis http_proxy https_proxy​​e no_proxyem group_vars/all.yml, usando esse proxy retirando os ativos de seu lugar original.

Tente com algo como apt-get install squidou dnf install squid. Um squid.conf básico pode ter a seguinte aparência:

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

Teste a conectividade de um dos nós do 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
...

Agora, certifique-se de que seu inventário Kubespray defina variáveis ​​adequadas usando esse proxy. A configuração do Container Runtime e do gerenciador de pacotes do SO os usaria.


Se a configuração desse proxy não for adequada por algum motivo, você precisará espelhar todas as imagens e arquivos mencionados nesse offline-environment.mddocumento.

Talvez configure um servidor Nginx para os binários e arquivos kubectl / etcd / ... e execute um contêiner docker-registry, espelhando essas imagens. Porém, tenha em mente que o tempo de execução do seu contêiner deve ser configurado corretamente, ignorando erros de registro inseguros (variáveis ​​adicionais do Kubespray a serem definidas), ou seu sistema operacional deve confiar na CA que assinou o certificado do servidor de registro.

informação relacionada