O GKE baseia-se na plataforma de orquestração de contentores de código aberto Kubernetes, e grande parte da documentação neste site pressupõe que já conhece os conceitos e a terminologia básicos do Kubernetes. Se não tiver, esta página oferece uma vista geral rápida dos fundamentos do Kubernetes, com links para leituras recomendadas para começar.
Conceitos-chave
Seguem-se alguns conceitos-chave que usamos ao longo da documentação do GKE. Esta não é uma lista exaustiva de conceitos do Kubernetes. 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. Noutras plataformas Kubernetes, um nó pode ser uma máquina física ou virtual. Cada nó é gerido pelo plano de controlo do Kubernetes e tem todos os componentes necessários para executar Pods. Um cluster é um conjunto de nós que podem ser tratados em conjunto como uma única entidade, na qual implementa uma aplicação contentorizada.
Saiba mais na documentação do Kubernetes:
Espaços de nomes
Os espaços de nomes do Kubernetes oferecem um mecanismo para agrupar e selecionar ainda mais recursos, como pods e serviços, num cluster. Por exemplo, se tiver várias equipas de aplicações a executar cargas de trabalho num único cluster.
Saiba mais na documentação do Kubernetes:
Agrupamentos
No Kubernetes, as aplicações contentorizadas são executadas num Pod. Um pod é a unidade de computação implementável mais pequena que pode criar e gerir no Kubernetes. Um pod tem um ou mais contentores. Quando um Pod executa vários contentores (por exemplo, um servidor de aplicações e um servidor proxy), os contentores são geridos como uma única entidade e partilham os recursos do Pod.
Saiba mais na documentação do Kubernetes:
Controladores
Os controladores do Kubernetes monitorizam e gerem o estado dos seus clusters e cargas de trabalho, com base no estado pretendido que especificar (por exemplo, "Quero executar três deste pod neste cluster, com este contentor em cada pod"). Os diferentes controladores acompanham diferentes tipos de recursos do Kubernetes, incluindo o seguinte:
- Implementações: uma implementação é um objeto do Kubernetes que representa um ou mais pods idênticos, denominados réplicas. Uma implementação executa várias réplicas dos pods distribuídos entre os nós de um cluster. Uma implementação substitui automaticamente todos os pods que falham ou deixam de responder.
- StatefulSet: um StatefulSet é semelhante a uma implementação, mas mantém uma identidade exclusiva persistente para cada um dos respetivos pods. Os StatefulSets podem ser úteis em aplicações com estado persistente (aplicações com estado).
- DaemonSets: um DaemonSet do Kubernetes permite adicionar pods predefinidos a alguns ou a todos os seus nós. Estes são frequentemente serviços de "ajuda" para as suas cargas de trabalho, como um daemon de recolha de registos ou um daemon de monitorização.
- ReplicaSets: um ReplicaSet é um conjunto de pods idênticos. Normalmente, um ReplicaSet é gerido como parte de uma implementação.
Saiba mais na documentação do Kubernetes:
Serviço do Kubernetes
Por predefinição, não pode controlar em que nó do cluster um Pod está a ser executado, pelo que os Pods não têm endereços IP estáveis. Para obter um endereço IP para uma aplicação em execução no Kubernetes, tem de definir uma abstração de rede acima dos respetivos pods denominada serviço do Kubernetes. Um serviço do Kubernetes oferece um ponto final de rede estável para um conjunto de pods.
Existem vários tipos de
serviços, incluindo
LoadBalancer
serviços que expõem um endereço IP externo para que possa
aceder a aplicações a partir de fora do respetivo cluster.
O Kubernetes também tem um sistema DNS incorporado para a resolução de endereços internos, que atribui nomes DNS (por exemplo, helloserver.default.cluster.local
) aos serviços. Isto permite que os pods no interior do cluster alcancem outros pods no cluster através de um endereço estável. Não pode usar este nome DNS fora do cluster,
por exemplo, a partir do Cloud Shell.
Saiba mais na documentação do Kubernetes:
Armazenamento
Se as suas aplicações precisarem de guardar dados que existam para além da duração do respetivo pod (aplicações com estado), pode usar um objeto PersistentVolume do Kubernetes para aprovisionar este armazenamento. No GKE, o armazenamento PersistentVolume é suportado por discos do Compute Engine. Também pode optar por usar o armazenamento efémero, que é destruído quando o Pod correspondente termina.
Saiba mais na documentação do Kubernetes:
Painel de controlo do Kubernetes
O plano de controlo do Kubernetes é um conjunto de componentes do sistema que gerem o estado geral do seu cluster, incluindo o servidor da API Kubernetes que lhe permite interagir com os seus clusters e aplicações através da kubectl
e de outras ferramentas, um programador para programar pods em nós disponíveis e os controladores que monitorizam e gerem o estado do cluster. No GKE, o plano de controlo é
fornecido e gerido pela Google Cloud.
Saiba mais na documentação do Kubernetes:
Controlo de acesso baseado em funções (CABF)
O Kubernetes inclui um mecanismo de controlo de acesso baseado em funções (CABF) que lhe permite criar políticas de autorização para aceder aos seus clusters e respetivos recursos. Quando usa o GKE, usa frequentemente uma combinação de RBAC do Kubernetes e Google Clouddo Identity and Access Management para proteger as suas aplicações.
Saiba mais na documentação do Kubernetes:
Leitura recomendada
Esta secção fornece links para recursos recomendados para saber mais sobre o Kubernetes. Em particular, Kubernetes.io, o Website oficial do Kubernetes, tem muito material atualizado e fiável sobre tudo o que está relacionado com o Kubernetes.
Guias e tutoriais
- Vista geral do Kubernetes: uma vista geral conceptual detalhada do Kubernetes. Why you need Kubernetes and what it can do é uma excelente introdução aos problemas que o Kubernetes pode resolver.
- Tutorial: aprenda os princípios básicos do Kubernetes: explica os princípios básicos do Kubernetes com um exemplo simples.
- Tutorial: Introdução aos contentores: saiba mais sobre os contentores e a orquestração de contentores com uma aplicação de exemplo simples, terminando com o exemplo em execução no GKE.
- Tutoriais do Kubernetes: quando estiver tudo pronto para ir além do básico, esta secção da documentação do Kubernetes oferece tutoriais sobre uma variedade de tópicos do Kubernetes, desde aplicações com estado a segurança.
Documentação de referência
- Glossário do Kubernetes: uma lista abrangente e padronizada da terminologia do Kubernetes. Se não tiver a certeza acerca de um termo do Kubernetes, pode consultá-lo aqui!
Vídeos
- Aprenda Kubernetes com a Google: uma playlist de guias em vídeo da Google que abordam diferentes funcionalidades e caraterísticas do Kubernetes, com material para programadores e operadores.
Banda desenhada
- Banda desenhada 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 aplicações em contentores).