Folha de dicas do Kubernetes: arquitetura, componentes, folha de comando

Publicados: 2020-12-15

O Kubernetes se tornou uma parte essencial das indústrias e está mudando o mundo da tecnologia. Janet Kuo, copresidente da KubeCon, abordou os recursos do Kubernetes e sua importância nos próximos tempos. Ela fala sobre as extensões e soluções do Kubernetes que vão mudar o mundo .

Esta folha de dicas fornecerá uma referência aos profissionais que trabalham na implementação do Kubernetes. Ele contém todos os detalhes necessários para ajudar os iniciantes que são novos no Kubernetes. A folha de dicas do Kubernetes é um meio rápido e prático para consultar todos os conceitos e comandos essenciais do Kubernetes.

Índice

Sobre o Kubernetes

Uma plataforma de código aberto para implantação automática e dimensionamento de contêineres nos clusters de hosts para fornecer infraestrutura centrada em contêineres é conhecida como Kubernetes (também conhecido como “Kube” ou k8s). Ele permite o gerenciamento fácil e eficiente de diferentes hosts executando contêineres Linux, agrupando-os.

O Kubernetes é uma plataforma projetada para gerenciar completamente o ciclo de vida de aplicativos e serviços em contêiner. Um usuário do Kubernetes pode definir as maneiras pelas quais um aplicativo deve ser executado e interagir com diferentes aplicativos.

Os usuários podem alternar o tráfego entre diferentes versões de aplicativos, realizar atualizações, aumentar e diminuir os serviços etc. com o Kubernetes. Ele oferece aos usuários um alto grau de flexibilidade, confiabilidade e poder no gerenciamento de aplicativos.

Alguns dos principais recursos do Kubernetes são:

  • Maximize os recursos fazendo melhor uso do hardware.
  • Um orquestrador de contêineres em vários hosts.
  • Automatize o processo de implantação e as atualizações.
  • Capaz de executar um contêiner Linux.
  • O escalonamento automático ajuda na inicialização de contêineres em nós de cluster.
  • Escalando para cima e para baixo conforme necessário.
  • Auto-recuperação substituindo, reprogramando e reiniciando os contêineres mortos.
  • Rollbacks e rollouts automatizados.
  • Balanceamento de carga e descoberta de serviços.
  • Reinício automático, posicionamento automático e replicação automática, etc.

Leia: Algoritmo de Aprendizado Profundo

Arquitetura do Kubernetes

A arquitetura do Kubernetes consiste em camadas: camadas superiores e inferiores. A complexidade de abstrair a camada superior pode ser encontrada nas camadas inferiores. As máquinas físicas ou virtuais individuais são reunidas em um cluster. Uma rede compartilhada é usada para comunicação entre cada servidor. Assim, assim como outras plataformas distribuídas, o Kubernetes tem um mestre (pelo menos) e vários nós de computação.

  • O mestre do Kubernetes agenda as implantações, expõe a API e gerencia o cluster geral do Kubernetes.
  • O nó executa um tempo de execução do contêiner, agente para comunicação com o mestre e outros componentes de monitoramento, log, etc.

Componentes da arquitetura do Kubernetes

Vamos dar uma olhada na finalidade e nos componentes do mestre e dos nós na arquitetura do Kubernetes.

Mestre

O mestre mantém o estado desejado do cluster. Como ele gerencia todo o cluster, ele é chamado de mestre. Contém:

  • Servidor de API: servidor de API do Kubernetes
  • Agendador: usado para agendamento de pod em nós do trabalhador
  • Controlador: gerencia a replicação do pod
  • Etcd: Um serviço de metadados

Nós

Ele contém os serviços necessários que são importantes para executar os pods. O mestre gerencia os nós. Também é chamado de Minion. Contém:

  • Pod: Grupo de contêineres
  • Docker: Tecnologia baseada em contêiner, espaço do usuário do SO.
  • Kubelet: Agentes de contêiner que são responsáveis ​​por manter o conjunto de pods.
  • Kube-proxy: roteia o tráfego que entra em um nó do serviço

Agora, vamos entender os comandos importantes do Kubernetes.

Comandos Kubectl

Kubectl é a ferramenta de linha de comando para Kubernetes. Os comandos básicos do Kubectl podem ser divididos em:

  • Introspecção de pods e contêineres
  • Introspecção de cluster
  • Depuração
  • Comandos rápidos
  • Objetos

Introspecção de pods e contêineres

Funcionalidade Comando
Para descrever nomes de pods Kubectl descreve o pod<name>
Para listar todos os pods atuais Kubectl obtém pods
Para listar todos os controladores de replicação Kubectl obter rc
Para mostrar o nome do controlador de replicação Kubectl descreve rc <name>
Para listar controladores de replicação em um namespace Kubectl get rc –namespace=”namespace”
Para mostrar um nome de serviço Kubectl descreve svc<nome>
Para serviços de listagem Kubectl obter cvc
Para assistir nós continuamente. Kubectl obtém nós -w
Para excluir um pod Kubectl excluir pod<nome>

Introspecção de cluster

Funcionalidade Comando
Para obter informações relacionadas à versão Versão do Kubectl
Para obter detalhes de configuração Visualização da configuração do Kubectl
Para obter informações relacionadas ao cluster Kubectl cluster-info
Para obter informações sobre um nó Kubectl descreve o nó<nó>

Comandos de depuração

Funcionalidade Comando
Para exibir métricas de um pod Pod superior Kubectl
Para exibir métricas de um nó Nó superior do Kubectl
Para assistir aos logs do Kubelet Assista -n 2 cat/var/log/kublet.log
Para obter logs do serviço para o contêiner Kubectl logs -f<name>>[-c< $container>]
Para a execução do comando em serviço selecionando um container Kubectl exec<service><commands>[-c< $container>]

Comandos rápidos

Os comandos rápidos abaixo são frequentemente usados ​​e, portanto, muito úteis.

Funcionalidade Comando
Para iniciar um pod com um nome e uma imagem. Kubectl run<nome> — imagem=<nome-imagem>
Para criar um serviço descrito em <manifest.yaml> Kubectl create -f <manifest.yaml>
Para dimensionar o contador de replicação para contar o número de instâncias. Kubectl scale –replicas=<count>rc<name>
Para mapear a porta externa para a porta de replicação interna. Expor rc<nome> –port=<externo>–target-port=<interno>
Para parar todos os pods em <n> Kubectl drena<n>– delete-local-data–force–ignore-daemonset
Para criar um namespace. Kubectl cria namespace <namespace>
Para permitir que o nó mestre execute pods. Kubectltaintnodes –all-node-role.kuernetes.io/master-

Objetos

Alguns dos objetos familiares usados ​​no Kubernetes são os seguintes:

Lista de objetos comuns
Todo Revisões do controlador
cm= conf gmaps Vinculações de papéis de cluster
Cronjobs cs=status dos componentes
Implantar=implantações limites = intervalos de limite
ev= eventos hpa= escalonamento automático de pod horizontal
empregos ds= conjuntos de daemons
Não = nós ns= namespaces
po= vagens Predefinição de pod
Psp= políticas de segurança do pod Pv= volumes persistentes
cota= cotas de recursos rs= conjuntos de réplicas
papéis rc= controladores de replicação
sc= classes de armazenamento pdb= orçamentos de distribuição de pods
papéis de cluster segredos
crd=definição de recurso personalizado Modelos de pod
csr= solicitações de assinatura de certificado sa= contas de serviço
Políticas de rede Netpol Vinculações de papéis
ing= entrada pvc= reivindicações de volume persistentes
ep=pontos finais sts = conjuntos com estado

Leia também: Regularização em Deep Learning

Folha de dicas de comando do Kubernetes

Todas as informações básicas sobre o Kubernetes, sua arquitetura e comandos são mostrados abaixo da folha de dicas do Kubernetes:

Se você estiver interessado em aprender mais sobre técnicas de aprendizado profundo, aprendizado de máquina, confira o Diploma PG do IIIT-B e do upGrad em aprendizado de máquina e IA, projetado para profissionais que trabalham e oferece mais de 450 horas de treinamento rigoroso, mais de 30 estudos de caso e atribuições, status de ex-alunos do IIIT-B, mais de 5 projetos práticos práticos e assistência de trabalho com as principais empresas.

O que é Kubernetes?

Kubernetes é uma plataforma de código aberto para automatizar a implantação, dimensionamento e gerenciamento de contêineres. Um contêiner é um pacote de software pronto para execução que contém tudo o que é necessário para executar o aplicativo: código, ambiente de tempo de execução, aplicativo e bibliotecas do sistema. Os contêineres são como unidades lógicas de aplicativo e, quando o Kubernetes os agrupa, fica fácil gerenciar e descobrir os contêineres. Esses contêineres são implantados e dimensionados em hosts para fornecer uma infraestrutura centrada em contêiner. Resumindo, é uma plataforma que gerencia todo o ciclo de vida dos aplicativos conteinerizados.

Quais são os principais componentes da arquitetura Kubernetes?

Existem dois componentes principais no nó mestre da arquitetura do Kubernetes e no nó do trabalhador. Um nó é a máquina de trabalho principal que é importante para executar um grupo de clusters chamados pods. Todo o cluster é gerenciado pelo nó mestre, enquanto o nó do trabalhador executa as tarefas atribuídas pelo nó mestre. Esses nós têm muitos componentes embutidos dentro deles. O nó mestre contém Kubernetes API Server, Kubernetes Scheduler, Kubernetes Controller e Etcd. O nó do trabalhador tem pod, docker, kubelet e kube-proxy.

O que o kubelet e o kube-proxy fazem?

O Kubelet, que está presente em todos os nós, garante que os contêineres funcionem bem em um pod. Ele faz isso pegando um conjunto de PodSpecs fornecido principalmente por meio do apiserver e verificando os contêineres presentes nesses PodSpecs. Um PodSpec é um objeto YAML ou JSON que descreve um pod. O Kubernetes Network Proxy, também conhecido como kube-proxy, mantém as regras de rede nos nós. A comunicação de sessões de rede dentro ou fora do cluster para os pods é possível por meio dessas regras de rede. O Kube-proxy encaminha o tráfego se a camada de filtragem de pacotes do SO não estiver disponível.