GSP178

Visão geral
No Kubernetes Engine, um cluster particular é aquele que torna a instância mestra inacessível na Internet pública. Em um cluster particular, os nós não têm endereços IP públicos, somente endereços particulares. Portanto, as cargas de trabalho são executadas em um ambiente isolado. Os nós e as instâncias mestres comunicam-se usando o peering da VPC.
Na API Kubernetes Engine, os intervalos de endereços são expressos como blocos de roteamento entre domínios sem classe (CIDR).
Neste laboratório, você aprende a criar um cluster particular do Kubernetes.
Atividades
- Criação de um cluster particular do Kubernetes.
Pré-requisitos
- Ter experiência em criar e iniciar clusters do Kubernetes e conhecer a fundo o endereçamento IP nos formatos de intervalo CIDR.
Configuração e requisitos
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
- Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento.
No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:
- O botão Abrir Console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Username"}}}
Você também encontra o nome de usuário no painel Detalhes do Laboratório.
-
Clique em Próxima.
-
Copie a Senha abaixo e cole na caixa de diálogo de Olá.
{{{user_0.password | "Password"}}}
Você também encontra a senha no painel Detalhes do Laboratório.
-
Clique em Próxima.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar.
Ativar o Cloud Shell
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
-
Clique em Ativar o Cloud Shell
na parte de cima do console do Google Cloud.
-
Clique nas seguintes janelas:
- Continue na janela de informações do Cloud Shell.
- Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.
Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
- Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project
Saída:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.
Tarefa 1: configurar região e zona
- Defina a região do projeto neste laboratório:
gcloud config set compute/zone {{{project_0.default_zone | "Zone"}}}
- Crie uma variável para a região:
export REGION={{{project_0.default_region | Region}}}
- Crie uma variável para a zona:
export ZONE={{{project_0.default_zone | Zone}}}
Saiba mais na documentação Regiões e zonas.
Observação: quando você executa a gcloud na sua máquina, as configurações continuam as mesmas em todas as sessões. Porém, no Cloud Shell, elas precisam ser definidas a cada nova sessão ou reconexão.
Tarefa 2: criar um cluster particular
- Ao criar um cluster particular, você precisa especificar um intervalo de CIDR
/28 para as VMs que executam os componentes principais do Kubernetes. Também é necessário ativar os aliases de IP.
Depois disso, você criará um cluster private-cluster e especificará o intervalo de CIDR 172.16.0.16/28 para os componentes principais. Ao ativar os aliases de IP, você permite que o Kubernetes Engine crie uma sub-rede automaticamente.
Crie o cluster particular usando as sinalizações --private-cluster, --master-ipv4-cidr e --enable-ip-alias.
- Para criar o cluster, execute o seguinte comando:
gcloud beta container clusters create private-cluster \
--enable-private-nodes \
--master-ipv4-cidr 172.16.0.16/28 \
--enable-ip-alias \
--create-subnetwork ""
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se o cluster particular tiver sido criado corretamente, você receberá uma pontuação de avaliação.
Criar um cluster particular
Tarefa 3: acessar a sub-rede e os intervalos de endereços secundários
- Liste as sub-redes da rede padrão:
gcloud compute networks subnets list --network default
-
Na saída, encontre o nome da sub-rede que foi criada automaticamente para o cluster. Por exemplo, gke-private-cluster-subnet-xxxxxxxx. Salve o nome do cluster, porque você vai precisar dele na próxima etapa.
-
Agora, use o comando a seguir para descobrir informações sobre a sub-rede criada automaticamente, substituindo [SUBNET_NAME] pelo nome da sua sub-rede:
gcloud compute networks subnets describe [SUBNET_NAME] --region=$REGION
A saída mostra o intervalo de endereços principal com o nome do cluster particular do GKE e os intervalos secundários:
...
ipCidrRange: 10.0.0.0/22
kind: compute#subnetwork
name: gke-private-cluster-subnet-163e3c97
...
privateIpGoogleAccess: true
...
secondaryIpRanges:
- ipCidrRange: 10.40.0.0/14
rangeName: gke-private-cluster-pods-163e3c97
- ipCidrRange: 10.0.16.0/20
rangeName: gke-private-cluster-services-163e3c97
...
A saída mostra que um dos intervalos secundários é para pods e o outro é para services.
Observe que privateIPGoogleAccess está definido como true. Isso permite que os hosts de cluster, que só usam endereços IP particulares, se comuniquem com APIs e Serviços do Google.
Tarefa 4: ativar redes autorizadas do mestre
A esta altura, os únicos endereços IP que têm acesso à instância mestra são os endereços nestes intervalos:
- O intervalo principal da sub-rede. É o intervalo usado para nós.
- O intervalo secundário da sub-rede usado para pods.
Para oferecer acesso adicional à instância mestre, é preciso autorizar intervalos de endereços selecionados.
Crie uma instância de VM
- Crie uma instância de origem para verificar a conectividade com os clusters do Kubernetes:
gcloud compute instances create source-instance --zone=$ZONE --scopes 'https://www.googleapis.com/auth/cloud-platform'
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se a instância de VM tiver sido criada corretamente, você receberá uma pontuação de avaliação.
Criar uma instância de VM
- Descubra o
<External_IP> da source-instance com:
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP
Exemplo de saída:
natIP: 35.192.107.237
-
Copie o endereço <nat_IP> e salve-o para as próximas etapas.
-
Para autorizar seu intervalo de endereços externos, execute o código a seguir, substituindo [MY_EXTERNAL_RANGE] pelo intervalo CIDR da saída anterior (natIP/32). Quando definimos o intervalo CIDR como natIP/32, colocamos um endereço IP específico na lista de permissões:
gcloud container clusters update private-cluster \
--enable-master-authorized-networks \
--master-authorized-networks [MY_EXTERNAL_RANGE]
Observação:
em um ambiente de produção, substitua [MY_EXTERNAL_RANGE] pelo intervalo CIDR de endereços externos da rede.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se o intervalo de endereços externos tiver sido criado corretamente, você receberá uma pontuação de avaliação.
Autorizar o intervalo de endereços externos
Agora que você tem acesso à instância mestra por um intervalo de endereços externos, instale o kubectl para descobrir informações sobre seu cluster. Por exemplo, use o kubectl para verificar se os nós não têm endereços IP externos.
- Use o SSH na
source-instance com:
gcloud compute ssh source-instance --zone=$ZONE
-
Pressione Y para continuar. Depois, pressione Enter nas perguntas de senha longa.
-
No shell SSH, instale o componente kubectl do SDK Cloud:
sudo apt-get install kubectl
- No shell SSH, configure o acesso ao cluster do Kubernetes com:
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
gcloud container clusters get-credentials private-cluster --zone=$ZONE
Observação: verifique se a zona atribuída foi exportada na variável ZONE.
- Confirme que os nós do cluster não têm endereços IP externos:
kubectl get nodes --output yaml | grep -A4 addresses
A saída mostra que os nós têm endereços IP internos, mas não externos:
...
addresses:
- address: 10.0.0.4
type: InternalIP
- address: ""
type: ExternalIP
...
- Este outro comando também pode ser usado para verificar se os nós estão com endereços IP externos:
kubectl get nodes --output wide
A saída mostra uma coluna vazia para EXTERNAL-IP:
STATUS ... VERSION EXTERNAL-IP OS-IMAGE ...
Ready v1.8.7-gke.1 Container-Optimized OS from Google
Ready v1.8.7-gke.1 Container-Optimized OS from Google
Ready v1.8.7-gke.1 Container-Optimized OS from Google
- Feche o shell SSH digitando:
exit
Tarefa 5: limpar
- Exclua o cluster do Kubernetes:
gcloud container clusters delete private-cluster --zone=$ZONE
- Pressione
Y para continuar.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se o cluster do Kubernetes tiver sido excluído corretamente, você receberá uma pontuação de avaliação.
Excluir o cluster do Kubernetes
Tarefa 6: criar um cluster particular que usa uma sub-rede personalizada
Na seção anterior, o Kubernetes Engine criou automaticamente uma sub-rede. Nesta seção, você criará sua própria sub-rede personalizada e um cluster particular.
A sub-rede tem um intervalo de endereços principal e dois intervalos de endereços secundários.
- Crie uma sub-rede e os intervalos secundários:
gcloud compute networks subnets create my-subnet \
--network default \
--range 10.0.4.0/22 \
--enable-private-ip-google-access \
--region=$REGION \
--secondary-range my-svc-range=10.0.32.0/20,my-pod-range=10.4.0.0/14
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se uma sub-rede e os intervalos secundários tiverem sido criados corretamente na região, você receberá uma pontuação de avaliação.
Criar uma sub-rede e os intervalos secundários na região
- Crie um cluster particular que use a sub-rede:
gcloud beta container clusters create private-cluster2 \
--enable-private-nodes \
--enable-ip-alias \
--master-ipv4-cidr 172.16.0.32/28 \
--subnetwork my-subnet \
--services-secondary-range-name my-svc-range \
--cluster-secondary-range-name my-pod-range \
--zone=$ZONE
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você tiver criado um cluster particular que use sua sub-rede corretamente, você receberá uma pontuação de avaliação.
Criar um cluster particular que use a sub-rede
- Extraia o intervalo de endereços externos da instância de origem:
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP
Exemplo de saída:
natIP: 35.222.210.67
-
Copie o endereço <nat_IP> e salve-o para as próximas etapas.
-
Para autorizar seu intervalo de endereços externos, execute o código a seguir, substituindo [MY_EXTERNAL_RANGE] pelo intervalo CIDR da saída anterior (natIP/32). Quando definimos o intervalo CIDR como natIP/32, colocamos um endereço IP específico na lista de permissões:
gcloud container clusters update private-cluster2 \
--enable-master-authorized-networks \
--zone=$ZONE \
--master-authorized-networks [MY_EXTERNAL_RANGE]
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se tiver autorizado corretamente o intervalo de endereços externos para um cluster particular em uma sub-rede personalizada, você receberá uma pontuação de avaliação.
Autorizar o intervalo de endereços externos para um cluster particular em uma sub-rede personalizada
- Use o SSH na
source-instance com:
gcloud compute ssh source-instance --zone=$ZONE
- No shell SSH, configure o acesso ao cluster do Kubernetes com:
gcloud container clusters get-credentials private-cluster2 --zone=$ZONE
Observação: verifique se a zona atribuída foi exportada na variável ZONA.
- Confirme que os nós do cluster não têm endereços IP externos:
kubectl get nodes --output yaml | grep -A4 addresses
A saída mostra que os nós têm endereços IP internos, mas não externos:
...
addresses:
- address: 10.0.4.3
type: InternalIP
...
A esta altura, os únicos endereços IP que têm acesso à instância mestra são os endereços nestes intervalos:
- O intervalo principal da sub-rede. É o intervalo usado para nós. Neste exemplo, o intervalo dos nós é
10.0.4.0/22.
- O intervalo secundário da sub-rede usado para pods. Neste exemplo, o intervalo de pods é
10.4.0.0/14.
Parabéns!
Você aprendeu a criar um cluster particular do Kubernetes.
Próximas etapas / Saiba mais
- Confira estes laboratórios:
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 15 de abril de 2024
Laboratório testado em 20 de setembro de 2023
Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.