O GKE é baseado na plataforma de orquestração de contêineres de código aberto Kubernetes, e grande parte da documentação deste site pressupõe que você já conhece os conceitos e a terminologia básicos do Kubernetes. Caso contrário, esta página oferece uma visão geral rápida dos fundamentos do Kubernetes, com links para leituras recomendadas para você começar.
Principais conceitos
Confira a seguir alguns conceitos-chave que usamos em toda a documentação do GKE. Esta não é uma lista exaustiva de conceitos do Kubernetes. Você pode encontrar muito mais para ler e explorar nos tópicos fornecidos na documentação do Kubernetes e na nossa leitura recomendada.
Nós e clusters
Todas as cargas de trabalho do Kubernetes são executadas em nós. No GKE, um nó é uma máquina virtual (VM) do Compute Engine. Em outras plataformas do Kubernetes, um nó pode ser uma máquina física ou virtual. Cada nó é gerenciado pelo plano de controle do Kubernetes e tem todos os componentes necessários para executar pods. Um cluster é um conjunto de nós que podem ser tratados como uma única entidade, em que você implanta um aplicativo em contêiner.
Saiba mais na documentação do Kubernetes:
Namespaces
Os namespaces do Kubernetes oferecem um mecanismo para agrupar e selecionar ainda mais recursos, como pods e serviços em um cluster. Por exemplo, se você tiver várias equipes de aplicativos executando cargas de trabalho em um único cluster.
Saiba mais na documentação do Kubernetes:
Pods
No Kubernetes, os aplicativos em contêineres são executados em um pod. Um pod é a menor unidade de computação implantável que pode ser criada e gerenciada no Kubernetes. Um pod tem um ou mais contêineres. Quando um pod executa vários contêineres (por exemplo, um servidor de aplicativos e um servidor proxy), eles são gerenciados como uma única entidade e compartilham os recursos do pod.
Saiba mais na documentação do Kubernetes:
Controladores
Os controladores do Kubernetes rastreiam e gerenciam o estado dos clusters e cargas de trabalho com base no estado desejado especificado (por exemplo, "Quero executar três deste pod neste cluster, com este contêiner em cada pod"). Controladores diferentes rastreiam tipos de recursos diferentes do Kubernetes, incluindo:
- Implantações: uma implantação é um objeto do Kubernetes que representa um ou mais pods idênticos, chamados de réplicas. Uma implantação executa várias réplicas dos pods distribuídos entre os nós de um cluster. Uma implantação substitui automaticamente todos os pods com falha ou que não respondem.
- StatefulSet: um StatefulSet é como um Deployment, mas mantém uma identidade exclusiva permanente para cada um dos pods. Os StatefulSets podem ser úteis em aplicativos com estado persistente (aplicativos com estado).
- DaemonSets: um DaemonSet do Kubernetes permite adicionar pods padrão a alguns ou todos os nós. Esses serviços geralmente são "auxiliares" para suas cargas de trabalho, como um daemon de coleta de registros ou um daemon de monitoramento.
- ReplicaSets: um ReplicaSet é um conjunto de pods idênticos. Um ReplicaSet geralmente é gerenciado como parte de uma implantação.
Saiba mais na documentação do Kubernetes:
Serviço do Kubernetes
Por padrão, não é possível controlar em qual nó do cluster um pod está sendo executado. Portanto, os pods
não têm endereços IP estáveis. Para receber um endereço IP de um aplicativo em execução
no Kubernetes, defina uma abstração de rede sobre os pods
chamada de Serviço do
Kubernetes. Um
Serviço do Kubernetes fornece um endpoint de rede estável para um conjunto de pods.
Há vários tipos de
serviço, incluindo
serviços LoadBalancer
que expõem um endereço IP externo para que você possa
acessar aplicativos de fora do cluster.
O Kubernetes também tem um sistema DNS integrado para resolução de endereços internos, que
atribui nomes DNS (por exemplo, helloserver.default.cluster.local
) aos
serviços. Isso permite que pods dentro do cluster alcancem outros pods no
cluster usando um endereço estável. Não é possível usar esse nome DNS fora do cluster, como no Cloud Shell.
Saiba mais na documentação do Kubernetes:
Armazenamento
Se os aplicativos precisarem salvar dados que existam além do ciclo de vida do pod (aplicativos com estado), use um objeto PersistentVolume do Kubernetes para provisionar esse armazenamento. No GKE, o armazenamento do PersistentVolume é respaldado por discos do Compute Engine. Também é possível usar o armazenamento temporário, que é destruído quando o pod correspondente é encerrado.
Saiba mais na documentação do Kubernetes:
Plano de controle do Kubernetes
O plano de controle do Kubernetes é um conjunto de componentes do sistema que gerenciam o estado geral do cluster, incluindo o servidor da API Kubernetes, que permite interagir com os clusters e aplicativos usando kubectl
e outras ferramentas, um programador para programar pods em nós disponíveis e os controladores que rastreiam e gerenciam o estado do cluster. No GKE, o plano de controle é fornecido e gerenciado pelo Google Cloud.
Saiba mais na documentação do Kubernetes:
Controle de acesso baseado em função (RBAC)
O Kubernetes inclui um mecanismo de controle de acesso baseado em papéis (RBAC) que permite criar políticas de autorização para acessar seus clusters e recursos. Ao usar o GKE, geralmente você usa uma combinação de RBAC do Kubernetes e o Identity and Access Management do Google Cloudpara proteger seus aplicativos.
Saiba mais na documentação do Kubernetes:
Leituras recomendadas
Esta seção fornece links para recursos recomendados para saber mais sobre o Kubernetes. Em especial, o Kubernetes.io, o site oficial do Kubernetes, tem muito material atualizado e confiável sobre tudo relacionado ao Kubernetes.
Guias e tutoriais
- Visão geral do Kubernetes: uma visão geral conceitual completa do Kubernetes. Por que você precisa do Kubernetes e o que ele pode fazer é uma ótima introdução aos problemas que o Kubernetes pode resolver.
- Tutorial: aprenda os conceitos básicos do Kubernetes: mostra os conceitos básicos do Kubernetes com um exemplo simples.
- Tutorial: introdução aos contêineres: saiba mais sobre contêineres e orquestração de contêineres com um exemplo simples de aplicativo, terminando com o exemplo em execução no GKE.
- Tutoriais do Kubernetes: quando você estiver pronto para ir além do básico, esta seção da documentação do Kubernetes oferece tutoriais sobre vários tópicos do Kubernetes, desde aplicativos com estado até segurança.
Documentação de referência
- Glossário do Kubernetes: uma lista abrangente e padronizada de terminologia do Kubernetes. Se você não tiver certeza sobre um termo do Kubernetes, confira aqui!
Vídeos
- Learn Kubernetes with Google: uma playlist de guias em vídeo do Google que abordam diferentes recursos e funcionalidades do Kubernetes, com material para desenvolvedores e operadores.
Comédia
- Quadrinho do Kubernetes: descubra a história do Kubernetes e como usá-lo para integração e entrega contínuas com a ajuda improvável da Deusa da Sabedoria (e aplicativos contêinerizados).