Esta página descreve como desativar as regras de firewall da VPC de entrada que o GKE cria para os serviços LoadBalancer.
A desativação destas regras de firewall criadas automaticamente para serviços LoadBalancer pode ser útil nas seguintes situações:
- Se tiver vários serviços LoadBalancer em dois ou mais clusters do GKE, a gestão das regras de firewall por si pode ser mais eficiente. Por exemplo, em vez de o GKE criar uma regra de firewall exclusiva para cada serviço LoadBalancer, as regras de firewall criadas manualmente podem permitir tráfego de entrada para vários LoadBalancerServices.
- Pode usar políticas de firewall hierárquicas, políticas de firewall de rede global ou políticas de firewall de rede regional em vez de regras de firewall da VPC. As regras nestas políticas de firewall suportam ações adicionais, segmentações mais flexíveis> e funcionalidades como geolocalização, informações sobre ameaças, grupos de endereços, e FQDNs.
Para desativar as regras de firewall criadas automaticamente para serviços LoadBalancer, tem de especificar a flag --disable-l4-lb-firewall-reconciliation
quando criar ou atualizar um cluster. A flag --disable-l4-lb-firewall-reconciliation
não afeta outras regras de firewall da VPC criadas automaticamente, como as que facilitam a comunicação entre nós ou as que permitem verificações de estado dos seus serviços.
Requisitos
- Para usar regras de firewall geridas pelo utilizador para serviços LoadBalancer, os seus clusters do GKE têm de usar a versão 1.31.3-gke.105600 ou posterior.
Limitações
O GKE suporta a desativação da criação automática de regras de firewall para estes tipos de serviços LoadBalancer:
- Serviços de balanceamento de carga interno que usam a subdivisão do GKE
- Serviços LoadBalancer externos baseados em serviços de back-end
Não pode desativar a criação automática de regras de firewall para estes tipos de serviços LoadBalancer:
- Serviços Internal LoadBalancer que não usam a subdivisão do GKE
- Serviços LoadBalancer externos baseados no grupo de destino
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
Estratégias para a gestão manual de regras de firewall
Antes de desativar a criação automática de regras de firewall da VPC para serviços LoadBalancer no seu cluster do GKE, trabalhe com um administrador de segurança para desenvolver uma estratégia de configuração manual das regras de firewall.
Decida que tipo de política de firewall usar: uma política de firewall hierárquica, uma política de firewall de rede global ou uma política de firewall de rede regional. Para ver os passos para criar uma política de firewall, consulte:
- Use regras e políticas de firewall hierárquicas
- Use políticas e regras de firewall de rede globais
- Use políticas e regras de firewall de rede regionais
Também pode usar regras de firewall de VPC, que não usam nenhuma política.
As regras de firewall criadas manualmente têm de ser regras de autorização de entrada porque a regra de firewall de recusa de entrada implícita proíbe o tráfego de entrada. Quando desativa a criação automática de regras de firewall da VPC, o tráfego de entrada não chega aos seus nós, a menos que tenha criado regras de firewall de permissão de entrada que correspondam ao tráfego dos seus serviços LoadBalancer.
Consoante os parâmetros da regra de firewall, uma única regra de firewall de autorização de entrada pode aplicar-se a um ou mais serviços LoadBalancer. Para cada regra de firewall de autorização de entrada criada, defina os seguintes parâmetros:
Parâmetro de destino: certifique-se de que a regra de firewall inclui, pelo menos, todos os nós do cluster que contém os serviços LoadBalancer. Os alvos suportados dependem do tipo de política de firewall em que uma regra se encontra ou se está a usar uma regra de firewall da VPC. Para obter informações sobre o parâmetro de destino de uma regra numa política de firewall, consulte Destinos.
Protocolos e portas: inclua todos os protocolos e portas de destino usados pelos serviços LoadBalancer aos quais a regra de firewall tem de se aplicar.
Parâmetro de destino: pode usar uma das seguintes estratégias para o parâmetro de destino:
- Inclua os endereços IP de todos os serviços LoadBalancer aos quais a regra da firewall se tem de aplicar no parâmetro de destino. Para encontrar o endereço IP de um serviço LoadBalancer, use o seguinte comando:
kubectl get svc LOADBALANCER_NAME \ -n NAMESPACE_NAME \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}
- Pode optar por omitir o parâmetro de destino. Quando o parâmetro de destino é omitido, o parâmetro de destino define os destinos implicitamente. Para mais informações, consulte Alvos e endereços IP para regras de entrada.
Parâmetro de origem: especifique as origens (por exemplo, endereços IP) usadas pelos clientes que precisam de se ligar aos serviços de balanceamento de carga aos quais a regra de firewall tem de ser aplicada.
Para ver os passos para criar regras de firewall, consulte:
Para garantir que as regras de firewall criadas manualmente estão a funcionar corretamente, execute um teste de conetividade do Network Intelligence Center (NIC). Ao executar o teste de conetividade:
- Defina o destino para o endereço IP do serviço LoadBalancer.
- Defina a origem como o endereço IP do cliente.
Para mais informações, consulte o artigo Resolva problemas de conetividade.
Desative a criação de regras de firewall da VPC para os seus serviços LoadBalancer
Esta secção descreve os passos para desativar a criação automática de regras de firewall da VPC para serviços LoadBalancer.
Crie um novo cluster do GKE com a criação de regras de firewall da VPC desativada
Para desativar as regras da firewall de VPC criadas automaticamente para serviços LoadBalancer num cluster recém-criado, crie o cluster com a flag
--disable-l4-lb-firewall-reconciliation
:Autopilot:
gcloud container clusters create-auto CLUSTER_NAME \ --disable-l4-lb-firewall-reconciliation \ --cluster-version=VERSION
Padrão:
gcloud container clusters create CLUSTER_NAME \ --disable-l4-lb-firewall-reconciliation \ --enable-l4-ilb-subsetting \ --cluster-version=VERSION
Substitua o seguinte:
CLUSTER_NAME
: o nome do novo cluster.VERSION
: a versão do GKE.
Crie um serviço LoadBalancer externo ou interno:
Verifique se o GKE não cria uma regra de firewall de permissão de entrada para o serviço LoadBalancer. (As regras da firewall de autorização de entrada criadas automaticamente têm nomes no seguinte formato:
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]
).O seguinte comando devolve uma lista de regras de firewall que contêm
k8s2
:gcloud compute firewall-rules list --format="value(name)" | grep "k8s2"
A resposta deve devolver apenas a regra de firewall de verificação de estado no formato
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw
se o parâmetroexternalTrafficPolicy
estiver definido comoLocal
. Usa a porta TCP definida pelo parâmetrospec.healthCheckNodePort
. Se não for especificado, o plano de controlo do Kubernetes atribui uma porta de verificação de funcionamento a partir do intervalo de portas do nó.k8s2-rkdld6go-default-ilb-svc-dluvsefq-fw default INGRESS 1000 tcp:30868 False
Se o parâmetro
externalTrafficPolicy
estiver definido comoCluster
, é devolvida a seguinte regra de firewall de verificação do estado.k8s2-rkdld6go-l4-shared-hc-fw default INGRESS 1000 tcp:10256 False
Para mais informações sobre as regras de firewall geradas para os serviços do GKE, consulte o artigo Regras de firewall criadas automaticamente.
Atualize um cluster do GKE existente para desativar a criação de regras de firewall da VPC
Antes de desativar a criação de regras de firewall de VPC, tenha em atenção os seguintes pontos sobre a atualização de um cluster existente:
- Quando atualiza um cluster existente para desativar a criação de regras de firewall de VPC, o GKE não elimina as regras de firewall existentes que o GKE criou automaticamente para os seus serviços LoadBalancer.
- O GKE deixa de atualizar as regras existentes e não cria novas para os novos serviços LoadBalancer.
- Para voltar a ativar a criação de regras de firewall da VPC, pode usar a flag
--enable-l4-lb-firewall-reconciliation
com o comandogcloud_name container clusters update
.
Para desativar a criação automática de regras de firewall num cluster existente:
Atualize o cluster para desativar a criação e a gestão automáticas de regras de firewall para serviços LoadBalancer:
gcloud container clusters update CLUSTER_NAME \ --disable-l4-lb-firewall-reconciliation \ --cluster-version=supported_version
Substitua o seguinte:
CLUSTER_NAME
: o nome do novo cluster.VERSION
: a versão do GKE.
Crie um serviço LoadBalancer externo ou interno:
Verifique se o GKE não cria uma regra de firewall de permissão de entrada para o serviço LoadBalancer. (As regras da firewall de entrada de autorização criadas automaticamente têm nomes no seguinte formato:
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]
).O seguinte comando devolve uma lista de regras de firewall que contêm
k8s2
:gcloud compute firewall-rules list --format="value(name)" | grep "k8s2"
A resposta deve devolver apenas a regra de firewall de verificação de estado no formato
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw
se o parâmetroexternalTrafficPolicy
estiver definido comoLocal
. Usa a porta TCP definida pelo parâmetrospec.healthCheckNodePort
. Se não for especificado, o plano de controlo do Kubernetes atribui uma porta de verificação de funcionamento a partir do intervalo de portas do nó.k8s2-rkdld6go-default-ilb-svc-dluvsefq-fw default INGRESS 1000 tcp:30868 False
Se o parâmetro
externalTrafficPolicy
estiver definido comoCluster
, é devolvida a seguinte regra de firewall de verificação do estado.k8s2-rkdld6go-l4-shared-hc-fw default INGRESS 1000 tcp:10256 False
Para mais informações sobre as regras de firewall geradas para os serviços do GKE, consulte o artigo Regras de firewall criadas automaticamente.
Resolva problemas de conetividade
Os exemplos seguintes ilustram como usar os testes de conetividade do Network Intelligence Center para testar a conetividade a um serviço LoadBalancer externo:cluster:
Network Intelligence Center:
- Na Google Cloud consola, aceda ao Network Intelligence Center e inicie um novo teste de conectividade.
- No menu pendente, escolha Qualquer endereço IP público externo como origem e selecione o equilibrador de carga no destino.
- Execute novamente o teste de conetividade.
A CLI gcloud:
O seguinte comando de exemplo cria e executa um teste com o endereço IP público da sua estação de trabalho local como origem e o endereço IP externo do equilibrador de carga externo como destino:
gcloud network-management connectivity-tests create TEST_NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ --source-network-type=NON_GCP_NETWORK \ --destination-ip-address=$(kubectl get svc LOADBALANCER_NAME -o jsonpath='{.status.loadBalancer.ingress[0].ip}') \ --destination-port=$(kubectl get svc LOADBALANCER_NAME -o jsonpath='{.spec.ports[0].targetPort}') \ --destination-network=projects/PROJECT_ID/global/networks/NETWORK_NAME
Substitua o seguinte:
TEST_NAME
: um nome para o teste de conetividade.SOURCE_IP_ADDRESS
: O endereço IP do sistema que tem de se ligar ao serviço LoadBalancer externo. Por exemploLOADBALANCER_NAME
: o nome do serviço LoadBalancer externo.PROJECT_ID
: O ID do projeto que contém a rede VPC do cluster. Se o cluster usar uma rede de VPC partilhada, use o ID do projeto anfitrião.NETWORK_NAME
: o nome da rede VPC do cluster.
Verifique os resultados do teste:
gcloud network-management connectivity-tests describe TEST_NAME
O que se segue?
- Saiba mais acerca das políticas de firewall.
- Leia o artigo Regras da firewall criadas automaticamente para ver uma vista geral das regras da firewall de VPC de autorização de entrada que o GKE cria automaticamente por predefinição.
- Leia os parâmetros do serviço LoadBalancer para ver uma descrição dos parâmetros dos serviços LoadBalancer.
- Saiba mais sobre outras regras de firewall pré-preenchidas em Google Cloud.
- Saiba mais sobre como criar regras de firewall em projetos que usam a VPC partilhada.