Esta página fornece instruções para configurar políticas de rede de tráfego entre projetos no Google Distributed Cloud (GDC) air-gapped.
O tráfego entre projetos refere-se à comunicação entre serviços e cargas de trabalho de diferentes espaços de nomes de projetos, mas dentro da mesma organização.
Os serviços e as cargas de trabalho num projeto estão isolados dos serviços e das cargas de trabalho externos por predefinição. No entanto, os serviços e as cargas de trabalho de diferentes espaços de nomes de projetos e dentro da mesma organização podem comunicar entre si aplicando políticas de rede de tráfego entre projetos.
Por predefinição, estas políticas aplicam-se globalmente em todas as zonas. Para mais informações sobre os recursos globais num universo da GDC, consulte o artigo Vista geral de várias zonas.
Para aplicar o tráfego entre projetos numa única zona, consulte o artigo Crie uma política entre projetos ao nível da carga de trabalho de uma única zona.
Antes de começar
Para configurar políticas de rede de tráfego entre projetos, tem de ter o seguinte:
- As funções de identidade e acesso necessárias. Para gerir políticas de um projeto específico, precisa da função
project-networkpolicy-admin. Para ambientes de várias zonas onde tem de gerir políticas que abrangem todas as zonas, precisa da funçãoglobal-project-networkpolicy-admin. Para mais informações, consulte o artigo Prepare funções e acesso predefinidos. - Um projeto existente. Para mais informações, consulte Crie um projeto.
- Para as políticas de rede de saída, também tem de desativar a proteção contra a exfiltração de dados para o projeto.
Crie uma política entre projetos
Pode definir políticas de tráfego de entrada ou saída entre projetos para gerir a comunicação entre projetos.
Crie uma política entre projetos de entrada
Para permitir ligações aos serviços ou cargas de trabalho do seu projeto a partir de cargas de trabalho noutro projeto na sua organização, tem de configurar uma regra de firewall de entrada.
Esta política aplica-se a todas as zonas na sua organização.
Siga os passos seguintes para criar uma nova regra de firewall e permitir o tráfego de entrada de cargas de trabalho noutro projeto:
Consola
- Na consola do GDC do projeto que está a configurar, aceda a Rede > Firewall no menu de navegação para abrir a página Firewall.
- Clique em Criar na barra de ações para começar a criar uma nova regra de firewall.
Na página Detalhes da regra de firewall, preencha as seguintes informações:
- No campo Nome, introduza um nome válido para a regra de firewall.
- Na secção Direção do tráfego, selecione Entrada para permitir o tráfego de entrada de cargas de trabalho noutros projetos.
- Na secção Segmentar, selecione uma das seguintes opções:
- Todas as cargas de trabalho do utilizador: permite ligações às cargas de trabalho do projeto que está a configurar.
- Serviço: indica que esta regra de firewall tem como alvo um serviço específico no projeto que está a configurar.
- Se o seu alvo for um serviço de projeto, selecione o nome do serviço na lista de serviços disponíveis no menu pendente Serviço.
- Na secção De, selecione uma das seguintes duas opções:
- Todos os projetos: permite ligações de cargas de trabalho em todos os projetos da mesma organização.
- Outro projeto e Todas as cargas de trabalho do utilizador: permitem ligações de cargas de trabalho noutro projeto da mesma organização.
- Se quiser transferir cargas de trabalho apenas de outro projeto, selecione um projeto ao qual tenha acesso na lista de projetos no menu pendente ID do projeto.
- Se o seu destino for todas as cargas de trabalho do utilizador, selecione uma das seguintes opções na secção Protocolos e portas:
- Permitir tudo: permitir ligações através de qualquer protocolo ou porta.
- Protocolos e portas especificados: permitem ligações que usam apenas os protocolos e as portas que especificar nos campos correspondentes para a regra de firewall de entrada.
Na página Detalhes da regra de firewall, clique em Criar.
Permitiu ligações de outras cargas de trabalho do projeto na mesma organização. Depois de criar a regra de firewall, esta fica visível numa tabela na página Firewall.
Para criar uma política de entrada recíproca na outra direção, visite a consola do GDC do outro projeto e repita o processo.
API
A seguinte política permite que as cargas de trabalho no projeto PROJECT_1 permitam ligações de cargas de trabalho no projeto PROJECT_2, bem como o tráfego de retorno para os mesmos fluxos. Aplique a política:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_1
name: allow-inbound-traffic-from-PROJECT_2
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT_2
EOF
Substitua GLOBAL_API_SERVER pelo caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais.
Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.
O comando anterior permite que PROJECT_2 aceda a PROJECT_1, mas não permite ligações iniciadas a partir de PROJECT_1 para PROJECT_2. Para
este último, precisa de uma política recíproca no projeto
PROJECT_2. Aplicar a política
de reciprocidade:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_2
name: allow-inbound-traffic-from-PROJECT_1
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT_1
EOF
As ligações são agora permitidas de e para
PROJECT_1 e PROJECT_2.
Crie uma política entre projetos de saída
Quando concede uma política de tráfego entre projetos de entrada para permitir que cargas de trabalho num projeto permitam ligações de cargas de trabalho noutro projeto, esta ação também concede o tráfego de retorno para os mesmos fluxos. Por conseguinte, não precisa de uma política de rede de tráfego entre projetos de saída no projeto original.
Siga os passos seguintes para criar uma nova regra de firewall e permitir o tráfego de saída de cargas de trabalho num projeto:
Consola
- Na consola do GDC do projeto que está a configurar, aceda a Rede > Firewall no menu de navegação para abrir a página Firewall.
- Na barra de ações, clique em Criar para criar uma nova regra de firewall.
Na página Detalhes da regra de firewall, preencha as seguintes informações:
- No campo Nome, introduza um nome válido para a regra de firewall.
- Na secção Direção do tráfego, selecione Saída para indicar que esta regra de firewall está a controlar o tráfego de saída.
- Na secção Segmentar, selecione uma das seguintes opções:
- Todas as cargas de trabalho do utilizador: permitem ligações das cargas de trabalho do projeto que está a configurar.
- Serviço: indica que esta regra de firewall tem como alvo um serviço específico no projeto que está a configurar.
- Se o seu alvo for um serviço de projeto, selecione o nome do serviço na lista de serviços disponíveis no menu pendente Serviço.
- Na secção Para, selecione uma das seguintes opções:
- Todos os projetos: permitem ligações a cargas de trabalho em todos os projetos da mesma organização.
- Outro projeto e Todas as cargas de trabalho do utilizador: permitem ligações a cargas de trabalho noutro projeto da mesma organização.
- Se quiser transferir cargas de trabalho apenas para outro projeto, selecione um projeto ao qual tenha acesso na lista de projetos no menu pendente ID do projeto.
- Se o seu destino for todas as cargas de trabalho do utilizador, selecione uma das seguintes opções na secção Protocolos e portas:
- Permitir tudo: permitir ligações através de qualquer protocolo ou porta.
- Protocolos e portas especificados: permitem ligações que usam apenas os protocolos e as portas que especificar nos campos correspondentes para a regra da firewall de saída.
Na página Detalhes da regra de firewall, clique em Criar.
Permitiu ligações a outras cargas de trabalho do projeto na mesma organização. Depois de criar a regra de firewall, esta fica visível numa tabela na página Firewall.
Para criar uma política de saída recíproca na outra direção, visite a consola do GDC do outro projeto e repita o processo.
API
A seguinte política permite que as cargas de trabalho no projeto PROJECT_1 permitam ligações a cargas de trabalho no projeto PROJECT_2. Aplique a política:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_1
name: allow-outbound-traffic-to-PROJECT_2
spec:
policyType: Egress
subject:
subjectType: UserWorkload
egress:
- to:
- projectSelector:
projects:
matchNames:
- PROJECT_2
EOF
Substitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.PROJECT_1: o nome do projeto que está a receber o tráfego.PROJECT_2: o nome do projeto de onde o tráfego está a ser gerado.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a receber o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
O comando anterior permite ligações de saída de PROJECT_1 para PROJECT_2, mas não permite ligações de PROJECT_2 para PROJECT_1.
Para este último, precisa de uma política recíproca no projeto PROJECT_2. Aplicar a política
de reciprocidade:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_2
name: allow-outbound-traffic-to-PROJECT_1
spec:
policyType: Egress
subject:
subjectType: UserWorkload
egress:
- to:
- projectSelector:
projects:
matchNames:
- PROJECT_1
EOF
Crie uma política entre projetos ao nível da carga de trabalho de saída
Para criar uma política entre projetos ao nível da carga de trabalho de saída, 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_2 name: allow-cross-project-outbound-traffic-from-project-2-to-project-1 spec: policyType: Egress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - PROJECT_1 workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.PROJECT_1: o nome do projeto que está a receber o tráfego.PROJECT_2: o nome do projeto de onde o tráfego está a ser gerado.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a enviar o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
Crie uma política entre projetos ao nível da carga de trabalho de zona única
As políticas de rede ao nível da carga de trabalho podem aplicar o PNP ao longo de uma única zona. Podem ser adicionadas etiquetas específicas a cargas de trabalho numa única zona, o que lhe permite controlar a comunicação entre cargas de trabalho individuais num projeto ou em projetos diferentes para essa zona.
Crie uma política entre projetos ao nível da carga de trabalho de entrada de zona única
Para criar uma política entre projetos ao 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_1 name: allow-single-zone-cross-project-inbound-traffic-from-project-2-to-project-1 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_2 workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE ZONE_PEER_LABEL_KEY: ZONE_PEER_LABEL_VALUE EOFSubstitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.PROJECT_1: o nome do projeto que está a receber o tráfego.PROJECT_2: o nome do projeto de onde o tráfego está a ser gerado.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a receber o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.ZONE_SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar a zona do assunto. Por exemplo,zoneouregion.ZONE_SUBJECT_LABEL_VALUE: o valor associado aoZONE_SUBJECT_LABEL_KEY. Especifica a zona que está a receber o tráfego. Por exemplo, seZONE_SUBJECT_LABEL_KEYforzoneeZONE_SUBJECT_LABEL_VALUEforus-central1-a, as cargas de trabalho com a etiquetazone: us-central1-aestão a receber o tráfego.ZONE_PEER_LABEL_KEY: a chave da etiqueta usada para selecionar a zona associada ao par.ZONE_PEER_LABEL_VALUE: o valor associado aoZONE_PEER_LABEL_KEY.
Crie uma política entre projetos ao nível da carga de trabalho de saída de uma única zona
Para criar uma política entre projetos ao nível da carga de trabalho de saída 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_2 name: allow-single-zone-cross-project-outbound-traffic-from-project-2-to-project-1 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_1 workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE ZONE_PEER_LABEL_KEY: ZONE_PEER_LABEL_VALUE EOFSubstitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.PROJECT_1: o nome do projeto que está a receber o tráfego.PROJECT_2: o nome do projeto de onde o tráfego está a ser gerado.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a enviar o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.ZONE_SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar a zona do assunto. Por exemplo,zoneouregion.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 a etiquetazone: us-central1-aestão a enviar o tráfego.ZONE_PEER_LABEL_KEY: a chave da etiqueta usada para selecionar a zona associada ao par.ZONE_PEER_LABEL_VALUE: o valor associado aoZONE_PEER_LABEL_KEY.
Crie uma política entre projetos para clusters padrão
Os clusters padrão são clusters Kubernetes ao nível do projeto que oferecem maior controlo, flexibilidade e autorizações de administrador do cluster.
Crie uma política entre projetos de entrada para clusters padrão
Para criar uma política intercluster de entrada entre 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_1_PROJECT name: allow-ingress-from-standard-cluster-2-to-standard-cluster-1 spec: policyType: Ingress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_1_NAME namespaces: matchLabels: kubernetes.io/metadata.name: SUBJECT_NAMESPACE workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - STANDARD_CLUSTER_2_PROJECT workloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_2_NAME namespaces: matchLabels: kubernetes.io/metadata.name: PEER_NAMESPACE workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.STANDARD_CLUSTER_1_PROJECT: o nome do projeto de cluster padrão que está a receber o tráfego.STANDARD_CLUSTER_2_PROJECT: o nome do projeto de cluster padrão de onde o tráfego está a chegar.STANDARD_CLUSTER_1_NAME: o nome do cluster padrão que está a receber o tráfego.STANDARD_CLUSTER_2_NAME: o nome do cluster padrão de onde o tráfego está a chegar.SUBJECT_NAMESPACE: o espaço de nomes do assunto no cluster padrão.PEER_NAMESPACE: o espaço de nomes de pares no cluster padrão.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a receber o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
Para criar uma política intercluster de entrada entre clusters padrão e partilhados, 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: SHARED_CLUSTER_PROJECT name: allow-ingress-from-standard-cluster-to-shared-cluster spec: policyType: Ingress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: 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 o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.STANDARD_CLUSTER_PROJECT: o nome do projeto de cluster padrão.SHARED_CLUSTER_PROJECT: o nome do projeto de cluster partilhado.STANDARD_CLUSTER_NAME: o nome do cluster padrão.PEER_NAMESPACE: o espaço de nomes de pares no cluster padrão.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a receber o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
Crie uma política entre projetos de saída para clusters padrão
Para criar uma política intercluster de saída entre 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_2_PROJECT name: allow-egress-from-standard-cluster-2-to-standard-cluster-1 spec: policyType: Egress subject: subjectType: UserWorkload userWorkloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_2_NAME namespaces: matchLabels: kubernetes.io/metadata.name: SUBJECT_NAMESPACE workloads: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - STANDARD_CLUSTER_1_PROJECT workloadSelector: labelSelector: clusters: matchLabels: kubernetes.io/metadata.name: STANDARD_CLUSTER_1_NAME namespaces: matchLabels: kubernetes.io/metadata.name: PEER_NAMESPACE workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.STANDARD_CLUSTER_1_PROJECT: o nome do projeto de cluster padrão que está a receber o tráfego.STANDARD_CLUSTER_2_PROJECT: o nome do projeto de cluster padrão de onde o tráfego está a chegar.STANDARD_CLUSTER_1_NAME: o nome do cluster padrão que está a receber o tráfego.STANDARD_CLUSTER_2_NAME: o nome do cluster padrão de onde o tráfego está a chegar.SUBJECT_NAMESPACE: o espaço de nomes do assunto no cluster padrão.PEER_NAMESPACE: o espaço de nomes de pares no cluster padrão.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a enviar o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.
Para criar uma política de saída entre clusters padrão e partilhados, 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-standard-cluster-to-shared-cluster 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: - SHARED_CLUSTER_PROJECT workloadSelector: labelSelector: workloads: matchLabels: PEER_LABEL_KEY: PEER_LABEL_VALUE EOFSubstitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API global. Para mais informações, consulte o artigo Servidores de API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Iniciar sessão para ver detalhes.STANDARD_CLUSTER_PROJECT: o nome do projeto de cluster padrão.SHARED_CLUSTER_PROJECT: o nome do projeto de cluster partilhado.STANDARD_CLUSTER_NAME: o nome do cluster padrão.SUBJECT_NAMESPACE: o espaço de nomes do assunto no cluster padrão.SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo,app,tierourole.SUBJECT_LABEL_VALUE: o valor associado aoSUBJECT_LABEL_KEY. Por exemplo, seSUBJECT_LABEL_KEYforappeSUBJECT_LABEL_VALUEforbackend, as cargas de trabalho com a etiquetaapp: backendestão a enviar o tráfego.PEER_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho pares.PEER_LABEL_VALUE: o valor associado aoPEER_LABEL_KEY.