{"id":1631,"date":"2024-09-24T16:59:35","date_gmt":"2024-09-24T19:59:35","guid":{"rendered":"https:\/\/www.erudio.com.br\/blog\/?p=1631"},"modified":"2024-10-01T16:31:11","modified_gmt":"2024-10-01T19:31:11","slug":"lista-de-terminologias-do-kubernetes","status":"publish","type":"post","link":"https:\/\/www.erudio.com.br\/blog\/lista-de-terminologias-do-kubernetes\/","title":{"rendered":"Lista de Terminologias do Kubernetes"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"720\" height=\"256\" src=\"https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2024\/09\/1_SNouH-OBuGDGH5DZiyiumQ.webp\" alt=\"\" class=\"wp-image-1633\" srcset=\"https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2024\/09\/1_SNouH-OBuGDGH5DZiyiumQ.webp 720w, https:\/\/www.erudio.com.br\/blog\/wp-content\/uploads\/2024\/09\/1_SNouH-OBuGDGH5DZiyiumQ-300x107.webp 300w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3>Introdu\u00e7\u00e3o<\/h3>\n\n\n\n<p>Este gloss\u00e1rio re\u00fane uma vasta gama de termos essenciais do universo <strong>Kubernetes<\/strong>, uma plataforma de c\u00f3digo aberto amplamente adotada para a orquestra\u00e7\u00e3o de cont\u00eaineres. O <strong>Kubernetes<\/strong> facilita a automa\u00e7\u00e3o de diversos processos em ambientes distribu\u00eddos, oferecendo escalabilidade, flexibilidade e controle sobre aplica\u00e7\u00f5es conteinerizadas. Com a expans\u00e3o cont\u00ednua de seu uso, \u00e9 crucial entender a terminologia que sustenta essa tecnologia. Atrav\u00e9s de defini\u00e7\u00f5es concisas, este gloss\u00e1rio busca esclarecer conceitos centrais e fornecer uma refer\u00eancia \u00fatil para profissionais que atuam na administra\u00e7\u00e3o de clusters, automa\u00e7\u00e3o de processos e desenvolvimento de aplica\u00e7\u00f5es na nuvem.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3>Gloss\u00e1rio<\/h3>\n\n\n\n<p><strong>Annotations<\/strong> &#8211; S\u00e3o pares de chave-valor usados para anexar metadados n\u00e3o identific\u00e1veis a objetos do <em>Kubernetes<\/em>. Eles s\u00e3o comumente utilizados para armazenar informa\u00e7\u00f5es operacionais, como detalhes sobre a configura\u00e7\u00e3o de um servi\u00e7o que n\u00e3o influenciam diretamente na l\u00f3gica do <em>Kubernetes<\/em>.<\/p>\n\n\n\n<p><strong>Affinity<\/strong> &#8211; Permite que administradores definam regras de afinidade para <em>Pods<\/em>, de modo que eles sejam preferencialmente agendados em <em>Nodes<\/em> que possuam determinados <em>labels<\/em>. Isso ajuda a otimizar a coloca\u00e7\u00e3o de <em>Pods<\/em> de acordo com a localiza\u00e7\u00e3o de recursos espec\u00edficos ou pol\u00edticas de balanceamento de carga.<\/p>\n\n\n\n<p><strong>Anti Affinity<\/strong> &#8211; Funciona como o inverso do <em>Affinity<\/em>. Uma regra de <em>anti-affinity<\/em> informa ao <em>scheduler<\/em> que deve evitar colocar um novo <em>Pod<\/em> em um <em>Node<\/em> espec\u00edfico se o <em>label<\/em> do novo <em>Pod<\/em> corresponder ao <em>label<\/em> de outro <em>Pod<\/em> j\u00e1 existente nesse <em>Node<\/em>. Isso \u00e9 \u00fatil para garantir a alta disponibilidade, evitando que m\u00faltiplos <em>Pods<\/em> cr\u00edticos sejam alocados no mesmo <em>Node<\/em>.<\/p>\n\n\n\n<p><strong>Aggregation Layer<\/strong> &#8211; Uma camada de agrega\u00e7\u00e3o que permite estender o <em>Kubernetes<\/em> instalando APIs adicionais. Isso \u00e9 feito atrav\u00e9s da adi\u00e7\u00e3o de servidores de API que se integram com o <em>Kubernetes API Server<\/em>, permitindo a implementa\u00e7\u00e3o de novas funcionalidades ou a integra\u00e7\u00e3o com sistemas externos.<\/p>\n\n\n\n<p><strong>Controller<\/strong> &#8211; Um <em>Controller<\/em> \u00e9 respons\u00e1vel por garantir que o estado atual de uma aplica\u00e7\u00e3o corresponda ao estado desejado. Ele monitora continuamente os recursos do <em>Kubernetes<\/em> e faz as mudan\u00e7as necess\u00e1rias para manter o estado especificado pelo usu\u00e1rio, como a quantidade de r\u00e9plicas de um <em>Pod<\/em>.<\/p>\n\n\n\n<p><strong>Cloud Controller Manager<\/strong> &#8211; Um componente que conecta o <em>cluster Kubernetes<\/em> \u00e0 API do provedor de nuvem. Ele \u00e9 respons\u00e1vel por gerenciar componentes que dependem da infraestrutura de nuvem, como <em>load balancers<\/em>, volumes de armazenamento e endere\u00e7os IP.<\/p>\n\n\n\n<p><strong>Cluster<\/strong> &#8211; \u00c9 a base do <em>Kubernetes<\/em>, onde todas as aplica\u00e7\u00f5es conteinerizadas s\u00e3o executadas. Um <em>cluster<\/em> \u00e9 composto por um <em>control plane<\/em> (que gerencia o estado do <em>cluster<\/em>) e os <em>worker nodes<\/em> (onde as aplica\u00e7\u00f5es realmente rodam).<\/p>\n\n\n\n<p><strong>CronJob<\/strong> &#8211; Um <em>CronJob<\/em> cria <em>Jobs<\/em> em uma agenda especificada, permitindo a execu\u00e7\u00e3o de tarefas automatizadas em hor\u00e1rios predefinidos. Eles s\u00e3o \u00fateis para tarefas de manuten\u00e7\u00e3o, backup, ou qualquer tarefa repetitiva que precise ser executada em intervalos regulares.<\/p>\n\n\n\n<p><strong>ConfigMap<\/strong> &#8211; Um <em>ConfigMap<\/em> armazena dados de configura\u00e7\u00e3o para objetos usarem. Ele permite armazenar dados n\u00e3o confidenciais em pares de chave-valor, tornando f\u00e1cil a separa\u00e7\u00e3o da configura\u00e7\u00e3o da imagem cont\u00eainer.<\/p>\n\n\n\n<p><strong>ClusterIP<\/strong> &#8211; Um <em>ClusterIP<\/em> exp\u00f5e o servi\u00e7o apenas em um IP interno, tornando o servi\u00e7o acess\u00edvel apenas de dentro do <em>cluster<\/em>. \u00c9 o tipo de servi\u00e7o padr\u00e3o no <em>Kubernetes<\/em>.<\/p>\n\n\n\n<p><strong>ClusterRole<\/strong> &#8211; Um <em>ClusterRole<\/em> cont\u00e9m regras que representam um conjunto de permiss\u00f5es. Ele \u00e9 semelhante a um <em>Role<\/em>, mas enquanto um <em>Role<\/em> opera dentro de um namespace espec\u00edfico, um <em>ClusterRole<\/em> pode ser aplicado em todo o <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>ClusterRoleBinding<\/strong> &#8211; Um <em>RoleBinding<\/em> concede permiss\u00f5es dentro de um <em>namespace<\/em> espec\u00edfico, enquanto um <em>ClusterRoleBinding<\/em> concede esse acesso em todo o <em>cluster<\/em>. Ele conecta um <em>ClusterRole<\/em> a usu\u00e1rios, grupos ou <em>ServiceAccounts<\/em>, efetivamente dando a eles as permiss\u00f5es definidas no <em>ClusterRole<\/em>.<\/p>\n\n\n\n<p><strong>cAdvisor<\/strong> &#8211; O <em>cAdvisor<\/em> \u00e9 um agente de c\u00f3digo aberto integrado ao bin\u00e1rio <em>kubelet<\/em> que monitora o uso de recursos e analisa o desempenho dos cont\u00eaineres. Ele coleta estat\u00edsticas sobre o uso de CPU, mem\u00f3ria, arquivos e rede para todos os cont\u00eaineres em execu\u00e7\u00e3o em um determinado <em>node<\/em>.<\/p>\n\n\n\n<p><strong>Cluster-admin<\/strong> &#8211; Este &#8220;superusu\u00e1rio&#8221; do <em>Kubernetes<\/em> pode executar qualquer a\u00e7\u00e3o em qualquer recurso em um <em>cluster<\/em>. O <em>cluster-admin<\/em> tem permiss\u00f5es amplas e deve ser utilizado com cuidado, preferencialmente em opera\u00e7\u00f5es administrativas essenciais.<\/p>\n\n\n\n<p><strong>Container Network Interface (CNI)<\/strong> &#8211; A <em>CNI<\/em> fornece uma interface padr\u00e3o entre provedores de rede e a rede do <em>Kubernetes<\/em>. Ela permite que diferentes plugins de rede integrem-se de forma consistente com o <em>Kubernetes<\/em>, garantindo conectividade para os <em>Pods<\/em> dentro do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Containers<\/strong> &#8211; Um <em>container<\/em> \u00e9 uma estrutura padronizada que pode armazenar e executar qualquer aplica\u00e7\u00e3o. No <em>Kubernetes<\/em>, <em>containers<\/em> s\u00e3o a unidade fundamental de computa\u00e7\u00e3o, agrupados em <em>Pods<\/em>.<\/p>\n\n\n\n<p><strong>Control Plane<\/strong> &#8211; O <em>control plane<\/em> hospeda os componentes usados para gerenciar o <em>cluster Kubernetes<\/em>, incluindo o <em>API server<\/em>, <em>controller manager<\/em>, <em>scheduler<\/em> e o banco de dados <em>etcd<\/em>. Ele \u00e9 respons\u00e1vel por tomar decis\u00f5es sobre o estado do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Deployment<\/strong> &#8211; Um <em>Deployment<\/em> \u00e9 respons\u00e1vel por criar e atualizar inst\u00e2ncias de aplica\u00e7\u00e3o, fornecendo atualiza\u00e7\u00f5es declarativas para aplica\u00e7\u00f5es usando arquivos <em>yaml<\/em>. Ele gerencia a replica\u00e7\u00e3o e a escalabilidade de <em>Pods<\/em>, al\u00e9m de permitir <em>rollbacks<\/em> para vers\u00f5es anteriores.<\/p>\n\n\n\n<p><strong>Desired State<\/strong> &#8211; O <em>desired state<\/em> \u00e9 o estado declarado que voc\u00ea deseja para seu sistema no <em>Kubernetes<\/em>. Ele indica quantas r\u00e9plicas s\u00e3o necess\u00e1rias para executar um sistema saud\u00e1vel, e o <em>controller<\/em> trabalha continuamente para ajustar o estado atual para corresponder ao estado desejado.<\/p>\n\n\n\n<p><strong>Daemon Set<\/strong> &#8211; Um <em>DaemonSet<\/em> gerencia grupos de <em>Pods<\/em> replicados. Todos os <em>nodes<\/em> do <em>Kubernetes<\/em> executam uma c\u00f3pia de um <em>Pod<\/em>, o que permite que um daemon espec\u00edfico seja executado em cada <em>node<\/em> do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Data Plane<\/strong> &#8211; O <em>data plane<\/em> \u00e9 a camada de dados do <em>cluster Kubernetes<\/em>, onde os dados s\u00e3o armazenados e gerenciados. Isso inclui os dados de estado dos <em>Pods<\/em> e outros objetos do <em>Kubernetes<\/em>.<\/p>\n\n\n\n<p><strong>etcd Cluster<\/strong> &#8211; O <em>etcd<\/em> \u00e9 o banco de dados chave\/valor que armazena o estado do <em>cluster Kubernetes<\/em>. Ele \u00e9 cr\u00edtico para a opera\u00e7\u00e3o do <em>cluster<\/em>, armazenando informa\u00e7\u00f5es sobre <em>nodes<\/em>, <em>Pods<\/em>, <em>ConfigMaps<\/em>, <em>secrets<\/em> e outros objetos do <em>Kubernetes<\/em>.<\/p>\n\n\n\n<p><strong>ExternalName<\/strong> &#8211; O <em>ExternalName<\/em> atua como um proxy, permitindo redirecionar solicita\u00e7\u00f5es para um servi\u00e7o fora (ou dentro) do <em>cluster<\/em>. Ele usa um nome DNS como destino, em vez de expor um IP diretamente.<\/p>\n\n\n\n<p><strong>Helm<\/strong> &#8211; <em>Helm<\/em> \u00e9 um gerenciador de pacotes de aplica\u00e7\u00f5es que roda em cima do <em>Kubernetes<\/em>. Ele permite que voc\u00ea defina, instale e atualize aplica\u00e7\u00f5es <em>Kubernetes<\/em> usando <em>charts<\/em>, que s\u00e3o pacotes de pr\u00e9-configura\u00e7\u00f5es do <em>Helm<\/em>.<\/p>\n\n\n\n<p><strong>Heapster<\/strong> &#8211; O <em>Heapster<\/em> \u00e9 um projeto do <em>Kubernetes<\/em> que fornece uma solu\u00e7\u00e3o robusta de monitoramento para <em>clusters Kubernetes<\/em>. Ele coleta m\u00e9tricas de performance e eventos dos <em>Pods<\/em> e <em>nodes<\/em> em tempo real, permitindo que administradores monitorem a sa\u00fade do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>HorizontalPodAutoscaler<\/strong> &#8211; O <em>HorizontalPodAutoscaler<\/em> altera a forma da carga de trabalho do <em>Kubernetes<\/em> aumentando ou diminuindo automaticamente o n\u00famero de <em>Pods<\/em> em resposta \u00e0 carga de trabalho. Ele monitora as m\u00e9tricas, como uso de CPU, para determinar quando escalar ou desescalar <em>Pods<\/em>.<\/p>\n\n\n\n<p><strong>Ingress<\/strong> &#8211; Um <em>Ingress<\/em> \u00e9 um objeto API que gerencia o acesso externo aos servi\u00e7os em um <em>cluster<\/em>, tipicamente usando <em>HTTP\/HTTPS<\/em>. Ele pode fornecer balanceamento de carga, termina\u00e7\u00e3o <em>SSL<\/em> e hospedagem virtual baseada em nome, facilitando o gerenciamento do tr\u00e1fego externo.<\/p>\n\n\n\n<p><strong>Job<\/strong> &#8211; Um <em>Job<\/em> cria um ou mais <em>Pods<\/em> e espera que eles terminem com sucesso. Ele \u00e9 usado para tarefas que precisam ser executadas at\u00e9 a conclus\u00e3o, como processamento de dados ou tarefas de manuten\u00e7\u00e3o.<\/p>\n\n\n\n<p><strong>Kube API Server<\/strong> &#8211; O <em>Kube API server<\/em> \u00e9 respons\u00e1vel por orquestrar todas as opera\u00e7\u00f5es no <em>cluster<\/em>. Ele atua como o gateway para o <em>cluster<\/em>, e \u00e9 acess\u00edvel por clientes de fora do <em>cluster<\/em>, integrando com a <em>CLI<\/em> e <em>GUI<\/em> do <em>Kubernetes<\/em>.<\/p>\n\n\n\n<p><strong>Kube Controller Manager<\/strong> &#8211; O <em>Kube Controller Manager<\/em> \u00e9 o motor que executa os loops de controle principais, criando <em>Pods<\/em> e monitorando o estado do <em>cluster<\/em>. Ele gerencia os <em>controllers<\/em> do <em>Kubernetes<\/em>, como o <em>ReplicationController<\/em> e o <em>Job Controller<\/em>.<\/p>\n\n\n\n<p><strong>Kubelet<\/strong> &#8211; O <em>Kubelet<\/em> conecta o <em>Master Node<\/em> ao <em>Worker Node<\/em> e garante que <em>Pods<\/em> e seus <em>containers<\/em> estejam saud\u00e1veis e em execu\u00e7\u00e3o no estado desejado. Ele \u00e9 respons\u00e1vel por aplicar as instru\u00e7\u00f5es do <em>control plane<\/em> no <em>node<\/em>.<\/p>\n\n\n\n<p><strong>Kube Proxy<\/strong> &#8211; O <em>Kube Proxy<\/em> \u00e9 usado para subnetting e expor servi\u00e7os para o mundo externo. Ele garante que o tr\u00e1fego de rede seja roteado corretamente para os <em>Pods<\/em> dentro do <em>cluster<\/em> e entre os <em>nodes<\/em>.<\/p>\n\n\n\n<p><strong>Kubectl<\/strong> &#8211; O <em>kubectl<\/em> \u00e9 uma ferramenta de linha de comando que interage com o <em>kube-apiserver<\/em> e envia comandos para o <em>master node<\/em>. Cada comando \u00e9 convertido em uma chamada API, permitindo o gerenciamento de recursos <em>Kubernetes<\/em> atrav\u00e9s da <em>CLI<\/em>.<\/p>\n\n\n\n<p><strong>Kubernetes API<\/strong> &#8211; A <em>Kubernetes API<\/em> \u00e9 o n\u00facleo de funcionamento do <em>Kubernetes<\/em>. Ela permite que todos os componentes do <em>Kubernetes<\/em> e aplica\u00e7\u00f5es externas interajam com o <em>cluster<\/em>, armazenando informa\u00e7\u00f5es sobre o estado do <em>cluster<\/em> e permitindo a cria\u00e7\u00e3o, atualiza\u00e7\u00e3o e dele\u00e7\u00e3o de objetos.<\/p>\n\n\n\n<p><strong>Kubeadm<\/strong> &#8211; O <em>Kubeadm<\/em> inicializa um <em>cluster Kubernetes<\/em>. Ele foi projetado para ser uma maneira simples para novos usu\u00e1rios criarem <em>clusters<\/em>, automatizando grande parte do processo de configura\u00e7\u00e3o inicial.<\/p>\n\n\n\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker\" target=\"_blank\" rel=\"noopener\"><br>\n\t<img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker do 0 \u00e0 Maestria: Cont\u00eaineres Desmistificados mais 3 B\u00d4NUS\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/09-docker.png\"><br>\n<\/a>\n\n\n\n<p><strong>Label<\/strong> &#8211; <em>Labels<\/em> s\u00e3o pares de chave\/valor que s\u00e3o anexados a objetos do <em>Kubernetes<\/em>. Eles s\u00e3o usados para organizar e selecionar subconjuntos de objetos, como <em>Pods<\/em> ou <em>Nodes<\/em>, permitindo opera\u00e7\u00f5es baseadas em grupos de recursos.<\/p>\n\n\n\n<p><strong>Liveness Probe<\/strong> &#8211; A <em>liveness probe<\/em> determina se as aplica\u00e7\u00f5es em execu\u00e7\u00e3o dentro dos <em>containers<\/em> est\u00e3o operacionais. Se a <em>liveness probe<\/em> falhar, o <em>Kubelet<\/em> reiniciar\u00e1 o <em>container<\/em> para restaurar sua funcionalidade.<\/p>\n\n\n\n<p><strong>LoadBalancer<\/strong> &#8211; Um <em>LoadBalancer<\/em> exp\u00f5e o servi\u00e7o com um balanceador de carga do provedor de nuvem, distribuindo o tr\u00e1fego de entrada entre os <em>Pods<\/em> associados ao servi\u00e7o.<\/p>\n\n\n\n<p><strong>Minikube<\/strong> &#8211; O <em>Minikube<\/em> \u00e9 uma vers\u00e3o leve do <em>Kubernetes<\/em>, muito mais f\u00e1cil de usar localmente. Ele permite que desenvolvedores experimentem e desenvolvam em um ambiente <em>Kubernetes<\/em> em uma m\u00e1quina local.<\/p>\n\n\n\n<p><strong>Manifest<\/strong> &#8211; Um <em>manifest<\/em> \u00e9 um arquivo de configura\u00e7\u00e3o <em>JSON<\/em> ou <em>YAML<\/em> que descreve os objetos do <em>Kubernetes<\/em> e suas vers\u00f5es. Ele \u00e9 usado para definir e configurar os recursos que ser\u00e3o criados no <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Master Node\/control plane<\/strong> &#8211; O <em>master node<\/em> ou <em>control plane<\/em> coordena o <em>cluster<\/em>. Ele cria o <em>cluster<\/em> e hospeda todos os componentes e servi\u00e7os que gerenciam, planejam, agendam e monitoram todos os <em>worker nodes<\/em>.<\/p>\n\n\n\n<p><strong>Node Controller<\/strong> &#8211; O <em>Node Controller<\/em> gerencia v\u00e1rios aspectos dos <em>nodes<\/em> em um <em>cluster Kubernetes<\/em>. Ele \u00e9 respons\u00e1vel por detectar a sa\u00fade dos <em>nodes<\/em>, garantindo que estejam funcionando corretamente, e por tomar a\u00e7\u00f5es corretivas se um <em>node<\/em> ficar indispon\u00edvel.<\/p>\n\n\n\n<p><strong>Node<\/strong> &#8211; Um <em>node<\/em> pode ser uma m\u00e1quina virtual ou f\u00edsica que faz parte de um <em>cluster Kubernetes<\/em>. Ele hospeda <em>Pods<\/em> e executa as aplica\u00e7\u00f5es, conectando-se ao <em>control plane<\/em> para receber instru\u00e7\u00f5es.<\/p>\n\n\n\n<p><strong>Node-Proxy<\/strong> &#8211; O <em>Node-Proxy<\/em> \u00e9 um servi\u00e7o de proxy que \u00e9 executado em cada <em>worker node<\/em>. Ele lida com o subnetting individual do host e exp\u00f5e servi\u00e7os para o mundo externo, facilitando a comunica\u00e7\u00e3o de rede dentro e fora do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Namespace<\/strong> &#8211; Um <em>namespace<\/em> \u00e9 uma forma de organizar <em>clusters<\/em> em sub-<em>clusters<\/em> virtuais, logicamente separados uns dos outros. <em>Namespaces<\/em> permitem que recursos sejam isolados entre equipes ou projetos, enquanto ainda permitem a comunica\u00e7\u00e3o controlada entre eles.<\/p>\n\n\n\n<p><strong>Network Policy<\/strong> &#8211; Uma <em>network policy<\/em> \u00e9 uma especifica\u00e7\u00e3o de como grupos de <em>Pods<\/em> podem se comunicar entre si e com outros pontos finais da rede. Ela define regras de entrada e sa\u00edda para <em>Pods<\/em>, ajudando a controlar o tr\u00e1fego dentro de um <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>NodePort<\/strong> &#8211; Um <em>NodePort<\/em> exp\u00f5e o servi\u00e7o no IP de cada <em>node<\/em> em uma porta espec\u00edfica. Ele permite o acesso ao servi\u00e7o a partir de fora do <em>cluster<\/em>, direcionando o tr\u00e1fego para os <em>Pods<\/em> associados ao servi\u00e7o.<\/p>\n\n\n\n<p><strong>Operators<\/strong> &#8211; <em>Operators<\/em> s\u00e3o implantados em um <em>cluster Kubernetes<\/em> e permitem escrever uma aplica\u00e7\u00e3o para gerenciar completamente outra. Eles automatizam a opera\u00e7\u00e3o de aplica\u00e7\u00f5es complexas, capturando o conhecimento de como instal\u00e1-las, configur\u00e1-las, atualiz\u00e1-las e repar\u00e1-las.<\/p>\n\n\n\n<p><strong>Pod<\/strong> &#8211; O <em>Pod<\/em> \u00e9 o menor e mais b\u00e1sico objeto execut\u00e1vel no <em>Kubernetes<\/em>. Um <em>Pod<\/em> \u00e9 um grupo de um ou mais <em>containers<\/em> de aplica\u00e7\u00e3o, que compartilham recursos como volumes, endere\u00e7o IP, <em>containers init<\/em> e <em>sidecars<\/em>.<\/p>\n\n\n\n<p><strong>Persistent Volume<\/strong> &#8211; Um <em>Persistent Volume<\/em> \u00e9 o volume &#8220;f\u00edsico&#8221; na m\u00e1quina host que armazena dados persistentes. Ele existe independentemente dos <em>Pods<\/em> que o utilizam, e pode ser montado em diferentes <em>Pods<\/em> ao longo do tempo.<\/p>\n\n\n\n<p><strong>Persistent Volume Claim<\/strong> &#8211; Um <em>Persistent Volume Claim (PVC)<\/em> \u00e9 uma solicita\u00e7\u00e3o de armazenamento feita por um usu\u00e1rio. Ele \u00e9 semelhante a um <em>Pod<\/em>, mas em vez de definir um cont\u00eainer, ele define o armazenamento que precisa ser alocado a um <em>Pod<\/em>.<\/p>\n\n\n\n<p><strong>PodDisruptionBudget<\/strong> &#8211; O <em>PodDisruptionBudget<\/em> permite limitar o n\u00famero de <em>Pods<\/em> que s\u00e3o interrompidos durante atualiza\u00e7\u00f5es ou outros eventos planejados. Isso garante maior disponibilidade, ao mesmo tempo em que permite que o administrador do <em>cluster<\/em> gerencie os <em>nodes<\/em> do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Pod Preset<\/strong> &#8211; Um <em>PodPreset<\/em> \u00e9 um objeto API que automatiza a adi\u00e7\u00e3o de informa\u00e7\u00f5es aos <em>Pods<\/em> \u00e0 medida que s\u00e3o criados. Ele pode ser usado para injetar configura\u00e7\u00f5es, segredos ou volumes em <em>Pods<\/em>, sem precisar alterar os manifests originais.<\/p>\n\n\n\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_java\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0  AWS com Spring Boot 3, Java e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/07-rest-spring-java.png\">\n<\/a>\n\n\n\n<p><strong>Role<\/strong> &#8211; Um <em>Role<\/em> \u00e9 um conjunto de permiss\u00f5es dentro de um <em>namespace<\/em> espec\u00edfico. Quando voc\u00ea cria um <em>Role<\/em>, voc\u00ea deve especificar o <em>namespace<\/em> ao qual ele pertence, limitando suas permiss\u00f5es a esse escopo.<\/p>\n\n\n\n<p><strong>Replica Set<\/strong> &#8211; O <em>Replica Set<\/em> \u00e9 usado para manter um conjunto est\u00e1vel de <em>Pods<\/em> replicados em execu\u00e7\u00e3o dentro de um <em>cluster<\/em> a qualquer momento. Ele garante que um n\u00famero especificado de <em>Pods<\/em> esteja sempre em execu\u00e7\u00e3o, com base no modelo fornecido.<\/p>\n\n\n\n<p><strong>RoleBinding<\/strong> &#8211; O <em>RoleBinding<\/em> concede as permiss\u00f5es definidas em um <em>Role<\/em> a algum grupo de <em>Users<\/em> ou <em>ServiceAccounts<\/em>. Ele cont\u00e9m uma lista de sujeitos (<em>Users<\/em>, <em>Groups<\/em> ou <em>ServiceAccounts<\/em>), e uma refer\u00eancia ao <em>Role<\/em> sendo concedido.<\/p>\n\n\n\n<p><strong>Replication Controller<\/strong> &#8211; O <em>Replication Controller<\/em> garante que o n\u00famero especificado de r\u00e9plicas de <em>Pod<\/em> esteja em execu\u00e7\u00e3o a qualquer momento. Ele monitora os <em>Pods<\/em> existentes e cria novos se necess\u00e1rio para manter o n\u00famero desejado de r\u00e9plicas.<\/p>\n\n\n\n<p><strong>RBAC<\/strong> &#8211; O <em>RBAC (Role-Based Access Control)<\/em> permite que os administradores do <em>Kubernetes<\/em> configurem pol\u00edticas de acesso atrav\u00e9s da API. Ele permite atribuir diferentes fun\u00e7\u00f5es aos usu\u00e1rios, o que lhes d\u00e1 permiss\u00f5es variadas dentro do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Readiness Probe<\/strong> &#8211; O <em>Kubelet<\/em> usa <em>readiness probes<\/em> para saber quando um <em>container<\/em> est\u00e1 pronto para come\u00e7ar a aceitar tr\u00e1fego. Ele ajuda a evitar que o tr\u00e1fego seja direcionado a <em>containers<\/em> que ainda est\u00e3o iniciando ou que n\u00e3o est\u00e3o prontos para lidar com solicita\u00e7\u00f5es.<\/p>\n\n\n\n<p><strong>Service<\/strong> &#8211; Um <em>Service<\/em> permite acessar dinamicamente um grupo de <em>Pods<\/em> r\u00e9plicas via IP e Porta da nossa rede, e definir um nome para o servi\u00e7o. Ele abstrai o acesso aos <em>Pods<\/em>, oferecendo um \u00fanico ponto de entrada, independentemente de quantos <em>Pods<\/em> existam.<\/p>\n\n\n\n<p><strong>StatefulSet<\/strong> &#8211; Um <em>StatefulSet<\/em> \u00e9 adaptado para gerenciar <em>Pods<\/em> que devem persistir ou manter estado. Diferentemente de um <em>ReplicaSet<\/em>, ele garante que os <em>Pods<\/em> sejam criados e exclu\u00eddos em ordem espec\u00edfica, mantendo uma identidade est\u00e1vel.<\/p>\n\n\n\n<p><strong>Secret<\/strong> &#8211; <em>Kubernetes Secrets<\/em> podem armazenar informa\u00e7\u00f5es sens\u00edveis, como senhas, chaves <em>SSH<\/em>, e chaves API. Esses segredos s\u00e3o acess\u00edveis a partir de qualquer <em>Pod<\/em> no mesmo <em>cluster<\/em>, mas de forma segura e controlada.<\/p>\n\n\n\n<p><strong>Selector<\/strong> &#8211; O <em>selector<\/em> permite selecionar recursos do <em>Kubernetes<\/em> com base no valor dos <em>labels<\/em>. Ele \u00e9 usado em objetos como <em>ReplicaSets<\/em> e <em>Services<\/em> para definir quais <em>Pods<\/em> devem ser gerenciados ou acessados.<\/p>\n\n\n\n<p><strong>Storage Class<\/strong> &#8211; As <em>storage classes<\/em> s\u00e3o usadas para definir os diferentes tipos de armazenamento dispon\u00edveis no <em>cluster<\/em>. Elas permitem a cria\u00e7\u00e3o din\u00e2mica de volumes com diferentes caracter\u00edsticas de desempenho e durabilidade.<\/p>\n\n\n\n<p><strong>Startup Probe<\/strong> &#8211; A <em>startup probe<\/em> verifica se a aplica\u00e7\u00e3o dentro de um <em>container<\/em> foi iniciada corretamente. Se um <em>container<\/em> falhar na <em>startup probe<\/em>, ele \u00e9 encerrado e segue a <em>restartPolicy<\/em> do <em>Pod<\/em>.<\/p>\n\n\n\n<p><strong>ServiceAccount<\/strong> &#8211; Uma <em>ServiceAccount<\/em> fornece uma identidade para processos que s\u00e3o executados em um <em>Pod<\/em>. Isso permite que esses processos acessem a API do <em>Kubernetes<\/em> e outros servi\u00e7os com um conjunto espec\u00edfico de permiss\u00f5es.<\/p>\n\n\n\n<p><strong>Scheduler (kube-scheduler)<\/strong> &#8211; O <em>kube-scheduler<\/em> identifica o <em>node<\/em> certo para colocar um <em>container<\/em> com base em limita\u00e7\u00f5es de recursos. Ele \u00e9 respons\u00e1vel por alocar os <em>Pods<\/em> aos <em>nodes<\/em> do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>Taints<\/strong> &#8211; <em>Taints<\/em> s\u00e3o usados para garantir que os <em>Pods<\/em> n\u00e3o sejam agendados em determinados <em>nodes<\/em> a menos que tenham uma toler\u00e2ncia espec\u00edfica. Eles ajudam a isolar <em>nodes<\/em> que n\u00e3o devem ser utilizados para workloads comuns.<\/p>\n\n\n\n<p><strong>Tolerations<\/strong> &#8211; <em>Tolerations<\/em> permitem que os <em>Pods<\/em> sejam agendados em <em>nodes<\/em> que t\u00eam <em>taints<\/em>. Eles neutralizam os <em>taints<\/em> em um <em>node<\/em>, permitindo que um <em>Pod<\/em> espec\u00edfico seja alocado ali, mesmo que o <em>node<\/em> seja marcado como indispon\u00edvel para outros <em>Pods<\/em>.<\/p>\n\n\n\n<p><strong>Volume<\/strong> &#8211; Um <em>Volume<\/em> \u00e9 um diret\u00f3rio acess\u00edvel pelos <em>containers<\/em> em um <em>Pod<\/em>. Ele pode persistir dados que sobrevivem ao ciclo de vida de um <em>container<\/em> e pode ser montado em v\u00e1rios <em>containers<\/em> simultaneamente.<\/p>\n\n\n\n<p><strong>VerticalPodAutoscaler<\/strong> &#8211; O <em>VerticalPodAutoscaler<\/em> ajusta automaticamente os recursos solicitados (<em>CPU<\/em> e mem\u00f3ria) de um <em>Pod<\/em> com base no uso observado, sem a necessidade de reiniciar o <em>Pod<\/em>.<\/p>\n\n\n\n<p><strong>Workloads<\/strong> &#8211; <em>Workloads<\/em> referem-se \u00e0s aplica\u00e7\u00f5es que est\u00e3o sendo executadas em <em>Pods<\/em>. No <em>Kubernetes<\/em>, os objetos de <em>workload<\/em> incluem <em>Deployments<\/em>, <em>ReplicaSets<\/em>, <em>StatefulSets<\/em>, <em>DaemonSets<\/em>, e <em>Jobs<\/em>, cada um com seu pr\u00f3prio comportamento de gerenciamento e replica\u00e7\u00e3o.<\/p>\n\n\n\n<p><strong>Workloads Controller<\/strong> &#8211; O <em>Workloads Controller<\/em> gerencia a implanta\u00e7\u00e3o de <em>Pods<\/em> dentro do <em>Kubernetes<\/em>. Ele garante que o n\u00famero correto de <em>Pods<\/em> esteja sempre em execu\u00e7\u00e3o e que eles estejam corretamente distribu\u00eddos entre os <em>nodes<\/em> do <em>cluster<\/em>.<\/p>\n\n\n\n<p><strong>YAML<\/strong> &#8211; <em>YAML<\/em> \u00e9 uma linguagem de serializa\u00e7\u00e3o de dados frequentemente usada para definir configura\u00e7\u00f5es no <em>Kubernetes<\/em>. Arquivos <em>YAML<\/em> s\u00e3o leg\u00edveis por humanos e podem ser usados para descrever objetos como <em>Pods<\/em>, <em>Services<\/em>, e <em>Deployments<\/em> no <em>Kubernetes<\/em>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3>Conclus\u00e3o<\/h3>\n\n\n\n<p>O <strong>Kubernetes<\/strong> se destaca como uma ferramenta poderosa para a automa\u00e7\u00e3o de aplica\u00e7\u00f5es conteinerizadas, e a compreens\u00e3o de sua terminologia \u00e9 essencial para o uso eficaz da plataforma. Este gloss\u00e1rio proporciona uma vis\u00e3o abrangente dos principais conceitos e funcionalidades que permitem a flexibilidade, o controle e a escalabilidade dos ambientes <strong>Kubernetes<\/strong>. Dominar esses termos facilita o desenvolvimento e a opera\u00e7\u00e3o de solu\u00e7\u00f5es baseadas em cont\u00eaineres, promovendo a integra\u00e7\u00e3o cont\u00ednua e a entrega \u00e1gil de software. Com este conhecimento, os profissionais podem navegar com mais confian\u00e7a e efic\u00e1cia no ecossistema <strong>Kubernetes<\/strong>, aproveitando ao m\u00e1ximo suas funcionalidades.<\/p>\n\n\n\n<h2>Treinamentos relacionados com essa postagem<\/h2>\n\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_java\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0  AWS com Spring Boot 3, Java e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/07-rest-spring-java.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker\" target=\"_blank\" rel=\"noopener\"><br>\n\t<img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker do 0 \u00e0 Maestria: Cont\u00eaineres Desmistificados mais 3 B\u00d4NUS\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/09-docker.png\"><br>\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices_java\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microservices do 0 com Spring Cloud, Spring Boot e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/14-microservices-java.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_ms_kotlin\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microsservi\u00e7os do 0 com Spring Cloud, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/22-ms-kotlin.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices-dotnet\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Arquitetura de Microsservi\u00e7os do 0 com ASP.NET, .NET 6 e C#\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/15-microservices-dotnet.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_tests_java\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Java Unit Testing com Spring Boot 3, TDD, Junit 5 e Mockito\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/24-tests_java.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_ci_cd_java_aws\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Java Continuous Integration e Continuous Delivery com AWS e Github Actions\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/27_CICD_JavaAWS.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_ci_cd_java_azure\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Java Continuous Integration e Continuous Delivery com Microsoft Azure e Github Actions\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/28_CICD_JavaAzure.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_asp_net\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 Azure com ASP.NET Core 5 e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/01-rest-asp.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_kotlin\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 AWS com Spring Boot 3, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/18-rest-spring-kotlin.png\">\n<\/a>\n<a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker_para_aws\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker para Amazon AWS Implante Apps Java e .NET com Travis CI\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/10-docker-to-aws.png\"><br>\n<\/a>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Este gloss\u00e1rio re\u00fane uma vasta gama de termos essenciais do universo Kubernetes, uma plataforma de c\u00f3digo aberto amplamente adotada para a orquestra\u00e7\u00e3o de cont\u00eaineres. O Kubernetes facilita a automa\u00e7\u00e3o de diversos processos em ambientes distribu\u00eddos, oferecendo escalabilidade, flexibilidade e controle sobre aplica\u00e7\u00f5es conteinerizadas. Com a expans\u00e3o cont\u00ednua de seu uso, \u00e9 crucial entender a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1638,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[289,27,262,291,290],"tags":[265,151,264,293,292],"_links":{"self":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1631"}],"collection":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1631"}],"version-history":[{"count":5,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1631\/revisions"}],"predecessor-version":[{"id":1718,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1631\/revisions\/1718"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media\/1638"}],"wp:attachment":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}