Neste tutorial, aprenda a fazer seu primeiro deploy no Kubernetes, usando o K3s, uma versão mais leve e prática do Kubernetes. Vamos configurar um cluster K3s em uma instância t3.micro da AWS e expor um serviço HTTP.

O Kubernetes é uma plataforma de orquestração de containers que automatiza o gerenciamento, deploy e escalabilidade de aplicações, que permite que você execute, escale e atualize suas aplicações de forma eficiente e confiável. Configurar um ambiente Kubernetes é uma excelente maneira de explorar seus conceitos e entender como ele facilita a gestão de aplicações complexas.

Criando a instância EC2 na AWS

Faça login no console da AWS ou crie sua conta.

  • Na barra de busca, procure por “EC2” ou clique no link, e depois clique em “Executar instância”.
  • Em Nome, coloque um nome para instância, como “k3s“.
  • Escolha a imagem Ubuntu e arquitetura 64 bits (x86).

Em Tipo de instância, selecione “t3.micro”.

Em Par de chaves (login), clique em Criar novo par de chaves, e crie uma chave com nome “k3s”, tipo “RSA” e formato “.pem“.

Ao cliar em Criar par de chaves, será baixado o arquivo “k3s.pem“, que você pode usar posteriormente para se conectar via SSH na instância.

Em Configurações de rede, marque as opções “Permitir tráfego SSH de – Qualquer lugar”, “Permitir tráfego HTTP da Internet” e “Permitir tráfego HTTP da Internet“.

Por último, clique em Executar instância.

Instalando o K3s no cluster

Após a instância ser criada, clique Conectar-se à instância, deixe marcada a opção Conectar-se usando o EC2 Instance Connect e clique em Conectar.

No terminal do console da AWS, digite sudo -i, para acesso root.

Depois execute o código abaixo para instalar o k3s.

curl -sfL https://get.k3s.io | sh -

Execute o comando abaixo para exibir o conteúdo do arquivo de autenticação do cluster Kubernetes.

cat /etc/rancher/k3s/k3s.yaml | sed 's/127.0.0.1/DNS_PUBLICO/g'

Copie todo o conteúdo do arquivo para um editor de texto.

Em uma nova aba, abra a visualização de instâncias do console, e copie o DNS IPv4 Público da instância.

No editor de texto, substitua a texto DNS_PUBLICO pelo valor copiado do console.

Salve o arquivo com o nome “k3s-config.yaml“.

Habilitar a porta de gerenciamento do Kubernetes

No console da AWS, clique sobre o ID da instância. Na aba Segurança, clique sobre o “Grupo de segurança“.

Clique em Editar regras de entrada e depois em Adicionar regra.

Preencha com os valores:

  • TipoTCP Personalizado
  • Intervalo de portas6443
  • OrigemPersonalizado – 0.0.0.0/0
  • Descriçãok3s

Depois clique em Salvar regras.

Instalando o kubectl e testando o acesso

Acesse o site das tools do kubernetes e instale o kubectl para o seu sistema operacional.

Após realizar a instalação, em um terminal, vá até a pasta onde você salvou o arquivo k3s-config.yaml.

Execute o comando abaixo para testar a conexão com o cluster do K3s.

export KUBECONFIG=./k3s-config.yaml
kubectl --insecure-skip-tls-verify get nodes -o wide

Se tudo estiver correto, o node será listado.

Fazendo o deploy do serviço no Kubernetes

Para esse exemplo, vamos fazer deploy do mooit.

Crie o arquivo mooit-deployment.yaml com o conteúdo:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: mooit
  name: mooit
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mooit
  template:
    metadata:
      labels:
        app: mooit
    spec:
      containers:
      - image: bgulla/mooit
        name: mooit

Execute o comando para criar o deployment.

kubectl --insecure-skip-tls-verify apply -f mooit-deployment.yaml

Crie o arquivo mooit-service.yaml com o conteúdo:

apiVersion: v1
kind: Service
metadata:
  name: mooit
spec:
  ports:
  - port: 80
  selector:
    app: mooit
  clusterIP: None

Execute o comando para criar o service.

kubectl --insecure-skip-tls-verify apply -f mooit-service.yaml

Crie o arquivo mooit-ingress.yaml com o conteúdo abaixo, substituindo o DNS IPv4 Público da instância.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mooit
spec:
  rules:
  - host: "<DNS-DA-INSTANCIA>.sa-east-1.compute.amazonaws.com"
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: mooit
            port:
              number: 80
              targetPort: 5000

Execute o comando para criar o ingress.

kubectl --insecure-skip-tls-verify apply -f mooit-ingress.yaml

Teste o deploy

Para testar a deploy, execute o comando curl substituindo o DNS IPv4 Público da instância, ou abra o endereço no browser.

curl http://<DNS-DA-INSTANCIA>.compute.amazonaws.com

Conclusão

Neste tutorial, você aprendeu a criar uma instância EC2 na AWS, instalar o K3s como seu cluster Kubernetes e realizar o deploy de um serviço dentro do cluster. Além disso, foi mostrado como expor o serviço utilizando um Ingress para rotear o tráfego para o seu serviço.

Leave a comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *