Kubernetes é uma das poucas tecnologias com as quais as pessoas lutam, não porque seja complicado e difícil de entender, mas porque foi projetado para ser executado em hardware de nível de servidor e não pode ser facilmente simulado em um computador doméstico típico tão facilmente. Felizmente, há uma variedade de plataformas hospedadas em nuvem que fornecem infraestrutura acessível para experimentar e entender tecnologias como Kubernetes.Como pré-requisito, incentivo você a ler nossas postagens sobre a arquitetura do Kubernetes e sobre nós e pods, os blocos de construção de um cluster do Kubernetes.Embora haja muitas soluções hospedadas para o Kubernetes, vamos implantar tudo do zero no DigitalOcean, que é uma solução de hospedagem em nuvem voltada para desenvolvedores em particular.
Uma instância VPS nesta plataforma é conhecida como gota. Para executar o Kubernetes, você precisa de pelo menos 2 GB de RAM e usaremos as gotas de opção de US $ 20 / mês para esta demonstração. Eles cobram por hora também, então se você experimentar por algumas horas e depois destruir todas as gotas, você acabará pagando não mais do que alguns dólares.
Agora temos duas máquinas, uma rotulada como mestre e outra que será o nó de trabalho. Então, vamos configurar o mestre primeiro.
Configurando o nó mestre
Para configurar o nó mestre, faça SSH nele usando o IP público ou use o console fornecido pela DigitalOcean para acessar o terminal como usuário root.
Os primeiros comandos são os básicos para a manutenção da casa:
$ apt update && apt upgrade -yEm seguida, buscamos as chaves gpg necessárias e as adicionamos à nossa lista de repositórios remotos confiáveis.
$ curl -s https: // packages.nuvem.Google.com / apt / doc / apt-key.gpg | apt-key add -$ cat < /etc/apt/sources.list.d/kubernetes.list
deb http: // apt.Kubernetes.io / kubernetes-xenial main
EOF
atualização de $ apt
Executar a atualização do apt pela segunda vez deixará o sistema atualizado com o repo oficial do Kubernetes. Agora, instalamos os pacotes necessários.
$ apt install docker.io#Docker é necessário para a conteinerização de aplicativos.
$ apt install kubelet kubeadm kubectl kubernetes-cni
O último comando instala alguns pacotes, cada um dos quais é importante por diferentes razões:
- Kubeadm: Faz bootstraps e inicializa o Kubernetes em um nó. Ele pode ser usado para atribuir a um droplet a função de nó mestre ou nó de trabalho.
- Kubelet: É um processo em segundo plano que fala com o nó mestre e executa as ações solicitadas por ele.
- Kubectl: É a ferramenta de linha de comando que permite que os desenvolvedores e a equipe de operações interajam e controlem o cluster Kubernetes.
- Kubernetes-cni: É a interface de rede de contêiner necessária para comunicações internas entre pods e comunicação externa também.
Agora que temos todos os pacotes necessários instalados, é hora de inicializarmos o nó mestre. Execute o seguinte:
$ kubeadm init --pod-network-cidr = 10.244.0.0/16 --apiserver-advertise-address $ DROPLET_IP_ADDRESS
Certifique-se de substituir a última variável $ DROPLET_IP_ADDRESS pelo IP público do seu nó mestre. Se tudo funcionasse bem, esta seria sua saída:
Certifique-se de copiar a última linha “kubeadm join -token…”, pois contém as credenciais de segurança necessárias que um nó de trabalho precisaria para ingressar no cluster.
Cada nó mestre tem um servidor de API em execução, que o comando acima irá expor à rede pod e também à interface da linha de comando, kubectl, bem como para uma IU da Web opcional.
Observação: Você pode usar o endereço IP público de seu droplet para o kubeadm init comando, mas se você deseja isolar seu nó mestre do resto do mundo, você pode querer usar o recurso de IP privado do DigitalOcean, que será usado por diferentes pods em diferentes nós para se comunicarem entre si. Posteriormente, você pode expor apenas os serviços de front-end, quando seu projeto se concretizar. |
Ok, uma última etapa antes de vermos o relatório de integridade em nosso nó mestre. Você pode querer executar:
$ mkdir -p $ HOME /.kube$ cp / etc / kubernetes / admin.conf $ HOME /.kube
$ chown $ (id -u): $ (id -g) $ HOME / admin.conf
$ kubectl create -f
https: // raw.githubusercontent.com / coreos / flanela / master / Documentação / kube-flanela.yml --namespace = kube-system
Flannel é instalado no último comando que fornece funcionalidade de rede de camada 3 necessária para contêineres.
Agora podemos correr,
$ kubectl get pods -all-namespaces
O que nos mostraria o estado de todos os nós e pods neste cluster, que atualmente é apenas um. Então, é hora de configurarmos o segundo droplet e convertê-lo em um nó de trabalho do Kubernetes.
Configurando os lacaios ou nós de trabalho
Muita configuração do minion vai ser uma repetição do que fizemos acima, é de kubeadm mandar que a estrada comece a divergir.
Portanto, para configurar seu nó de trabalho, repetindo todos os comandos até e incluindo a instalação de pacotes,
$ apt install kubelet kubeadm kubectl kubernetes-cniEm seguida, para inicializar o droplet como um nó kubernetes, execute o comando que foi gerado no nó mestre, após a conclusão dekubeadm init.
$ kubeadm join --token 3c37b5.08ed6cdf2e4a14c9159.89.25.245: 6443 - descoberta-token-ca-cert-hash
sha256: 52f99432eb33bb23ff86f62255ecbb
Observe que o conteúdo após o sinalizador de token, o endereço IP e a soma de verificação sha256 serão todos muito diferentes no seu caso. É isso! Você tem um novo nó como membro do cluster Kubernetes. Você pode confirmar isso listando os nós e pods em execução neste cluster.
Conclusão
Agora é hora de você implantar seu encaixado aplicativo neste cluster e fique à vontade para girar mais gotas e usar o kubeadm join para adicionar novos membros ao cluster Kubernetes.