Objetivos
--
-
- Saiba mais sobre implantações de aplicativos. -
- Implante seu primeiro aplicativo no Kubernetes com o kubectl. -
Objetivos
+-
+
- Saiba mais sobre implantações de aplicativos. +
- Implante seu primeiro aplicativo no Kubernetes com o kubectl. + +
Implantações do Kubernetes
-- Assim que o seu cluster Kubernetes estiver em execução você pode implementar seu aplicativo em contêiners nele. - Para fazer isso, você precisa criar uma configuração do tipo Deployment do Kubernetes. O Deployment define como criar e - atualizar instâncias do seu aplicativo. Depois de criar um Deployment, o Master do Kubernetes - agenda as instâncias do aplicativo incluídas nesse Deployment para ser executado em nós individuais do Cluster. -
+Deployments do Kubernetes
++ Assim que o seu cluster + Kubernetes estiver em execução você pode implantar seu aplicativo + contêinerizado nele. + Para fazer isso, você precisa criar um objeto Deployment do Kubernetes. + O Deployment instrui o Kubernetes sobre como criar e atualizar instâncias + do seu aplicativo. Depois de criar um Deployment, a camada de gerenciamento + do Kubernetes aloca as instâncias do aplicativo incluídas nesse Deployment + para serem executadas em nós individuais do cluster. +
-Depois que as instâncias do aplicativo são criadas, um Controlador do Kubernetes Deployment monitora continuamente essas instâncias. - Se o nó que hospeda uma instância ficar inativo ou for excluído, o controlador de Deployment substituirá a instância por uma instância em outro nó no cluster. - Isso fornece um mecanismo de autocorreção para lidar com falhas ou manutenção da máquina.
++ Depois que as instâncias do aplicativo são criadas, o controlador de + Deployment do Kubernetes monitora continuamente essas instâncias. + Se o nó em que uma instância está alocada ficar indisponível ou for + excluído, o controlador de Deployment substituirá a instância por uma + instância em outro nó no cluster. + Isso fornece um mecanismo de autocorreção para lidar com falhas ou + manutenção da máquina. +
-Em um mundo de pré-orquestração, os scripts de instalação costumavam ser usados para iniciar aplicativos, mas não permitiam a recuperação de falha da máquina. - Ao criar suas instâncias de aplicativo e mantê-las em execução entre nós, as implantações do Kubernetes fornecem uma abordagem fundamentalmente diferente para o gerenciamento de aplicativos.
++ Em um mundo de pré-orquestração, os scripts de instalação eram utilizados + para iniciar aplicativos, mas não permitiam a recuperação de falha da máquina. + Ao criar suas instâncias de aplicativo e mantê-las em execução entre nós, + os Deployments do Kubernetes fornecem uma abordagem fundamentalmente + diferente para o gerenciamento de aplicativos. +
+Resumo:
--
-
- Deployments -
- Kubectl -
- O tipo Deployment é responsável por criar e atualizar instâncias de seu aplicativo -
-Resumo:
+-
+
- Deployments +
- Kubectl +
- -
Implantar seu primeiro aplicativo no Kubernetes
-+ O objeto Deployment é responsável por criar e atualizar instâncias + de seu aplicativo +
+ +
Implante seu primeiro aplicativo no + Kubernetes
+
+
+ +
+ Você pode criar e gerenciar uma implantação usando a interface + de linha de comando do Kubernetes, o kubectl. + O kubectl usa a API do Kubernetes para interagir com o cluster. + Neste módulo, você aprenderá os comandos Kubectl mais comuns + necessários para criar Deployments que executam seus aplicativos + em um cluster Kubernetes. +
+ ++ Quando você cria um Deployment, você precisa especificar a imagem + de contêiner para seu aplicativo e o número de réplicas que deseja executar. + Você pode alterar essas informações posteriormente, atualizando seu Deployment; + os Módulos 5 + e 6 + do bootcamp explicam como você pode dimensionar e atualizar seus Deployments. +
+Os aplicativos precisam ser empacotados em um dos formatos de + contêiner suportados para serem implantados no Kubernetes
+
+ Para criar seu primeiro Deployment, você usará o aplicativo hello-node + empacotado em um contêiner que utiliza o NGINX para repetir todas as requisições. + (Se você ainda não tentou criar o aplicativo hello-node e implantá-lo + usando um contêiner, você pode fazer isso primeiro seguindo as + instruções do tutorial Olá, Minikube!). +
-Você pode criar e gerenciar uma implantação usando a interface de linha de comando do Kubernetes, Kubectl . - O Kubectl usa a API Kubernetes para interagir com o cluster. Neste módulo, você aprenderá os comandos Kubectl mais comuns necessários para criar implantações que executam seus aplicativos em um cluster Kubernetes.
++ Você precisará ter o kubectl instalado também. Se você precisar de + instruções de instalação, veja + instalando ferramentas. +
-Quando você cria um Deployment, você precisa especificar a imagem do contêiner para seu aplicativo e o número de réplicas que deseja executar. - Você pode alterar essas informações posteriormente, atualizando sua implantação; Módulos5 e 6 do bootcamp explica como você pode dimensionar e atualizar suas implantações.
++ Agora que você já sabe o que são Deployments, vamos implantar + nosso primeiro aplicativo! +
+-
Os aplicativos precisam ser empacotados em um dos formatos de contêiner suportados para serem implantados no Kubernetes
-Noções básicas do kubectl
+O formato comum de um comando kubectl é: kubectl ação recurso
+ Isto executa a ação especificada (como por exemplo create,
+ describe ou delete) no recurso
+ especificado (por exemplo, node ou deployment).
+ Você pode utilizar --help após o subcomando
+ para obter informações adicionais sobre parâmetros permitidos
+ (por exemplo, kubectl get nodes --help).
+
Verifique que o kubectl está configurado para comunicar-se com seu
+ cluster rodando o comando kubectl version.
Certifique-se de que o kubectl está instalado e que você consegue ver + as versões do cliente e do servidor.
+Para visualizar os nós do cluster, execute o comando kubectl
+ get nodes.
+ Você verá os nós disponíveis. Posteriormente, o Kubernetes irá escolher + onde implantar nossa aplicação baseado nos recursos disponíveis nos nós. +
+Implante uma aplicação
+
+ Vamos implantar nossa primeira aplicação no Kubernetes utilizando
+ o comando kubectl create deployment. Precisaremos
+ fornecer o nome do Deployment e a localização da imagem de contêiner
+ do aplicativo (inclua a URL completa do repositório para images
+ hospedadas fora do Docker Hub).
+
kubectl create deployment kubernetes-bootcamp
+ --image=gcr.io/google-samples/kubernetes-bootcamp:v1
+ Excelente! Você acabou de implantar sua primeira aplicação através + da criação de um Deployment. Este comando efetuou algumas ações + para você: +
+-
+
- + buscou um nó utilizável onde a instância da aplicação pode ser executada + (temos somente um nó disponível) + +
- alocou a aplicação para rodar naquele nó +
- + configurou o cluster para realocar a instância em um novo nó sempre + que necessário + +
+ Para listar seus Deployments existentes, utilize o comando
+ kubectl get deployments:
+
kubectl get deployments
+ Podemos observar que há um Deployment rodando uma única instância + da sua aplicação. A instância está executando dentro de um contêiner + no seu nó. +
+Visualize o aplicativo
+
+ Pods que rodam dentro do Kubernetes estão rodando em uma rede privada e isolada.
+ Por padrão, eles são visíveis a outros Pods e Services dentro do mesmo
+ cluster do Kubernetes, mas não de fora daquela rede.
+ Ao usarmos kubectl, estamos interagindo através de um
+ endpoint de API para comunicar-nos com a nossa aplicação.
+
+ Iremos discutir outras opções de como expor sua aplicação fora do + cluster do Kubernetes no Módulo 4. +
+
+ O comando kubectl pode criar um proxy que encaminha
+ comunicações para dentro da rede privada que engloba todo o cluster. O
+ proxy pode ser encerrado utilizando a sequência control-C e não irá
+ imprimir nenhum tipo de saída enquanto estiver rodando.
+
+ Você precisa abrir uma segunda janela do terminal para executar + o proxy. +
+
+ kubectl proxy
+
+ Agora temos uma conexão entre nosso host (o terminal online) e o + cluster do Kubernetes. O proxy habilita acesso direto à API através + destes terminais. +
+
+ Você pode ver todas as APIs hospedadas através do endpoint do
+ proxy. Por exemplo, podemos obter a versão diretamente através da API
+ utilizando o comando curl:
+
+ curl http://localhost:8001/version
+
kubectl proxy que você iniciou acima está
+ rodando no segundo terminal.
+ O servidor da API irá automaticamente criar um endpoint para cada + Pod, baseado no nome do Pod, que também estará acessível através do proxy. +
++ Primeiro, precisaremos obter o nome do Pod. Iremos armazená-lo na + variável de ambiente POD_NAME: +
+export POD_NAME=$(kubectl get pods -o go-template --template
+ '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
+ echo Nome do Pod: $POD_NAME
Você pode acessar o Pod através da API encaminhada, rodando o comando:
+curl
+ http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/
+
+ Para que o novo Deployment esteja acessível sem utilizar o proxy, um + Service é requerido. Isto será explicado nos próximos módulos. +
+- Para sua primeira implantação, você usará um aplicativo Node.js empacotado em um contêiner Docker.(Se você ainda não tentou criar um aplicativo Node.js e implantá-lo usando um contêiner, você pode fazer isso primeiro seguindo as instruções do tutorial Olá, Minikube!). -
- -
Agora que você sabe o que são implantações (Deployment), vamos para o tutorial online e implantar nosso primeiro aplicativo!
-- -
+ Assim que você finalizar este tutorial, vá para Visualizando Pods e Nós. +
+