K8S The Hard Way 8/10 - Kubectl e Rotas
Configurando kubectl para acesso remoto
Neste laboratório, você gerará um arquivo kubeconfig para o utilitário de linha de comando kubectl com base nas credenciais do usuário administrador.
Execute os comandos neste laboratório no mesmo diretório usado para gerar os certificados de cliente admin.
O arquivo de configuração do Admin Kubernetes Cada kubeconfig requer um servidor da API Kubernetes para se conectar. Para oferecer suporte à alta disponibilidade, o endereço IP atribuído ao balanceador de carga externo na frente dos servidores da API Kubernetes será usado.
Gere um arquivo kubeconfig adequado para autenticação como usuário administrador:
KUBERNETES_PUBLIC_ADDRESS=`sudo vagrant ssh-config loadbalancer | grep HostName | xargs | sed 's/HostName//g' | xargs`
kubectl config set-cluster kubernetes-the-hard-way \
--certificate-authority=ca.pem \
--embed-certs=true \
--server=https://${KUBERNETES_PUBLIC_ADDRESS}:6443
kubectl config set-credentials admin \
--client-certificate=admin.pem \
--client-key=admin-key.pem
kubectl config set-context kubernetes-the-hard-way \
--cluster=kubernetes-the-hard-way \
--user=admin
kubectl config use-context kubernetes-the-hard-way
Verificação Verifique a integridade do cluster remoto do Kubernetes:
kubectl get componentstatuses
resultado
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy {"health":"true"}
etcd-2 Healthy {"health":"true"}
etcd-1 Healthy {"health":"true"}
Liste os nodes no cluster Kubernetes remoto:
kubectl get nodes
resultado
NAME STATUS ROLES AGE VERSION
worker-0 Ready <none> 22m v1.18.6
worker-1 Ready <none> 22m v1.18.6
worker-2 Ready <none> 22m v1.18.6
Provisionamento de rotas de rede de pod
Os pods programados para um nó recebem um endereço IP do intervalo CIDR de pods do nó. Neste ponto, os pods não podem se comunicar com outros pods em execução em nós diferentes devido a rotas de rede ausentes.
Neste laboratório, você criará uma rota para cada nó de trabalho que mapeia o intervalo de CIDR do pod do nó para o endereço IP interno do nó.
A Tabela de Roteamento Nesta seção, você reunirá as informações necessárias para criar rotas na rede kubernetes-the-hard-way.
Imprima o endereço IP interno e o intervalo CIDR do pod para cada instância do trabalhador:
i=0
for instance in worker-0 worker-1 worker-2; do
IP=10.200.$i.0
sudo vagrant ssh-config $instance | grep "HostName" | sed 's/HostName//g' | tr "\n" " " | sed "s/Host\ /\\n/g" | awk -F " " -v IP=$IP '{print "sudo ip r add "IP"/24"" via "$1" dev eth0"}'
i=$((i+1))
done
Resultado:
sudo ip r add 10.200.0.0/24 via 192.168.122.212 dev eth0
sudo ip r add 10.200.1.0/24 via 192.168.122.167 dev eth0
sudo ip r add 10.200.2.0/24 via 192.168.122.79 dev eth0
Save as rotas em uma arquivo de confgiuração conforme a documentação da distribuição utilizada.
Proximo: K8S The Hard Way 9/10 - DNS