Nesta página, fornecemos instruções para configurar políticas de rede de tráfego intraprojeto no Google Distributed Cloud (GDC) com isolamento físico.
As políticas de rede do projeto definem regras de entrada ou saída. É possível definir políticas que permitem a comunicação dentro de projetos, entre projetos e com endereços IP externo.
Por padrão, essas políticas são aplicadas globalmente em todas as zonas. Para mais informações sobre recursos globais em um universo do GDC, consulte Visão geral de várias zonas.
Se for necessário aplicar o tráfego intraprojeto em uma única zona, consulte Criar uma política intraprojeto no nível da carga de trabalho de uma única zona.
Antes de começar
Para configurar políticas de rede de tráfego intraprojeto, você precisa ter o seguinte:
- Os papéis necessários de identidade e acesso. Para gerenciar políticas de um projeto específico, você precisa da função
project-networkpolicy-admin. Para ambientes multizona em que é necessário gerenciar políticas que abrangem todas as zonas, você precisa da funçãoglobal-project-networkpolicy-admin. Para mais informações, consulte Preparar papéis predefinidos e acesso. - Um projeto atual. Para mais informações, consulte Criar um projeto.
Criar uma política entre projetos
Para o tráfego em um projeto, o GDC aplica uma política de rede predefinida do projeto, a política intraprojeto, a cada projeto por padrão. Por padrão, as cargas de trabalho em um namespace de projeto podem se comunicar entre si sem expor nada a recursos externos.
Por padrão, não há política de saída, então o tráfego de saída é permitido para todo o tráfego intraprojeto. No entanto, quando você define uma única política de saída, apenas o tráfego especificado por ela é permitido.
Criar uma política de entrada entre projetos
Ao criar um projeto, você cria implicitamente um recurso ProjectNetworkPolicy base padrão que permite a comunicação entre projetos. Essa política
permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.
Você pode remover a política padrão, mas isso vai negar a comunicação entre projetos para
todos os serviços e cargas de trabalho no projeto. Para remover a política, use o comando kubectl delete:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Para adicionar a política padrão novamente, aplique o seguinte manifesto:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT
name: base-policy-allow-intra-project-traffic
spec:
policyType: Ingress
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT
EOF
Substitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT: o nome do projeto.
Criar uma política de saída entre projetos
Quando você desativa a prevenção de exfiltração de dados
e aplica uma política de saída do ProjectNetworkPolicy ao projeto, como
impedir o acesso a um recurso externo, use a seguinte política obrigatória para permitir
o tráfego de saída entre projetos:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT
name: allow-intra-project-outbound-traffic
spec:
policyType: Egress
egress:
- to:
- projectSelector:
projects:
matchNames:
- PROJECT
EOF
Substitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT: o nome do projeto.
Criar uma política intraprojeto no nível da carga de trabalho
As políticas de rede no nível da carga de trabalho oferecem controle granular sobre a comunicação entre cargas de trabalho individuais em um projeto. Essa granularidade permite um controle mais rígido do acesso à rede, melhorando a segurança e o uso de recursos.
Criar uma política de entrada no nível da carga de trabalho intraprojeto
Ao criar um projeto, você cria implicitamente um recurso ProjectNetworkPolicy básico padrão que permite a comunicação entre todas as cargas de trabalho dentro do projeto. Essa política
permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.
Para criar uma política de entrada no nível da carga de trabalho entre projetos, primeiro é necessário excluir a política de base padrão. Caso contrário, pode ocorrer um comportamento inesperado.
Para excluir a política de base padrão, execute o seguinte comando:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECTPara criar uma política de entrada no nível da carga de trabalho intraprojeto, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: allow-workload-level-intra-project-inbound-traffic spec: policyType: Ingress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - PROJECT workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT: o nome do projeto.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendvão receber o tráfego.PEER_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho do mesmo nível. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
Criar uma política de saída no nível da carga de trabalho entre projetos
Para criar uma política de saída no nível da carga de trabalho entre projetos, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: allow-workload-level-intra-project-outbound-traffic spec: policyType: Egress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: workloads matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - PROJECT workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT: o nome do projeto.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendestarão enviando o tráfego.PEER_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho do mesmo nível. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
Criar uma política intraprojeto no nível da carga de trabalho de uma única zona
As políticas de rede no nível da carga de trabalho podem aplicar o PNP em uma única zona. Rótulos específicos podem ser adicionados a cargas de trabalho em uma única zona, permitindo controlar a comunicação entre cargas de trabalho individuais em um projeto ou em projetos diferentes para essa zona.
Criar uma política de entrada de zona única no nível da carga de trabalho intraprojeto
Ao criar um projeto, você cria implicitamente um recurso ProjectNetworkPolicy básico padrão que permite a comunicação entre todas as cargas de trabalho dentro do projeto. Essa política
permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.
Para criar uma política de entrada de zona única no nível da carga de trabalho entre projetos, primeiro exclua a política básica padrão. Caso contrário, pode ocorrer um comportamento inesperado.
Para excluir a política de base padrão, execute o seguinte comando:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECTPara criar uma política de rede de tráfego intraprojeto no nível da carga de trabalho de entrada de uma única zona, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: allow-single-zone-intra-project-inbound-traffic spec: policyType: Ingress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - PROJECT workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE ZONE_PEER_LABEL_KEY: ZONE_PEER_LABEL_VALUE EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT: o nome do projeto.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendvão receber o tráfego.PEER_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho do mesmo nível. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.ZONE_SUBJECT_LABEL_KEY: a chave do rótulo usada para selecionar a zona de assunto. Por exemplo,zoneouregion. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.ZONE_SUBJECT_LABEL_VALUE: o valor associado aoZONE_SUBJECT_LABEL_KEY. Por exemplo, seZONE_SUBJECT_LABEL_KEYforzoneeZONE_SUBJECT_LABEL_VALUEforus-central1-a, as cargas de trabalho com o rótulozone: us-central1-avão receber o tráfego.ZONE_PEER_LABEL_KEY: a chave do rótulo usado para selecionar a zona associada ao peer. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.ZONE_PEER_LABEL_VALUE: o valor associado aoZONE_PEER_LABEL_KEY.
Criar uma política de saída de zona única no nível da carga de trabalho intraprojeto
Para criar uma política de saída no nível da carga de trabalho intraprojeto de uma única zona, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: allow-single-zone-intra-project-outbound-traffic spec: policyType: Egress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - PROJECT workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE ZONE_PEER_LABEL_KEY: ZONE_PEER_LABEL_VALUE EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT: o nome do projeto.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendvão receber o tráfego.PEER_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho do mesmo nível. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.ZONE_SUBJECT_LABEL_KEY: a chave do rótulo usada para selecionar a zona de assunto. Por exemplo,zoneouregion. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.ZONE_SUBJECT_LABEL_VALUE: o valor associado aoZONE_SUBJECT_LABEL_KEY. Por exemplo, seZONE_SUBJECT_LABEL_KEYforzoneeZONE_SUBJECT_LABEL_VALUEforus-central1-a, as cargas de trabalho com o rótulozone: us-central1-avão receber o tráfego.ZONE_PEER_LABEL_KEY: a chave do rótulo usado para selecionar a zona associada ao peer. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.ZONE_PEER_LABEL_VALUE: o valor associado aoZONE_PEER_LABEL_KEY.
Criar uma política intraprojeto para clusters padrão
Os clusters padrão são clusters do Kubernetes com escopo de projeto que oferecem mais controle, flexibilidade e permissões de administrador do cluster. Quando você cria uma política intraprojeto, ela é herdada pelos clusters padrão por padrão. Essa política permite toda a comunicação nos clusters padrão que residem no mesmo projeto.
Criar uma política de entrada intraprojeto para clusters padrão
Ao criar um projeto, você cria implicitamente um recurso ProjectNetworkPolicy básico padrão que permite a comunicação entre todas as cargas de trabalho dentro do projeto. Essa política permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto e também a comunicação entre todas as cargas de trabalho nos clusters padrão dentro do projeto.
Para criar uma política de entrada intraprojeto para clusters padrão, primeiro exclua a política de base padrão. Caso contrário, pode ocorrer um comportamento inesperado.
Para excluir a política de base padrão, execute o seguinte comando:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECTPara adicionar a política padrão novamente, aplique o seguinte manifesto:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: base-policy-allow-intra-project-traffic spec: policyType: Ingress ingress: - from: - projectSelector: projects: matchNames: - PROJECT EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT: o nome do projeto.
Para criar uma política de pod para pod intra-cluster de entrada em clusters padrão, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: STANDARD_CLUSTER_PROJECT name: allow-ingress-from-intra-cluster-traffic spec: policyType: Ingress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_NAME namespaces: matchLabels: kubernetes.io/metadata.name: SUBJECT_NAMESPACE workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - STANDARD_CLUSTER_PROJECT workloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_NAME namespaces: matchLabels: kubernetes.io/metadata.name: PEER_NAMESPACE workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.STANDARD_CLUSTER_PROJECT: o nome do projeto do cluster padrão.STANDARD_CLUSTER_NAME: o nome do cluster padrão.SUBJECT_NAMESPACE: o namespace do assunto no cluster padrão.PEER_NAMESPACE: o namespace do peer no cluster padrão.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendvão receber o tráfego.PEER_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho do mesmo nível. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
Para criar uma política de nó para pod de entrada intracluster em clusters padrão, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: STANDARD_CLUSTER_PROJECT name: allow-ingress-from-node-to-pod-traffic spec: policyType: Ingress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_NAME namespaces: matchLabels: kubernetes.io/metadata.name: SUBJECT_NAMESPACE workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ingress: - from: - ipBlocks: - cidr: NODE_IP ports: - protocol: TCP port: PORT EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.STANDARD_CLUSTER_PROJECT: o nome do projeto do cluster padrão.STANDARD_CLUSTER_NAME: o nome do cluster padrão.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendvão receber o tráfego.NODE_IP: o endereço IP do nó.PORT: a porta na carga de trabalho em questão em que o tráfego é permitido.
Criar uma política de saída intraprojeto para clusters padrão
Para criar uma política de saída de pod para pod intra-cluster em clusters padrão, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: STANDARD_CLUSTER_PROJECT name: allow-egress-to-intra-cluster-traffic spec: policyType: Egress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_NAME namespaces: matchLabels: kubernetes.io/metadata.name: SUBJECT_NAMESPACE workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - STANDARD_CLUSTER_PROJECT workloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_NAME namespaces: matchLabels: kubernetes.io/metadata.name: PEER_NAMESPACE workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.STANDARD_CLUSTER_PROJECT: o nome do projeto do cluster padrão.STANDARD_CLUSTER_NAME: o nome do cluster padrão.SUBJECT_NAMESPACE: o namespace do assunto no cluster padrão.PEER_NAMESPACE: o namespace do peer no cluster padrão.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendestarão enviando o tráfego.PEER_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho do mesmo nível. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
- Para criar uma política de saída de pod para nó intra-cluster em clusters padrão, crie e aplique o seguinte recurso personalizado:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: STANDARD_CLUSTER_PROJECT name: allow-egress-from-pod-to-node-traffic spec: policyType: Egress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_NAME namespaces: matchLabels: kubernetes.io/metadata.name: SUBJECT_NAMESPACE workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE egress: - to: - ipBlocks: - cidr: NODE_IP ports: - protocol: TCP port: PORT EOFSubstitua:
GLOBAL_API_SERVER: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.STANDARD_CLUSTER_PROJECT: o nome do projeto do cluster padrão.STANDARD_CLUSTER_NAME: o nome do cluster padrão.SUBJECT_LABEL_KEY: a chave do rótulo usado para selecionar as cargas de trabalho em questão. Por exemplo,app,tierourole. Se você estiver referenciando rótulos de VM, adicione um prefixo a essa chave. Consulte o aviso abaixo desta lista.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com o rótuloapp: backendestarão enviando o tráfego.NODE_IP: o endereço IP do nó.PORT: a porta no IP do nó em que o tráfego é permitido.