Nesta página, você aprende a criar um cluster particular do Google Kubernetes Engine (GKE), que é um tipo de cluster nativo de VPC. Em um cluster particular, os nós têm apenas endereços IP internos, o que significa que os nós e os pods estão isolados da Internet por padrão. Você pode optar por não ter acesso de cliente, acesso limitado ou acesso irrestrito ao plano de controle.
Restrições e limitações
Clusters particulares precisam ser nativos de VPC. Clusters nativos de VPC não são compatíveis com redes legadas.
Abra as seções a seguir para conferir as regras sobre intervalos de endereços IP e tráfego ao criar um cluster.
Antes de começar
Antes de começar, veja se você realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a CLI do Google Cloud para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a gcloud CLI anteriormente, instale a versão
mais recente executando
gcloud components update
.
Verifique se você tem a permissão correta para criar clusters. Você precisa ser, no mínimo, um Administrador de clusters do Kubernetes Engine.
Verifique se você tem uma rota para o gateway de Internet padrão.
Como criar um cluster privado sem acesso de cliente ao endpoint público
Nesta seção, você criará os recursos a seguir:
- Um cluster particular chamado
private-cluster-0
que tem nós particulares e que não tem acesso de cliente ao endpoint público. - Uma rede chamada
my-net-0
. - Uma sub-rede chamada
my-subnet-0
.
Console
Criar uma rede e uma sub-rede
Acesse a página Redes VPC no console do Google Cloud.
Clique em add_boxCriar rede VPC.
Em Nome, insira
my-net-0
.Em Modo de criação da sub-rede, selecione Personalizado.
Na caixa Nova sub-rede, para Nome, digite
my-subnet-0
.Na lista Região, selecione a região desejada.
Em Intervalo de endereços IP, insira
10.2.204.0/22
.Defina o Acesso privado do Google como Ativado.
Clique em Concluído.
Clique em Criar.
crie um cluster particular
Acesse a página Google Kubernetes Engine no Console do Google Cloud.
Clique em
Criar e, na seção Standard ou Autopilot, clique em Configurar.Em Nome, especifique
private-cluster-0
.No painel de navegação, clique em Rede.
Na lista Rede, selecione my-net-0.
Na lista Sub-rede de nós, selecione my-subnet-0.
Selecione o botão de opção Cluster particular.
Desmarque a caixa de seleção Acesso ao plano de controle usando o endereço IP externo.
Opcional para o Autopilot: defina o Intervalo de IP do plano de controle para
172.16.0.32/28
.Clique em Criar.
gcloud
Para clusters do Autopilot, execute o seguinte comando:
gcloud container clusters create-auto private-cluster-0 \ --create-subnetwork name=my-subnet-0 \ --enable-master-authorized-networks \ --enable-private-nodes \ --enable-private-endpoint
Para clusters padrão, execute o seguinte comando:
gcloud container clusters create private-cluster-0 \ --create-subnetwork name=my-subnet-0 \ --enable-master-authorized-networks \ --enable-ip-alias \ --enable-private-nodes \ --enable-private-endpoint \ --master-ipv4-cidr 172.16.0.32/28
em que:
--create-subnetwork name=my-subnet-0
faz com que o GKE crie automaticamente uma sub-rede denominadamy-subnet-0
;--enable-master-authorized-networks
especifica que o acesso ao endpoint público é restrito aos intervalos de endereços IP que você autorizar;
--enable-ip-alias
torna o cluster nativo da VPC (não necessário para o Autopilot).
--enable-private-nodes
indica que os nós do cluster não têm endereços IP externos.--enable-private-endpoint
indica que o cluster é gerenciado usando o endereço IP interno do endpoint da API do plano de controle.
--master-ipv4-cidr 172.16.0.32/28
especifica um intervalo de endereços IP internos para o plano de controle (opcional para o Autopilot). Essa configuração é permanente para esse cluster e precisa ser exclusiva na VPC. O uso de endereços IP internos não RFC 1918 é compatível.
API
Para criar um cluster sem um plano de controle acessível publicamente, especifique o
campo enablePrivateEndpoint: true
no recurso privateClusterConfig
.
Nesse momento, os únicos endereços IP que têm acesso ao plano de controle são estes:
- O intervalo principal de
my-subnet-0
- O intervalo secundário usado para os pods.
Por exemplo, suponha que você tenha criado uma VM no intervalo principal de my-subnet-0
.
Então, nessa VM, seria possível
configurar kubectl
para usar o endereço IP interno
do plano de controle.
Se você quiser acessar o plano de controle de fora do my-subnet-0
, precisará
autorizar pelo menos um intervalo de endereços a ter acesso ao endpoint particular.
Suponha que você tenha uma VM na rede padrão, na mesma região que seu cluster, mas não em my-subnet-0
.
Por exemplo:
my-subnet-0
:10.0.0.0/22
- intervalo secundário de pods:
10.52.0.0/14
- endereço da VM:
10.128.0.3
Use o comando a seguir para autorizar a VM a acessar o plano de controle:
gcloud container clusters update private-cluster-0 \
--enable-master-authorized-networks \
--master-authorized-networks 10.128.0.3/32
Como criar um cluster privado com acesso limitado ao endpoint público
Ao criar um cluster privado usando essa configuração, é possível optar por usar uma sub-rede gerada automaticamente ou uma sub-rede personalizada.
Como usar uma sub-rede gerada automaticamente
Nesta seção, você cria um cluster particular chamado private-cluster-1
em que o GKE gerar automaticamente uma sub-rede para os nós do cluster.
Ela já tem o recurso “Acesso privado do Google” ativado. Na sub-rede, o GKE cria automaticamente dois intervalos secundários: um para os pods e outro para os serviços.
É possível usar a Google Cloud CLI ou a API GKE.
gcloud
Para clusters do Autopilot, execute o seguinte comando:
gcloud container clusters create-auto private-cluster-1 \ --create-subnetwork name=my-subnet-1 \ --enable-master-authorized-networks \ --enable-private-nodes
Para clusters padrão, execute o seguinte comando:
gcloud container clusters create private-cluster-1 \ --create-subnetwork name=my-subnet-1 \ --enable-master-authorized-networks \ --enable-ip-alias \ --enable-private-nodes \ --master-ipv4-cidr 172.16.0.0/28
em que:
--create-subnetwork name=my-subnet-1
faz com que o GKE crie automaticamente uma sub-rede denominadamy-subnet-1
;--enable-master-authorized-networks
especifica que o acesso ao endpoint público é restrito aos intervalos de endereços IP que você autorizar;
--enable-ip-alias
torna o cluster nativo da VPC (não necessário para o Autopilot).
--enable-private-nodes
indica que os nós do cluster não têm endereços IP externos.
--master-ipv4-cidr 172.16.0.0/28
especifica um intervalo de endereços IP internos para o plano de controle (opcional para o Autopilot). Essa configuração é permanente para esse cluster e precisa ser exclusiva na VPC. O uso de endereços IP internos não RFC 1918 é compatível.
API
Especifique o campo privateClusterConfig
no recurso da API Cluster
:
{
"name": "private-cluster-1",
...
"ipAllocationPolicy": {
"createSubnetwork": true,
},
...
"privateClusterConfig" {
"enablePrivateNodes": boolean # Creates nodes with internal IP addresses only
"enablePrivateEndpoint": boolean # false creates a cluster control plane with a publicly-reachable endpoint
"masterIpv4CidrBlock": string # CIDR block for the cluster control plane
"privateEndpoint": string # Output only
"publicEndpoint": string # Output only
}
}
Nesse momento, os únicos endereços IP que têm acesso ao plano de controle do cluster são estes:
- O intervalo principal de
my-subnet-1
- O intervalo secundário usado para os pods
Imagine que você tem um grupo de máquinas fora da sua rede VPC, com endereços no intervalo 203.0.113.0/29
. Digite o comando abaixo para autorizar que essas máquinas acessem o endpoint público:
gcloud container clusters update private-cluster-1 \
--enable-master-authorized-networks \
--master-authorized-networks 203.0.113.0/29
Agora, estes são os únicos endereços IP que têm acesso ao plano de controle:
- O intervalo principal de
my-subnet-1
- O intervalo secundário usado para os pods.
- Os intervalos autorizados, como
203.0.113.0/29
Como usar uma sub-rede personalizada
Nesta seção, você criará os recursos a seguir:
- Um cluster particular chamado
private-cluster-2
. - Uma rede chamada
my-net-2
. - Uma sub-rede chamada
my-subnet-2
, com intervalo principal192.168.0.0/20
, para seus nós de cluster. Sua sub-rede tem os seguintes intervalos de endereços secundários:my-pods
para os endereços IP de pods.my-services
para os endereços IP do Serviço.
Console
Criar uma rede, sub-rede e intervalos secundários
Acesse a página Redes VPC no console do Google Cloud.
Clique em add_boxCriar rede VPC.
Em Nome, insira
my-net-2
.Em Modo de criação da sub-rede, selecione Personalizado.
Na caixa Nova sub-rede, para Nome, digite
my-subnet-2
.Na lista Região, selecione a região desejada.
Em Intervalo de endereços IP, insira
192.168.0.0/20
.Clique em Criar um intervalo de IP secundário. Digite
my-services
em Nome do intervalo da sub-rede e10.0.32.0/20
em Intervalo de IP secundário.Clique em Adicionar intervalo de IP. Digite
my-pods
em Nome do intervalo da sub-rede e10.4.0.0/14
em Intervalo de IP secundário.Defina o Acesso privado do Google como Ativado.
Clique em Concluído.
Clique em Criar.
Criar um cluster particular
Crie um cluster particular que usa a sub-rede:
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em
Criar e, na seção Standard ou Autopilot, clique em Configurar.Em Nome, insira
private-cluster-2
.No painel de navegação, clique em Rede.
Selecione o botão de opção Cluster particular.
Para criar um plano de controle que possa ser acessado por intervalos de IP externos autorizados, mantenha marcada a caixa de seleção Acessar ao plano de controle usando o endereço IP externo.
Opcional para o Autopilot: defina o Intervalo de IP do plano de controle para
172.16.0.16/28
.Na lista Rede, selecione my-net-2.
Na lista Sub-rede de nós, selecione my-subnet-2.
Desmarque a caixa de seleção Criar intervalos secundários automaticamente.
Na lista Intervalo CIDR secundário do pod, selecione my-pods.
Na lista Serviços do intervalo CIDR secundário, selecione my-services.
Marque a caixa de seleção Ativar redes autorizadas do plano de controle.
Clique em Criar.
gcloud
Criar uma rede
Primeiro, crie uma rede para o cluster. O comando a seguir cria uma rede, my-net-2
:
gcloud compute networks create my-net-2 \
--subnet-mode custom
Criar uma sub-rede e intervalos secundários
Em seguida, crie uma sub-rede, my-subnet-2
, na rede my-net-2
, com intervalos secundários my-pods
para pods e my-services
para Services:
gcloud compute networks subnets create my-subnet-2 \
--network my-net-2 \
--range 192.168.0.0/20 \
--secondary-range my-pods=10.4.0.0/14,my-services=10.0.32.0/20 \
--enable-private-ip-google-access
Criar um cluster particular
Agora, crie um cluster particular, private-cluster-2
, usando a rede, a sub-rede e os intervalos secundários criados.
Para clusters do Autopilot, execute o seguinte comando:
gcloud container clusters create-auto private-cluster-2 \ --enable-master-authorized-networks \ --network my-net-2 \ --subnetwork my-subnet-2 \ --cluster-secondary-range-name my-pods \ --services-secondary-range-name my-services \ --enable-private-nodes
Para clusters padrão, execute o seguinte comando:
gcloud container clusters create private-cluster-2 \ --enable-master-authorized-networks \ --network my-net-2 \ --subnetwork my-subnet-2 \ --cluster-secondary-range-name my-pods \ --services-secondary-range-name my-services \ --enable-private-nodes \ --enable-ip-alias \ --master-ipv4-cidr 172.16.0.16/28 \ --no-enable-basic-auth \ --no-issue-client-certificate
Nesse momento, os únicos endereços IP que têm acesso ao plano de controle são estes:
- O intervalo principal de
my-subnet-2
- O intervalo secundário
my-pods
Suponha que você tenha um grupo de máquinas fora de my-net-2
que tenham endereços no intervalo 203.0.113.0/29
. Digite o comando abaixo para autorizar que essas máquinas acessem o endpoint público:
gcloud container clusters update private-cluster-2 \
--enable-master-authorized-networks \
--master-authorized-networks 203.0.113.0/29
Nesse momento, os únicos endereços IP que têm acesso ao plano de controle são estes:
- O intervalo principal de
my-subnet-2
- O intervalo secundário
my-pods
- Os intervalos autorizados, como
203.0.113.0/29
Como usar o Cloud Shell para acessar um cluster particular
Se você tiver ativado um endpoint particular, não será possível acessar o plano de controle do GKE com o Cloud Shell.
Se você quiser usar o Cloud Shell para acessar o cluster, adicione o endereço IP externo do Cloud Shell à lista de redes autorizadas do cluster.
As etapas para fazer isso:
Na janela da linha de comando do Cloud Shell, use
dig
para encontrar o endereço IP externo do seu Cloud Shell:dig +short myip.opendns.com @resolver1.opendns.com
Adicione o endereço externo do seu Cloud Shell à lista de redes autorizadas do cluster:
gcloud container clusters update CLUSTER_NAME \ --enable-master-authorized-networks \ --master-authorized-networks EXISTING_AUTH_NETS,SHELL_IP/32
Substitua:
CLUSTER_NAME
: o nome do cluster.EXISTING_AUTH_NETS
: os endereços IP da sua lista atual de redes autorizadas. É possível encontrar suas redes autorizadas no console ou executando o seguinte comando:gcloud container clusters describe CLUSTER_NAME --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
SHELL_IP
: é o endereço IP externo do seu Cloud Shell.
Receba as credenciais para poder usar a
kubectl
para acessar o cluster:gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID \ --internal-ip
Substitua
PROJECT_ID
pela ID do seu projeto.Use
kubectl
no Cloud Shell para acessar o cluster:kubectl get nodes
O resultado será assim:
NAME STATUS ROLES AGE VERSION gke-cluster-1-default-pool-7d914212-18jv Ready <none> 104m v1.21.5-gke.1302 gke-cluster-1-default-pool-7d914212-3d9p Ready <none> 104m v1.21.5-gke.1302 gke-cluster-1-default-pool-7d914212-wgqf Ready <none> 104m v1.21.5-gke.1302
Como criar um cluster privado com acesso irrestrito ao endpoint público
Nesta seção, você cria um cluster privado em que qualquer endereço IP pode acessar o plano de controle.
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em
Criar e, na seção Standard ou Autopilot, clique em Configurar.Em Nome, insira
private-cluster-3
.No painel de navegação, clique em Rede.
Selecione a opção Cluster privado.
Mantenha a caixa de seleção Acessar plano de controle usando o endereço IP externo marcada.
Opcional para o Autopilot: defina o Intervalo de IP do plano de controle para
172.16.0.32/28
.Deixe Rede e sub-rede do nó definidas como
default
. Dessa forma, o GKE gera uma sub-rede para o cluster.Desmarque a caixa de seleção Ativar redes autorizadas do plano de controle.
Clique em Criar.
gcloud
Para clusters do Autopilot, execute o seguinte comando:
gcloud container clusters create-auto private-cluster-3 \ --create-subnetwork name=my-subnet-3 \ --no-enable-master-authorized-networks \ --enable-private-nodes
Para clusters padrão, execute o seguinte comando:
gcloud container clusters create private-cluster-3 \ --create-subnetwork name=my-subnet-3 \ --no-enable-master-authorized-networks \ --enable-ip-alias \ --enable-private-nodes \ --master-ipv4-cidr 172.16.0.32/28
em que:
--create-subnetwork name=my-subnet-3
faz com que o GKE crie automaticamente uma sub-rede denominadamy-subnet-3
;--no-enable-master-authorized-networks
desativa redes autorizadas para o cluster;
--enable-ip-alias
torna o cluster nativo da VPC (não necessário para o Autopilot).
--enable-private-nodes
indica que os nós do cluster não têm endereços IP externos.
--master-ipv4-cidr 172.16.0.32/28
especifica um intervalo de endereços IP internos para o plano de controle (opcional para o Autopilot). Essa configuração é permanente para esse cluster e precisa ser exclusiva na VPC. O uso de endereços IP internos não RFC 1918 é compatível.
Adicionar regras de firewall para casos de uso específicos
Esta seção explica como adicionar uma regra de firewall a um cluster. Por padrão,
as regras de firewall restringem o plano de controle do cluster a apenas iniciar conexões TCP com os
nós e pods nas portas 443
(HTTPS) e 10250
(kubelet).
Para alguns recursos do Kubernetes, talvez seja necessário adicionar regras de firewall para permitir o acesso em outras portas. Não crie regras de firewall ou
regras de políticas hierárquicas de firewall
que tenham uma
prioridade mais alta do que as
regras de firewall criadas automaticamente.
Os recursos do Kubernetes que exigem regras de firewall adicionais incluem:
- Webhooks de admissão
- Servidores de API agregados
- Conversão de webhook
- Configuração de auditoria dinâmica
- Geralmente, qualquer API que tenha um campo ServiceReference requer regras de firewall adicionais.
Adicionar uma regra de firewall permite o tráfego do plano de controle do cluster para todos os itens a seguir:
- A porta especificada de cada nó (hostPort).
- a porta especificada de cada pod em execução nesses nós
- A porta especificada de cada Service em execução nesses nós
Para saber mais sobre as regras de firewall, consulte Regras de firewall na documentação do Cloud Load Balancing
Para adicionar uma regra de firewall a um cluster, você precisa registrar o bloco CIDR do plano de controle do cluster e o destino usado. Depois de registrá-la, é possível criar a regra.
Ver o bloco CIDR do plano de controle
Você precisa do bloco CIDR do plano de controle do cluster para adicionar uma regra de firewall.
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Na lista de clusters, clique no nome do cluster.
Na guia Detalhes, em Rede, anote o valor do campo Intervalo de endereços do plano de controle.
gcloud
Execute este comando:
gcloud container clusters describe CLUSTER_NAME
Substitua CLUSTER_NAME
pelo nome do
cluster.
Na saída do comando, anote o valor no campo masterIpv4CidrBlock.
Ver as regras de firewall atuais
É necessário especificar o destino (neste caso, os nós de destino) que as regras de firewall do cluster usam.
Console
Acesse a página de políticas de firewall no console do Google Cloud.
Em Filtrar tabela para regras de firewall da VPC, insira
gke-CLUSTER_NAME
.
Nos resultados, anote o valor no campo Destinos.
gcloud
Execute este comando:
gcloud compute firewall-rules list \
--filter 'name~^gke-CLUSTER_NAME' \
--format 'table(
name,
network,
direction,
sourceRanges.list():label=SRC_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
targetTags.list():label=TARGET_TAGS
)'
Na saída do comando, anote o valor no campo Destinos.
Para conferir as regras de firewall de uma VPC compartilhada, adicione a flag --project HOST_PROJECT_ID
ao comando.
Adicionar uma regra de firewall
Console
Acesse a página de políticas de firewall no console do Google Cloud.
Clique em add_boxCriar regra de firewall.
Em Nome, insira o nome desejado para a regra de firewall.
Na lista Rede, selecione a rede relevante.
Em Direção de tráfego, clique em Entrada.
Em Ação se houver correspondência, clique em Permitir.
Na lista Destinos, selecione Tags de destino especificadas.
Em Tags de destino, insira o valor de destino que você anotou anteriormente.
Na lista Filtro de origem, selecione Intervalos IPv4.
Em Intervalos de IPv4 de origem, insira o bloco CIDR do plano de controle do cluster.
Em Protocolos e portas, clique em Protocolos e portas especificados e marque a caixa de seleção do protocolo relevante (tcp ou udp) e insira o número da porta no campo do protocolo.
Clique em Criar.
gcloud
Execute este comando:
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--action ALLOW \
--direction INGRESS \
--source-ranges CONTROL_PLANE_RANGE \
--rules PROTOCOL:PORT \
--target-tags TARGET
Substitua:
FIREWALL_RULE_NAME
: o nome escolhido para a regra de firewall.CONTROL_PLANE_RANGE
: o intervalo de endereços IP do plano de controle de cluster (masterIpv4CidrBlock
) coletado anteriormente.PROTOCOL:PORT
: é a porta desejada e o protocolo dela,tcp
ouudp
.TARGET
: é o valor de destino (Targets
) coletado anteriormente.
Para adicionar uma regra de firewall a uma VPC compartilhada, adicione as seguintes flags ao comando:
--project HOST_PROJECT_ID
--network NETWORK_ID
Verificar se os nós não têm endereços IP externos
Depois de criar um cluster particular, verifique se os nós dele não têm endereços IP externos.
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Na lista de clusters, clique no nome do cluster.
Para clusters do Autopilot, na seção Noções básicas sobre clusters, verifique o campo Endpoint externo. O valor é Desativado.
Para clusters padrão, faça o seguinte:
- Na página Clusters, clique na guia Nós.
- Em Pools de nós, clique no nome do pool.
- Na página Detalhes do pool de nós, em Grupos de instâncias, clique no nome do grupo. Por exemplo, gke-private-cluster-0-default-pool-5c5add1f-grp`.
- Na lista de instâncias, confirme se elas não têm endereços IP externos.
gcloud
Execute este comando:
kubectl get nodes --output wide
A coluna EXTERNAL-IP
da resposta está vazia:
STATUS ... VERSION EXTERNAL-IP OS-IMAGE ...
Ready v.8.7-gke.1 Container-Optimized OS
Ready v1.8.7-gke.1 Container-Optimized OS
Ready v1.8.7-gke.1 Container-Optimized OS
Verificar a reutilização do peering de VPC no cluster
Todos os clusters particulares criados após 15 de janeiro de 2020 reutilizam as conexões do peering da rede VPC.
Para verificar se o cluster particular reutiliza as conexões de peering de rede VPC, use a gcloud CLI ou o console do Google Cloud.
Console
Verifique a linha de Peering de VPC na página de detalhes do cluster. Se o cluster estiver usando novamente as conexões de peering de VPC, a resposta começará com gke-n
.
Por exemplo, gke-n34a117b968dee3b2221-93c6-40af-peer
.
gcloud
gcloud container clusters describe CLUSTER_NAME \
--format="value(privateClusterConfig.peeringName)"
Se o cluster estiver usando novamente as conexões de peering de VPC, a resposta começará com gke-n
. Por exemplo, gke-n34a117b968dee3b2221-93c6-40af-peer
.
Configurações avançadas de cluster
Esta seção descreve algumas configurações avançadas que podem ser necessárias ao criar um cluster particular.
Como conceder aos nós privados acesso à Internet de saída
Para fornecer acesso de Internet de saída aos seus nós particulares, como para extrair imagens de um registro externo, use o Cloud NAT para criar e configurar um Cloud Router. O Cloud NAT permite que nós particulares estabeleçam conexões de saída pela Internet para enviar e receber pacotes.
O Cloud Router permite que todos os nós da região usem o Cloud NAT para todos os intervalos de IP de alias e principais. Ele também aloca automaticamente os endereços IP externos para o gateway NAT.
Para instruções sobre como criar e configurar um Cloud Router, consulte Criar uma configuração do Cloud NAT usando o Cloud Router na documentação do Cloud NAT.
Como criar um cluster privado em uma rede VPC compartilhada
Para saber como criar um cluster particular em uma rede VPC compartilhada, consulte Como criar um cluster particular em uma VPC compartilhada.
Como implantar um aplicativo de contêiner do Windows Server
Para saber como implantar um aplicativo de contêiner do Windows Server em um cluster com nós particulares, consulte a documentação do pool de nós do Windows.
Como acessar o endpoint privado do plano de controle globalmente
O endpoint particular do plano de controle é implementado por um balanceador de carga de rede interno na rede VPC do plano de controle. Clientes internos ou conectados por meio de túneis do Cloud VPN e anexos da VLAN do Cloud Interconnect podem acessar balanceadores de carga de rede internos.
Por padrão, esses clientes precisam estar localizados na mesma região do balanceador de carga.
Quando você ativa o acesso global do plano de controle, o balanceador de carga de rede interno é acessível globalmente: as VMs cliente e sistemas locais podem se conectar ao endpoint particular do plano de controle, sujeito à configuração de redes autorizadas, em qualquer região.
Para mais informações sobre os balanceadores de carga de rede internos e o acesso global, consulte Balanceadores de carga internos e redes conectadas.
Como ativar o acesso global do endpoint particular do plano de controle
Por padrão, o acesso global não é ativado para o endpoint privado do plano de controle quando você cria um cluster privado. Para ativar o acesso global ao plano de controle, use as seguintes ferramentas com base no modo de cluster:
- Para clusters padrão, use
Google Cloud CLI
ou o console do Google Cloud.
- Para clusters do Autopilot, use o recurso Terraform
google_container_cluster
.
Console
Para criar um novo cluster privado com acesso global do plano de controle ativado, execute as etapas a seguir:
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em
Criar e, na seção Standard ou Autopilot, clique em Configurar.Digite um Nome.
No painel de navegação, clique em Rede.
Selecione Cluster particular.
Marque a caixa de seleção Ativar acesso global do plano de controle.
Configure outros campos como quiser.
Clique em Criar.
Para ativar o acesso global do plano de controle a um cluster particular atual, execute as seguintes etapas:
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Ao lado do cluster que você quer editar, clique em more_vert Ações e, depois, em edit Editar.
Na seção Rede, ao lado de Acesso global ao plano de controle, clique em edit Editar.
Na caixa de diálogo Editar o acesso global ao plano de controle, marque a caixa de seleção Ativar o acesso global ao plano de controle.
Clique em Salvar alterações.
gcloud
Adicione a sinalização --enable-master-global-access
para criar um cluster particular com
acesso global ao endpoint particular do plano de controle ativado:
gcloud container clusters create CLUSTER_NAME \
--enable-private-nodes \
--enable-master-global-access
Também é possível ativar o acesso global ao endpoint particular do plano de controle para um cluster particular atual:
gcloud container clusters update CLUSTER_NAME \
--enable-master-global-access
Como verificar o acesso global do endpoint particular do plano de controle
Verifique se o acesso global ao endpoint privado do plano de controle está ativado executando o comando a seguir e observando a saída.
gcloud container clusters describe CLUSTER_NAME
A saída inclui uma seção privateClusterConfig
em que vê o status de masterGlobalAccessConfig
.
privateClusterConfig:
enablePrivateNodes: true
masterIpv4CidrBlock: 172.16.1.0/28
peeringName: gke-1921aee31283146cdde5-9bae-9cf1-peer
privateEndpoint: 172.16.1.2
publicEndpoint: 34.68.128.12
masterGlobalAccessConfig:
enabled: true
Como acessar o endpoint particular do plano de controle em outras redes
Quando você cria um
cluster particular do GKE
e desativa o endpoint público do plano de controle, é necessário administrá-lo
com ferramentas como kubectl
usando o endpoint particular do plano de controle. É possível
acessar o endpoint particular do plano de controle do cluster de outra rede,
incluindo o seguinte:
- uma rede local conectada à rede VPC do cluster usando túneis do Cloud VPN ou anexos da VLAN do Cloud Interconnect;
- Outra rede VPC conectada à rede VPC do cluster usando túneis do Cloud VPN
O diagrama a seguir mostra um caminho de roteamento entre uma rede no local e os nós do plano de controle do GKE:
Para permitir que sistemas em outra rede se conectem ao endpoint particular do plano de controle de um cluster, atenda aos seguintes requisitos:
Identifique e registre informações de rede relevantes para o cluster e o endpoint particular do plano de controle.
gcloud container clusters describe CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --format="yaml(network, privateClusterConfig)"
Substitua:
CLUSTER_NAME
: o nome do cluster.COMPUTE_LOCATION
: a região do Compute Engine para o cluster
Na saída do comando, identifique e registre as seguintes informações para usar nas próximas etapas:
network
: o nome ou URI da rede VPC do cluster.privateEndpoint
: o endereço IPv4 do endpoint particular do plano de controle ou o intervalo CIDR IPv4 delimitado (masterIpv4CidrBlock
).peeringName
: o nome da conexão de peering de rede VPC usada para conectar a rede VPC do cluster à rede VPC do plano de controle.
A saída será assim:
network: cluster-network privateClusterConfig: enablePrivateNodes: true masterGlobalAccessConfig: enabled: true masterIpv4CidrBlock: 172.16.1.0/28 peeringName: gke-1921aee31283146cdde5-9bae-9cf1-peer privateEndpoint: 172.16.1.2 publicEndpoint: 34.68.128.12
Considere ativar o acesso global do endpoint particular do plano de controle para permitir que os pacotes entrem em qualquer região na rede VPC do cluster. Ativar o acesso global do endpoint particular do plano de controle permite que você se conecte ao endpoint particular usando túneis do Cloud VPN ou anexos da VLAN do Cloud Interconnect localizados em qualquer região, não apenas na região do cluster.
Crie uma rota para o endereço IP
privateEndpoint
ou o intervalo de endereços IPmasterIpv4CidrBlock
da outra rede. Como o endereço IP particular do plano de controle sempre se encaixa nomasterIpv4CidrBlock
intervalo de endereços IPv4, criando uma rota para oprivateEndpoint
o endereço IP ou o intervalo incluído fornece um caminho para pacotes da outra rede para o endpoint particular do plano de controle se:A outra rede se conecta à rede VPC do cluster usando anexos da VLAN do Cloud Interconnect ou túneis do Cloud VPN que usam rotas dinâmicas (BGP): use uma rota personalizada divulgada do Cloud Router. Para mais informações, consulte Divulgar intervalos de endereços personalizados na documentação do Cloud Router.
A outra rede se conecta à rede VPC do cluster usando túneis da VPN clássica que não usam rotas dinâmicas: é preciso configurar uma rota estática na outra rede do Google Analytics.
Configure a rede VPC do cluster para exportar as rotas personalizadas na relação de peering com a rede VPC do plano de controle. Google Cloud sempre configura a rede VPC do plano de controle para importar rotas personalizadas da rede VPC do cluster. Essa etapa fornece um caminho para os pacotes do endpoint particular do plano de controle de volta para a outra rede.
Para ativar a exportação de rota personalizada a partir da rede VPC do cluster, use o seguinte comando:
gcloud compute networks peerings update PEERING_NAME \ --network=CLUSTER_VPC_NETWORK \ --export-custom-routes
Substitua:
PEERING_NAME
: o nome do peering que conecta a rede VPC do cluster à rede VPC do plano de controle.CLUSTER_VPC_NETWORK
: o nome ou URI da rede VPC do cluster;
Quando a exportação de rota personalizada é ativada para a VPC, criar rotas que se sobrepõem aos Google Cloud intervalos de IP pode interromper o cluster.
Para mais detalhes sobre como atualizar a troca de rotas para conexões de peering de rede VPC existentes, consulte Atualizar a conexão de peering.
As rotas personalizadas na rede VPC do cluster incluem rotas com destinos que são intervalos de endereços IP em outras redes, por exemplo, uma rede local. Para garantir que essas rotas se tornem efetivas como peering de rotas na rede VPC do plano de controle, consulte Destinos compatíveis com a outra rede.
Destinos compatíveis da outra rede
Os intervalos de endereços que a outra rede envia para os Cloud Routers na rede VPC do cluster precisam aderir às seguintes condições:
Embora a VPC do cluster possa aceitar uma rota padrão (
0.0.0.0/0
), a rede VPC do plano de controle sempre rejeita rotas padrão porque já tem uma rota padrão local. Se a outra rede enviar uma rota padrão para sua rede VPC, a outra rede também precisará enviar os destinos específicos dos sistemas que precisam se conectar ao endpoint particular do plano de controle. Para mais detalhes, consulte Ordem de roteamento.Se a rede VPC do plano de controle aceitar rotas que substituem efetivamente uma rota padrão, essas rotas quebrarão a conectividade com as APIs e os serviços doGoogle Cloud , interrompendo o plano de controle do cluster. Como exemplo representativo, a outra rede não pode divulgar rotas com destinos
0.0.0.0/1
e128.0.0.0/1
. Consulte o ponto anterior para obter uma alternativa.
Monitore os limites do Cloud Router, especialmente o número máximo de destinos exclusivos para rotas aprendidas.
Como proteger um cluster particular com o VPC Service Controls
Para proteger ainda mais os clusters privados do GKE, use o VPC Service Controls.
O VPC Service Controls protege ainda mais os clusters privados do GKE para reduzir o risco de exportação de dados. Ao usá-lo, é possível adicionar projetos a perímetros de serviço. Isso protege recursos e serviços contra solicitações que vêm de fora desses perímetros.
Para saber mais sobre perímetros de serviço, consulte Detalhes e configuração do perímetro de serviço.
Se você usar o Artifact Registry com seu cluster particular do GKE em um perímetro de serviço do VPC Service Controls, precisará configurar o roteamento para o IP virtual restrito para evitar a exfiltração de dados.
Limpar
Depois de concluir as tarefas nesta página, siga estas etapas para remover os recursos e evitar cobranças indesejadas na conta:
Excluir os clusters
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Selecione cada cluster.
Clique em deleteExcluir.
gcloud
gcloud container clusters delete -q private-cluster-0 private-cluster-1 private-cluster-2 private-cluster-3
Excluir a rede
Console
Acesse a página Redes VPC no Console do Google Cloud.
Na lista de redes, clique em
my-net-0
.Na página Detalhes da rede, clique em deleteExcluir rede VPC.
Na caixa de diálogo Excluir uma rede, clique em Excluir.
gcloud
gcloud compute networks delete my-net-0
A seguir
- Conheça configurações avançadas com clusters particulares.
- Aprenda a criar clusters nativos de VPC.
- Saiba mais sobre o peering de rede VPC.