Kubernetes Tutorial – A Comprehensive Guide For Kubernetes



Este blog no Tutorial do Kubernetes irá guiá-lo por todos os conceitos do sistema de orquestração de contêineres com um hands-on.

Kubernetes é uma plataforma que elimina os processos manuais envolvidos na implantação de aplicativos em contêineres. Neste blog no Tutorial do Kubernetes, você examinará todos os conceitos relacionados a esta solução de gerenciamento de vários contêineres.

Os seguintes tópicos serão abordados neste tutorial:





sobrecarga de método e substituição de método em java

Agora, antes de prosseguir neste blog, deixe-me apenas informá-lo rapidamente sobre a conteinerização.

Portanto, antes de os contêineres existirem, os desenvolvedores e os testadores sempre tiveram uma divergência entre eles. Isso geralmente acontecia porque o que funcionava no lado do desenvolvedor não funcionava no lado dos testes. Ambos existiam em ambientes diferentes. Agora, para evitar tais cenários, os contêineres foram introduzidos para que os desenvolvedores e testadores estivessem na mesma página.



O manuseio de um grande número de contêineres juntos também era um problema. Às vezes, durante a execução de contêineres, no lado do produto, poucos problemas foram levantados, que não estavam presentes no estágio de desenvolvimento. Este tipo de cenário introduziu o Container Orchestration System.

Antes de mergulhar fundo no sistema de orquestração, deixe-me listar rapidamente os desafios enfrentados sem esse sistema.



Tutorial do Kubernetes: desafios sem a orquestração de contêineres

Desafios sem orquestração de contêiner - Tutorial do Kubernetes - Edureka

Como você pode ver no diagrama acima, quando vários serviços são executados dentro de contêineres, você pode querer escalar esses contêineres. Em indústrias de grande escala, isso é realmente difícil de fazer. Isso porque aumentaria o custo de manutenção dos serviços e a complexidade de executá-los lado a lado.

Agora, para evitar configurar serviços manualmente e superar os desafios, algo grande era necessário. É aqui que o Container Orchestration Engine entra em cena.

Este motor permite-nos organizar vários containers, de forma que todas as máquinas subjacentes sejam lançadas, os containers estejam íntegros e distribuídos em um ambiente clusterizado. No mundo de hoje, existem principalmente dois desses motores: Governadores E Docker Swarm .

Tutorial do Kubernetes: Kubernetes vs Docker Swarm

Governadores e Docker Swarm são ferramentas de orquestração de contêiner líderes no mercado atual. Portanto, antes de usá-los no produto, você deve saber exatamente o que são e como funcionam.

Além disso, no blog, vou me aprofundar no Kubernetes, mas para saber sobre o Docker, você pode clicar .

Como você pode se referir à imagem acima, o Kubernetes, quando comparado ao Docker Swarm, possui uma grande comunidade ativa e permite o escalonamento automático em muitas organizações. Da mesma forma, o Docker Swarm tem um cluster fácil de iniciar quando comparado ao Kubernetes, mas é limitado aos recursos da API Docker.

Bem, pessoal, essas não são as únicas diferenças entre essas ferramentas principais. Se desejar saber as diferenças detalhadas entre essas duas ferramentas de orquestração de contêiner, você pode clicar

Interessado em saber mais sobre o Kubernetes?

Se eu pudesse escolher entre os dois, teria que ser o Kubernetes, pois os contêineres precisam ser gerenciados e conectados ao mundo externo para tarefas como agendamento, balanceamento de carga e distribuição.

Mas, se você pensar logicamente, o Docker Swarm seria uma opção melhor, pois é executado em cima do Docker, certo? Se eu fosse você, definitivamente ficaria confuso sobre qual ferramenta usar. Mas hey, Kubernetes é um líder indiscutível no mercado e também executa em contêineres Docker com melhores funcionalidades.

Agora que você entendeu a necessidade do Kubernetes, é um bom momento, para que eu lhe diga O que é Kubernetes?

Tutorial do Kubernetes: O que é Kubernetes?

é um código aberto sistema que lida com o trabalho de agendamento de contêineres em um cluster de computação e gerencia as cargas de trabalho para garantir que sejam executados como o usuário deseja. Sendo criação do Google, ele oferece uma comunidade excelente e funciona de maneira brilhante com todos os provedores de nuvem para se tornar um solução de gerenciamento de vários contêineres.

Tutorial do Kubernetes: Recursos do Kubernetes

Os recursos do Kubernetes são os seguintes:

  • Agendamento automatizado: O Kubernetes oferece um agendador avançado para iniciar o contêiner nos nós do cluster com base nos requisitos de recursos e outras restrições, sem sacrificar a disponibilidade.
  • Capacidades de autocura: O Kubernetes permite substituir e reprogramar contêineres quando os nós morrem. Ele também elimina os contêineres que não respondem à verificação de integridade definida pelo usuário e não os anuncia aos clientes até que estejam prontos para servir.
  • Lançamentos e rollback automatizados: O Kubernetes implementa alterações no aplicativo ou na configuração enquanto monitora a integridade do aplicativo para garantir que ele não elimine todas as suas instâncias ao mesmo tempo. Se algo der errado, com o Kubernetes você pode reverter a mudança.
  • Dimensionamento horizontal e balanceamento de carga: O Kubernetes pode aumentar e diminuir o aplicativo de acordo com os requisitos com um comando simples, usando uma IU ou automaticamente com base no uso da CPU.

Tutorial do Kubernetes: Arquitetura Kubernetes

A arquitetura Kubernetes tem os seguintes componentes principais:

  • Nós mestres
  • Nós de trabalhador / escravo

Vou discutir cada um deles um por um. Então, inicialmente vamos começar entendendo o Nó Mestre .

Nó Mestre

O nó mestre é responsável pelo gerenciamento do cluster Kubernetes. É principalmente o ponto de entrada para todas as tarefas administrativas. Pode haver mais de um nó mestre no cluster para verificar a tolerância a falhas.

Como você pode ver no diagrama acima, o nó mestre tem vários componentes como API Server, Controller Manager, Scheduler e ETCD.

  • Servidor API: O servidor API é o ponto de entrada para todos os comandos REST usados ​​para controlar o cluster.
  • Gerente de controle: É um daemon que regula o cluster Kubernetes e gerencia diferentes loops de controle sem terminação.
  • Agendador: O planejador agenda as tarefas para nós escravos. Ele armazena as informações de uso de recursos para cada nó escravo.
  • ETCD: ETCD é um armazenamento de valor-chave simples, distribuído e consistente. É usado principalmente para configuração compartilhada e descoberta de serviço.

Nós de trabalhador / escravo

Os nós de trabalho contêm todos os serviços necessários para gerenciar a rede entre os contêineres, comunicar-se com o nó mestre e atribuir recursos aos contêineres programados.

Como você pode ver no diagrama acima, o nó de trabalho tem vários componentes como Docker Container, Kubelet, Kube-proxy e Pods.

  • Container Docker: O Docker é executado em cada um dos nós de trabalho e executa os pods configurados
  • Kubelet: Kubelet obtém a configuração de um pod do servidor de API e garante que os contêineres descritos estejam funcionando.
  • Procuração de Cuba: O Kube-proxy atua como um proxy de rede e um balanceador de carga para um serviço em um único nó de trabalho
  • Pods: Um pod é um ou mais contêineres que são executados logicamente juntos em nós.

Se você quiser uma explicação detalhada de todos os componentes da arquitetura Kubernetes, pode consultar nosso blog em

Quer obter a certificação em Kubernetes?

Tutorial do Kubernetes: Estudo de caso do Kubernetes

Y ahoo! JAPÃO é um provedor de serviços da Web com sede em Sunnyvale, Califórnia. Como a empresa pretendia virtualizar o hardware, a empresa começou a usar Pilha aberta em 2012. Seu ambiente interno mudou muito rapidamente. No entanto, devido ao progresso da tecnologia de nuvem e contêiner, a empresa queria o capacapacidade de lançar serviços em várias plataformas.

Problema: Como criar imagens para todas as plataformas necessárias a partir de um código de aplicativo e implantar essas imagens em cada plataforma?

Para seu melhor entendimento, consulte a imagem abaixo. Quando o código é alterado no registro de código, as imagens bare metal, contêineres Docker e imagens VM são criadas por ferramentas de integração contínua, enviadas para o registro de imagem e, em seguida, implantadas em cada plataforma de infraestrutura.


Agora, vamos nos concentrar no fluxo de trabalho do contêiner para entender como eles usaram o Kubernetes como plataforma de implantação. Consulte a imagem abaixo para dar uma olhada na arquitetura da plataforma.

como usar tostring em java

As instâncias do OpenStack são usadas, com Docker, Kubernetes, Calico, etcd sobre ele para executar várias operações como Container Networking, Container Registry e assim por diante.

Quando você tem vários clusters, fica difícil gerenciá-los, certo?

Portanto, eles queriam apenas criar um cluster simples de base do OpenStack para fornecer a funcionalidade básica necessária para o Kubernetes e tornar o ambiente OpenStack mais fácil de gerenciar.

Pela combinação do fluxo de trabalho de criação de imagens e Kubernetes, eles construíram o conjunto de ferramentas abaixo, o que facilita desde o envio do código até a implantação.


Este tipo de conjunto de ferramentas garantiu que todos os fatores para implantação de produção, como multilocação, autenticação, armazenamento, rede e descoberta de serviço, fossem considerados.

É assim que pessoal, Yahoo! JAPÃO construiu um conjunto de ferramentas de automação para implantação de código de 'um clique' no Kubernetes em execução no OpenStack, com a ajuda de Google e Solinea .

Tutorial de governadores: prático

Neste prático, mostrarei como criar uma implantação e um serviço. Estou usando uma instância do Amazon EC2, para usar o Kubernetes. Bem, a Amazon surgiu com Amazon Elastic Container Service para Governadores (Amazon EKS) , o que permite que eles criem clusters do Kubernetes na nuvem de maneira muito rápida e fácil. Se quiser saber mais sobre isso, consulte o blog

Passo 1: Primeiro crie uma pasta dentro do qual você criará sua implantação e serviço. Depois disso, use um editor e abrir um arquivo de implantação .

mkdir handsOn cd handsOn vi Deploy.yaml

Passo 2: Depois de abrir o arquivo de implantação, mencione todas as especificações do aplicativo que deseja implantar. Aqui estou tentando implantar um httpd inscrição.

apiVersion: apps / v1 #Define the API Version kind: Deployment #Kinds parameter define que tipo de arquivo é, aqui está Deployment metadata: name: dep1 #Stores o nome da especificação de implantação: # Em Especificações, você menciona todos as especificações para as réplicas de implantação: 3 # O número de réplicas seria 3 seletor: matchLabels: app: httpd # O nome do rótulo que seria pesquisado é o modelo httpd: metadados: labels: app: httpd # O nome do modelo seria httpd spec: # Under Especificações, você menciona todas as especificações para os contêineres: - nome: httpd #Nome dos contêineres seria httpd imagem: httpd: mais recente # A imagem que deve ser baixada é httpd: portas mais recentes: - containerPort: 80 #O aplicativo seria exposto na porta 80

Etapa 3: Depois de escrever seu arquivo de implantação, aplique a implantação usando o seguinte comando.

kubectl apply -f Deploy.yaml

Aqui -f é um nome de sinalizador usado paratele arquivonome.

Passo 4: Agora, depois que a implantação for aplicada, obtenha a lista de pods em execução.

kubectl get pods -o wide

Aqui, -o wide são usados ​​para saber em qual nó a implantação está sendo executada.

Etapa 5: Depois de criar uma implantação, agora você deve criar um serviço. Para isso, novamente use um editor e abra um espaço em branco serviço. arquivo yaml .

vi service.yaml

Etapa 6: Depois de abrir um arquivo de serviço, mencione todas as especificações do serviço.

apiVersion: v1 #Define a versão da API kind: Service #Kinds parâmetro define que tipo de arquivo é, aqui está Service metadata: name: netsvc #Stores o nome da especificação do serviço: # Em Especificações, você menciona todas as especificações para o tipo de serviço: NodePort selector: app: httpd ports: -protocol: TCP port: 80 targetPort: 8084 #Target Port number is 8084

Etapa 7: Depois de escrever seu arquivo de serviço, aplique o arquivo de serviço usando o seguinte comando.

kubectl apply -f service.yaml

Etapa 8: Agora, uma vez que seu serviço é aplicado para verificar se o serviço está em execução ou não, use o seguinte comando.

kubectl get svc

Etapa 9: Agora, para ver as especificações do serviço e verificar qual Endpoint éligado a, use o seguinte comando.

kubectl describe svc

Etapa 10: Agora, como estamos usando a instância amazon ec2, para buscar a página da web e verificar a saída, use o seguinte comando.

endereço IP curl

Se você achou este blog do tutorial do Kubernetes relevante, confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo.

Tem alguma questão para nós? Mencione isso na seção de comentários de ” Tutorial do Kubernetes ”E eu voltarei para você.