Cluster Kubernetes via RKE

Os nós (hosts) são instanciados da seguinte maneira:

  1. Primeiramente, clona-se o modelo CTIC-VM-Nuvem-Template presente no nosso Proxmox em uma VM no modo Full Clone. Após o clone, configuram-se os parâmetros do cloud init. Exemplo:

CLoudInitParametros

  1. Em seguida, adiciona-se o host ao inventário do Ansible no grupo vms_nuvem para aplicar o playbook que configura a VM e instala as dependências.
ansible-playbook -i inventory_ansible/servidores/host ansible/servidores/vms_nuvem.yml -u root
  1. Na sequência , é adicionada uma entrada no DNS do câmpus:
vmnuvemX IN A 191.36.8.X
  1. O próximo passo é adicionar o nó no arquivo cluster.yml:
- address: vmnuvemX.sj.ifsc.edu.br
  role: [worker] # opções: [controlplane,worker,etcd]
  hostname_override: vmnuvemX
  user: root
  ssh_key_path: ~/.ssh/id_rsa

Instalação do Kubernetes via RKE:

  1. Com a configuração do cluster.yml gerada utilizamos o seguinte comando para instalar e configurar o kubernetes:
./rke up --config cluster.yml
  1. No DNS também é necessário adicionar o host nas entradas de api-cloud e ingress-cloud dependendo do papel do host. Caso seja [controlplane] deve colocar no api-cloud e sendo [worker] colocar no ingress-cloud.
api-cloud IN A 191.36.8.X
;
ingress-cloud IN A 191.36.8.X

Instalação do Rancher

Foi seguido o tutorial oficial.

  1. A criação da chave:
    kubectl -n cattle-system create secret tls tls-rancher-ingress --cert=tls.crt --key=tls.key
    
  2. Por fim, é iniciado o serviço do Rancher via helm:
helm install rancher-stable/rancher --name rancher --namespace cattle-system --set hostname=projetos.sj.ifsc.edu.br --set ingress.tls.source=tls-rancher-ingress

Repositório

O repositório é https://github.com/ctic-sje-ifsc/cluster_k8s_rke.