{"id":546,"date":"2023-09-29T14:52:27","date_gmt":"2023-09-29T17:52:27","guid":{"rendered":"https:\/\/demo.creativethemes.com\/blocksy\/business\/?p=546"},"modified":"2023-09-29T14:54:12","modified_gmt":"2023-09-29T17:54:12","slug":"porta-non-pulvinar-neque-laoreet-suspendisse","status":"publish","type":"post","link":"https:\/\/www.scttic.com\/?p=546","title":{"rendered":"Kubernetes &#8211; Conceitos b\u00e1sicos"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\" id=\"pods-kubernetes\">Pods Kubernetes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Com o Kubernetes, nosso objetivo final \u00e9 implantar nossa aplica\u00e7\u00e3o na forma de cont\u00eaineres em um conjunto de m\u00e1quinas configuradas como works nodes em um cluster. No entanto, o Kubernetes n\u00e3o distribui os containers diretamente nos works nodes. Os containers s\u00e3o encapsulados em um objeto do Kubernetes conhecido como pods. Um pod \u00e9 a menor unidade que pode ser criada no Kubernetes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqui vemos os casos mais simples em que voc\u00ea tem um \u00fanico n\u00f3 Kubernetes cluster com uma \u00fanica inst\u00e2ncia de sua aplica\u00e7\u00e3o rodando em um \u00fanico container Docker encapsulado em um pod.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aplica\u00e7\u00e3o em um Pod<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">E se o n\u00famero de usu\u00e1rios que acessam sua aplica\u00e7\u00e3o aumentar e voc\u00ea precisar escalar sua aplica\u00e7\u00e3o? Voc\u00ea precisa adicionar inst\u00e2ncias adicionais de sua aplica\u00e7\u00e3o web para compartilhar a carga. Agora, onde voc\u00ea adicionaria inst\u00e2ncias adicionais? Criar\u00edamos um novo pod com uma nova inst\u00e2ncia da mesma aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como voc\u00ea pode ver, agora temos duas inst\u00e2ncias de nossa aplica\u00e7\u00e3o web rodando em dois pods separados no mesmo sistema ou n\u00f3 Kubernetes. E se a base de usu\u00e1rios aumentar ainda mais e seu n\u00f3 atual n\u00e3o tiver capacidade suficiente?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bem, ent\u00e3o voc\u00ea sempre pode implantar pods adicionais em um novo n\u00f3 no cluster. Voc\u00ea ter\u00e1 um novo n\u00f3 adicionado ao cluster para expandir a capacidade f\u00edsica do cluster. Portanto, o que estou tentando ilustrar \u00e9 que os pods geralmente t\u00eam uma rela\u00e7\u00e3o de um para um com os containers que executam sua aplica\u00e7\u00e3o. Para aumentar, voc\u00ea cria novos pods, e para diminuir, voc\u00ea remove o pod existente. Voc\u00ea n\u00e3o adiciona containers extras a um pod existente para dimensionar sua aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, se voc\u00ea estiver se perguntando como implementamos tudo isso e como alcan\u00e7amos o equil\u00edbrio de carga entre os containers, etc., abordaremos esses t\u00f3picos em uma aula posterior.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por enquanto, estamos apenas tentando entender os conceitos b\u00e1sicos. Acabamos de dizer que os pods geralmente t\u00eam uma rela\u00e7\u00e3o de um para um com os containers, mas ser\u00e1 que estamos restritos a ter um \u00fanico container em um \u00fanico pod? N\u00e3o, um \u00fanico pod pode ter v\u00e1rios containers, exceto pelo fato de que geralmente eles n\u00e3o s\u00e3o m\u00faltiplas inst\u00e2ncias do mesmo tipo de container. Como discutido anteriormente, se nossa inten\u00e7\u00e3o fosse escalar nossa aplica\u00e7\u00e3o, ent\u00e3o precisar\u00edamos criar pods adicionais, mas \u00e0s vezes podemos ter um cen\u00e1rio em que temos um container auxiliar que pode estar desempenhando algum tipo de tarefa de suporte para nossa aplica\u00e7\u00e3o web, como processar um usu\u00e1rio e seus dados, processar um arquivo carregado pelo usu\u00e1rio, etc. e queremos que esses containers auxiliares coexistam com nosso container de aplica\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Multiplos Container em um Pod<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse caso, podemos ter ambos os containers fazendo parte do mesmo pod para que, quando um novo container de aplica\u00e7\u00e3o for criado, o auxiliar tamb\u00e9m seja criado, e quando ele for encerrado, o auxiliar tamb\u00e9m seja encerrado, j\u00e1 que fazem parte do mesmo pod.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os dois containers tamb\u00e9m podem se comunicar diretamente, referindo-se um ao outro como localhost, j\u00e1 que compartilham o mesmo espa\u00e7o de rede e podem compartilhar facilmente o mesmo espa\u00e7o de armazenamento. Se voc\u00ea ainda tiver d\u00favidas sobre esse t\u00f3pico, eu entenderia, pois eu tamb\u00e9m tive quando aprendi esses conceitos pela primeira vez. Vamos tentar entender os pods a partir de um \u00e2ngulo diferente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comunica\u00e7\u00e3o entre container no mesmo Pod<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos supor que estamos desenvolvendo um processo ou um roteiro para implantar nossa aplica\u00e7\u00e3o em um host Docker. Em seguida, simplesmente implantamos nossa aplica\u00e7\u00e3o usando um comando simples de execu\u00e7\u00e3o do Docker para aplica\u00e7\u00e3o Python e a aplica\u00e7\u00e3o roda bem, e nossos usu\u00e1rios s\u00e3o capazes de acess\u00e1-la.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando a carga aumenta, empregamos mais inst\u00e2ncias de nossa aplica\u00e7\u00e3o, executando os comandos de execu\u00e7\u00e3o do Docker v\u00e1rias vezes. Isso funciona bem, e todos estamos felizes. Agora, em algum momento no futuro, nossa aplica\u00e7\u00e3o \u00e9 mais desenvolvida, passa por mudan\u00e7as arquitet\u00f4nicas e cresce e se torna complexa. Agora temos um novo container auxiliar que ajuda nossa aplica\u00e7\u00e3o web, processando ou buscando dados de outros lugares. Esses containers auxiliares t\u00eam uma rela\u00e7\u00e3o de um para um com nosso container de aplica\u00e7\u00e3o e, portanto, precisam se comunicar diretamente com os containers de aplica\u00e7\u00e3o e acessar os dados desses containers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para isso, precisamos manter um mapa que mostra a conex\u00e3o entre os containers de aplica\u00e7\u00e3o e os containers auxiliares.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Precisamos estabelecer a conectividade de rede entre esses cont\u00eaineres usando links e redes personalizadas. Precisamos criar volumes compartilhados e compartilh\u00e1-los entre os cont\u00eaineres. Precisamos manter um mapa disso tamb\u00e9m e, o mais importante, precisamos monitorar o estado do container de aplica\u00e7\u00e3o e, quando ele morrer, precisamos matar manualmente o container auxiliar, pois ele n\u00e3o ser\u00e1 mais necess\u00e1rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando um novo cont\u00eainer \u00e9 implantado, tamb\u00e9m precisamos implantar o novo container auxiliar. Com os pods, o Kubernetes faz tudo isso automaticamente para n\u00f3s. S\u00f3 precisamos definir quais containers comp\u00f5em um pod, e os containers de um pod, por padr\u00e3o, ter\u00e3o acesso ao mesmo armazenamento, ao mesmo espa\u00e7o de rede e ser\u00e3o criados e encerrados juntos. Mesmo que nossa aplica\u00e7\u00e3o n\u00e3o seja t\u00e3o complexa e possamos viver com um \u00fanico container, o Kubernetes ainda exige que voc\u00ea crie pods, o que \u00e9 bom a longo prazo, pois sua aplica\u00e7\u00e3o estar\u00e1 pronta para mudan\u00e7as arquitet\u00f4nicas e escala no futuro. No entanto, observe tamb\u00e9m que os m\u00faltiplos containers s\u00e3o um caso de uso raro, e vamos nos ater a containers \u00fanicos por pod neste curso. Vamos agora ver como implantar os pods.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anteriormente, aprendemos sobre o comando kubectl. O que esse comando realmente faz \u00e9 implantar um container Docker criando um pod. Primeiro, ele cria automaticamente um pod e implanta uma inst\u00e2ncia da imagem Docker do NGINX. Mas de onde ele obt\u00e9m a imagem da aplica\u00e7\u00e3o? Para isso, voc\u00ea precisa especificar o nome da imagem usando o par\u00e2metro image. A imagem da aplica\u00e7\u00e3o, neste caso, a imagem do NGINX, \u00e9 baixada do reposit\u00f3rio p\u00fablico Docker Hub. Voc\u00ea pode configurar o Kubernetes para extrair a imagem do Docker Hub p\u00fablico ou de um reposit\u00f3rio privado dentro da organiza\u00e7\u00e3o.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl run nginx --image nginx --port 80<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Agora que temos um pod criado, como podemos ver a lista de pods dispon\u00edveis? O comando <em><strong>kubectl get pods<\/strong><\/em> nos ajuda a visualizar a lista de pods em nosso cluster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste caso, vemos que o pod est\u00e1 em um estado de cria\u00e7\u00e3o de containers e em breve mudar\u00e1 para um estado de execu\u00e7\u00e3o quando estiver realmente em funcionamento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, lembre-se de que ainda n\u00e3o discutimos os conceitos de como um usu\u00e1rio pode acessar o servidor web NGINX. Portanto, no estado atual, o servidor web ainda n\u00e3o est\u00e1 acess\u00edvel para usu\u00e1rios externos. No entanto, voc\u00ea pode acess\u00e1-lo internamente a partir do n\u00f3. Por enquanto, vamos apenas aprender como implantar um pod e, em uma aula futura, quando aprendermos sobre redes e servi\u00e7os, saberemos como tornar este servi\u00e7o acess\u00edvel aos usu\u00e1rios finais.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cria\u00e7\u00e3o-de-um-pod-usando-arquivo-de-configura\u00e7\u00e3o-yaml\">Cria\u00e7\u00e3o de um Pod<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos criar um pod usando um arquivo de configura\u00e7\u00e3o baseado em uma demonstra\u00e7\u00e3o da aula anterior e agora vamos aprender como desenvolver arquivos YAML especificamente para o Kubernetes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes usa arquivos YAML como entradas para a cria\u00e7\u00e3o de objetos, como servi\u00e7os, Deployments e etc. Todos eles seguem uma estrutura semelhante.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vim pod-definition.yaml<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: Pod\nmetadata:\n\n\n\nspec:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O arquivo de defini\u00e7\u00e3o do Kubernetes sempre cont\u00e9m quatro campos de n\u00edvel superior: vers\u00e3o da API, tipo do objeto, metadados e especifica\u00e7\u00f5es. Essas s\u00e3o as propriedades de n\u00edvel superior ou raiz e tamb\u00e9m s\u00e3o campos obrigat\u00f3rios, portanto, devem ser inclu\u00eddos no arquivo de configura\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>apiVersion<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro campo \u00e9&nbsp;<code>apiVersion<\/code>. Essa \u00e9 a vers\u00e3o da API que estamos usando para criar o objeto, dependendo do tipo de objeto que estamos tentando criar. No nosso caso, como estamos trabalhando com Pods, definiremos a vers\u00e3o da API como&nbsp;<code>v1<\/code>. Outros valores poss\u00edveis para esse campo s\u00e3o&nbsp;<code>apps\/v1<\/code>,&nbsp;<code>beta1.extensions\/v1<\/code>, etc. Veremos para que servem essas diferentes vers\u00f5es mais adiante no curso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>kind<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O campo&nbsp;<code>kind<\/code>&nbsp;se refere ao tipo de objeto que estamos tentando criar. Neste caso, estamos criando um Pod, portanto, definiremos esse valor como&nbsp;<code>Pod<\/code>. Pode ser um conjunto de r\u00e9plicas (<code>ReplicaSet<\/code>), uma implanta\u00e7\u00e3o (<code>Deployment<\/code>) ou um servi\u00e7o (<code>Service<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>metadata<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os metadados s\u00e3o dados sobre o objeto, como seu nome e labels. Diferentemente dos campos anteriores, onde especificamos valores de string, neste caso, os metadados s\u00e3o especificados na forma de um dicion\u00e1rio. Portanto, todos os campos dentro de&nbsp;<code>metadata<\/code>&nbsp;devem ter um n\u00edvel de indenta\u00e7\u00e3o a mais em rela\u00e7\u00e3o ao campo pai. Essa indenta\u00e7\u00e3o \u00e9 de dois espa\u00e7os.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No caso dos metadados, temos dois campos:&nbsp;<code>name<\/code>&nbsp;(nome) e&nbsp;<code>labels<\/code>&nbsp;(r\u00f3tulos). O nome \u00e9 um valor de sequ\u00eancia, no qual voc\u00ea pode nomear sua parte (pod). No campo&nbsp;<code>labels<\/code>, temos um dicion\u00e1rio no qual voc\u00ea pode adicionar pares de chave e valor para identificar e agrupar objetos posteriormente. Por exemplo, se voc\u00ea tiver centenas de pods executando um aplicativo front-end e centenas de pods executando um aplicativo back-end ou um banco de dados, pode ser dif\u00edcil agrupar essas pods depois que elas forem implantadas. No entanto, se voc\u00ea as rotular agora como &#8220;back-end&#8221; ou &#8220;front-end&#8221;, poder\u00e1 filtrar as partes com base nesses r\u00f3tulos posteriormente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>spec<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O \u00faltimo campo no arquivo de configura\u00e7\u00e3o \u00e9 a se\u00e7\u00e3o de especifica\u00e7\u00e3o (<code>spec<\/code>). Aqui, forneceremos informa\u00e7\u00f5es adicionais relacionadas a esse objeto, que ser\u00e3o diferentes para objetos diferentes. No nosso caso, como estamos criando apenas um Pod com um \u00fanico cont\u00eainer, podemos adicionar uma propriedade chamada&nbsp;<code>containers<\/code>, que \u00e9 uma lista (ou array). Essa propriedade \u00e9 uma lista porque os Pods podem ter v\u00e1rios cont\u00eaineres dentro deles. No entanto, no nosso caso, adicionaremos apenas um \u00fanico item \u00e0 lista, pois planejamos ter apenas um cont\u00eainer no Pod.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dentro do campo&nbsp;<code>containers<\/code>, temos um dicion\u00e1rio para especificar as propriedades&nbsp;<code>name<\/code>&nbsp;(nome) e&nbsp;<code>image<\/code>&nbsp;(imagem) do cont\u00eainer. O valor da imagem ser\u00e1 o nome da imagem do Docker no reposit\u00f3rio do Docker. Ap\u00f3s criar o arquivo de configura\u00e7\u00e3o YAML, voc\u00ea pode usar o comando&nbsp;<code>kubectl create -f &lt;nome_do_arquivo&gt;<\/code>&nbsp;para criar o Pod.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: Pod\nmetadata:\n  name: mypod-app\n  labels:\n    app: mypod\nspec:\n  containers:\n  - name: nginx \n    image: nginx <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aplicando o manifesto yaml para criar o POD<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create -f pod-definition.yaml<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"verificando-os-pods\">Verificando os Pods<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s criar o Pod, voc\u00ea pode usar o comando&nbsp;<code>kubectl get pods<\/code>&nbsp;para ver uma lista dos Pods dispon\u00edveis. Para obter informa\u00e7\u00f5es detalhadas sobre um Pod espec\u00edfico, execute o comando&nbsp;<code>kubectl describe pod &lt;nome_do_pod&gt;<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pods<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isso fornecer\u00e1 informa\u00e7\u00f5es sobre o Pod, como sua cria\u00e7\u00e3o, os r\u00f3tulos atribu\u00eddos a ele, os cont\u00eaineres que fazem parte dele e os eventos associados a esse Pod.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"images\/pod_yaml_8.png\" alt=\"Sunset\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Detalhes do pod<\/h3>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"exerc\u00edcios-conceitos-b\u00e1sicos\"><a href=\"#exerc\u00edcios-conceitos-b\u00e1sicos\"><\/a>Pratica dos Conceitos b\u00e1sicos<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Atividade 1: Criar um Pod<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 1.1.<\/strong> Crie um arquivo YAML chamado\u00a0<code>pod.yaml<\/code>\u00a0com as seguintes especifica\u00e7\u00f5es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: Pod\nmetadata:\n  name: nginx\n  labels:\n    app: nginx\nspec:\n  containers:\n  - image: nginx\n    name: nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 1.2.<\/strong> Use o comando\u00a0<code>kubectl create<\/code>\u00a0para criar o Pod usando o arquivo YAML:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create -f pod.yaml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 1.3.<\/strong> Verifique se o Pod foi criado corretamente usando o comando\u00a0<code>kubectl get<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pods<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Atividade 2: Obter detalhes de um Pod<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 2.1.<\/strong> Use o comando\u00a0<code>kubectl describe<\/code>\u00a0para obter detalhes sobre o Pod criado anteriormente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl describe pod nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Atividade 3: Editar um Pod<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 3.1. <\/strong>Use o comando\u00a0<code>kubectl edit<\/code>\u00a0para editar o Pod e adicionar uma nova anota\u00e7\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl edit pod nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 3.2.<\/strong> Adicione a seguinte linha abaixo de\u00a0<code>metadata:<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: Pod\nmetadata:\n  <strong>annotations:<\/strong>\n    <strong>example.com\/annotation: example<\/strong>\n  creationTimestamp: \"2023-07-04T13:22:34Z\"\n  labels:\n    app: nginx\n  name: nginx\n  namespace: default\n  resourceVersion: \"12532\"\n  uid: d486200c-c120-4202-9327-3046daed8301\nspec:\n  containers:\n  - image: nginx\n&#91;.... Omitido .....]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 3.3.<\/strong> Salve saindo do editor. Verifique se as altera\u00e7\u00f5es foram aplicadas usando o comando\u00a0<code>kubectl describe<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl describe pod nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Atividade 4: Criar um Deployment<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 4.1.<\/strong> Crie um arquivo YAML chamado\u00a0<code>deployment.yaml<\/code>\u00a0com as seguintes especifica\u00e7\u00f5es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: meu-deployment\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: meu-app\n  template:\n    metadata:\n      labels:\n        app: meu-app\n    spec:\n      containers:\n        - name: meu-container\n          image: nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 4.2.<\/strong> Use o comando\u00a0<code>kubectl create<\/code>\u00a0para criar o Deployment usando o arquivo YAML:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create -f deployment.yaml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 4.3.<\/strong> Verifique se o Deployment foi criado corretamente usando o comando\u00a0<code>kubectl get<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get deployments<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Atividade 5: Obter detalhes de um Deployment<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Passo 5.1. <\/strong>Use o comando\u00a0<code>kubectl describe<\/code>\u00a0para obter detalhes sobre o Deployment criado anteriormente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl describe deployment meu-deployment<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><\/td><td>Essas atividades fornecem uma introdu\u00e7\u00e3o pr\u00e1tica ao uso dos comandos&nbsp;<code>kubectl create<\/code>,&nbsp;<code>kubectl get<\/code>,&nbsp;<code>kubectl describe<\/code>&nbsp;e&nbsp;<code>kubectl edit<\/code>. Explore mais op\u00e7\u00f5es e recursos desses comandos para aprimorar seu conhecimento.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pods Kubernetes Com o Kubernetes, nosso objetivo final \u00e9 implantar nossa aplica\u00e7\u00e3o na forma de cont\u00eaineres em um conjunto de m\u00e1quinas configuradas como works nodes em um cluster. No entanto, o Kubernetes n\u00e3o distribui os containers diretamente nos works nodes. Os containers s\u00e3o encapsulados em um objeto do Kubernetes conhecido como pods. Um pod \u00e9 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":739,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriais"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.scttic.com\/index.php?rest_route=\/wp\/v2\/posts\/546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scttic.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scttic.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scttic.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scttic.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=546"}],"version-history":[{"count":2,"href":"https:\/\/www.scttic.com\/index.php?rest_route=\/wp\/v2\/posts\/546\/revisions"}],"predecessor-version":[{"id":738,"href":"https:\/\/www.scttic.com\/index.php?rest_route=\/wp\/v2\/posts\/546\/revisions\/738"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.scttic.com\/index.php?rest_route=\/wp\/v2\/media\/739"}],"wp:attachment":[{"href":"https:\/\/www.scttic.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scttic.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scttic.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}