Coder Social home page Coder Social logo

cluster-k8s's Introduction

Objetivos

Este repositório foi criado para estudar Kubernetes através do curso FullCycle. Para isso, desenvolvi uma aplicação em Golang e configurei vários ambientes no Kubernetes para essa aplicação: DEV (Desenvolvimento), QAA (Qualidade), HML (Homologação) e PRD (Produção).

Tutorial: Executando Kubernetes Localmente com Kind

Neste tutorial, utilizaremos o Kind para rodar o Kubernetes localmente. Vamos criar Pods da mesma aplicação em diferentes ambientes, a saber:

  • DEV (Desenvolvimento)
  • QAA (Qualidade e Automação)
  • HML (Homologação)
  • PRD (Produção)

Passo 1: Criar um Cluster Kubernetes

Primeiro, vamos criar um cluster Kubernetes usando o Kind:

kind create cluster --config=kind-cluster.yaml

Passo 2: Conectar o kubectl ao Cluster

Em seguida, conecte o kubectl para interagir com o cluster recém-criado:

kubectl cluster-info --context kind-kind-cluster

Passo 3: Adicionar Ingress ao Cluster

Para permitir acesso externo aos Pods, adicionaremos o Ingress ao nosso cluster:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml

Espere até que o controlador do Ingress esteja pronto:

kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=90s

Passo 4: Criar Pods

Agora, vamos realizar o deploy dos Pods para cada ambiente usando artefatos Deployment do Kubernetes:

kubectl apply -f <ambiente>/deployment.yaml

Verifique a criação dos Pods:

kubectl get pods

Passo 5: Criar Services

Em seguida, realizaremos o deploy dos Services para cada ambiente usando artefatos Service do Kubernetes:

kubectl apply -f <ambiente>/service.yaml

Verifique os Services criados:

kubectl get svc

Passo 6: Criar ConfigMaps

Em seguida, realizaremos o deploy dos ConfigMap para cada ambiente usando artefatos ConfigMap do Kubernetes:

kubectl apply -f <ambiente>/configmap.yaml

Verifique os Services criados:

kubectl get confimap

Passo 7: Criar o Ingress

Agora, criaremos o recurso Ingress para roteamento das requisições:

kubectl apply -f ingress.yaml

Verifique a criação do Ingress:

kubectl get ingress

Passo 8: Testar os Pods

Por fim, teste o acesso aos Pods em cada ambiente utilizando os seguintes links:


Este tutorial fornece uma visão geral clara e concisa de como configurar um ambiente Kubernetes local com diferentes ambientes usando o Kind. Certifique-se de ajustar os nomes dos arquivos <ambiente>/deployment.yaml e <ambiente>/service.yaml conforme necessário para cada ambiente específico.

Simulando o HPA no Kubernetes

Este tutorial irá guiá-lo através do processo de simulação do Horizontal Pod Autoscaler (HPA) em um cluster Kubernetes. Vamos aplicar o HPA, realizar um teste de carga para aumentar o consumo de CPU e verificar a criação de novas réplicas de pods.

Passo 1: Aplicando o HPA no Cluster

Primeiro, aplique o artefato HPA no seu cluster Kubernetes. Substitua <ambiente> pelo nome do seu ambiente.

kubectl apply -f <ambiente>/hpa.yaml

Passo 2: Verificando a Criação do HPA

Após aplicar o HPA, verifique se ele foi criado corretamente:

kubectl get hpa

Você deve ver uma saída que mostra o HPA configurado no seu cluster.

Passo 3: Realizando um Teste de Carga com Fortio

Para aumentar o consumo de CPU e "forçar" o HPA a adicionar mais réplicas de pods, utilizaremos o Fortio para realizar um teste de carga. Execute o seguinte comando:

kubectl run -it --rm --image=fortio/fortio fortio -- load -qps 800 -t 120s -c 10 "http://server-golang-<ambiente>/info"
  • -qps 800: Define a taxa de requisições por segundo.
  • -t 120s: Define a duração do teste para 120 segundos.
  • -c 10: Define o número de conexões simultâneas.

Passo 4: Verificando o Aumento de Réplicas

Após o teste de carga, aguarde alguns segundos e verifique se o HPA ajustou o número de réplicas conforme esperado.

Verificar o HPA

Para verificar o estado atual do HPA:

kubectl get hpa

Verificar os Pods Criados

Para ver quantos pods foram criados em resposta ao aumento de carga:

kubectl get pods

Conclusão

Se tudo estiver configurado corretamente, você verá que o número de réplicas foi aumentado automaticamente pelo HPA para lidar com o aumento de carga. Este é um exemplo prático de como o HPA pode ajudar a gerenciar a escalabilidade de aplicações no Kubernetes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.