Crie políticas de rede intraprojeto

Esta página fornece instruções para configurar políticas de rede de tráfego entre projetos no Google Distributed Cloud (GDC) air-gapped.

As políticas de rede do projeto definem regras de entrada ou saída. Pode definir políticas que permitam a comunicação nos projetos, entre projetos e com endereços IP externos.

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.

Se for necessária a aplicação de políticas de 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 intralocal, 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 multizona onde tem de gerir políticas que abrangem todas as zonas, precisa da função global-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.

Crie uma política entre projetos

Para o tráfego num projeto, a GDC aplica uma política de rede do projeto predefinida, a política intraprojeto, a cada projeto por predefinição. Por predefinição, as cargas de trabalho num espaço de nomes do projeto têm a capacidade de comunicar entre si sem expor nada a recursos externos.

Por predefinição, não existe nenhuma política de saída, pelo que o tráfego de saída é permitido para todo o tráfego intraprojeto. No entanto, quando define uma única política de saída, apenas o tráfego especificado pela política é permitido.

Crie uma política de entrada entre projetos

Quando cria um projeto, cria implicitamente um recurso base ProjectNetworkPolicy predefinido que permite a comunicação entre projetos. Esta política permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.

Pode remover a política predefinida, mas tenha em atenção que esta remoção resulta na recusa da 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

Pode voltar a adicionar a política predefinida aplicando 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 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: o nome do seu projeto.

Crie uma política de saída entre projetos

Quando desativa a prevenção de exfiltração de dados e aplica uma política de saída 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 no projeto:

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 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: o nome do seu projeto.

Crie uma política intraprojeto ao nível da carga de trabalho

As políticas de rede ao nível da carga de trabalho oferecem um controlo detalhado sobre a comunicação entre cargas de trabalho individuais num projeto. Esta granularidade permite um controlo mais rigoroso do acesso à rede, melhorando a segurança e a utilização de recursos.

Crie uma política de nível de carga de trabalho de entrada intraprojeto

Quando cria um projeto, cria implicitamente um recurso base ProjectNetworkPolicy predefinido que permite a comunicação no projeto entre todas as cargas de trabalho. Esta política permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.

Para criar uma política intraprojeto ao nível da carga de trabalho de entrada, tem de eliminar primeiro a política base predefinida. Caso contrário, pode ocorrer um comportamento inesperado.

  1. Para eliminar a política base predefinida, execute o seguinte comando:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. Para criar uma política intraprojeto ao nível da carga de trabalho de entrada, 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
    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: o nome do seu projeto.
    • SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo, app, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estã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 ao PEER_LABEL_KEY.

Crie uma política de nível de carga de trabalho de saída intraprojeto

  • Para criar uma política intraprojeto 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
      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
    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: o nome do seu projeto.
    • SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo, app, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estã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 ao PEER_LABEL_KEY.

Crie uma política intraprojeto 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 intraprojeto ao nível da carga de trabalho de entrada de zona única

Quando cria um projeto, cria implicitamente um recurso base ProjectNetworkPolicy predefinido que permite a comunicação no projeto entre todas as cargas de trabalho. Esta política permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.

Para criar uma política intraprojeto ao nível da carga de trabalho de entrada de uma única zona, tem de eliminar primeiro a política base predefinida. Caso contrário, pode ocorrer um comportamento inesperado.

  1. Para eliminar a política base predefinida, execute o seguinte comando:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. Para criar uma política de rede de tráfego intralocal de nível de carga de trabalho de entrada de zona única, 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
    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: o nome do seu projeto.
    • SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo, app, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estã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 ao PEER_LABEL_KEY.
    • ZONE_SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar a zona do assunto. Por exemplo, zone ou region.
    • ZONE_SUBJECT_LABEL_VALUE: o valor associado ao ZONE_SUBJECT_LABEL_KEY. Por exemplo, se ZONE_SUBJECT_LABEL_KEY for zone e ZONE_SUBJECT_LABEL_VALUE for us-central1-a, as cargas de trabalho com a etiqueta zone: us-central1-a estã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 ao ZONE_PEER_LABEL_KEY.

Crie uma política intraprojeto ao nível da carga de trabalho de saída de uma única zona

  • Para criar uma política intraprojeto 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
      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
    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: o nome do seu projeto.
    • SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo, app, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estã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 ao PEER_LABEL_KEY.
    • ZONE_SUBJECT_LABEL_KEY: a chave da etiqueta usada para selecionar a zona do assunto. Por exemplo, zone ou region.
    • ZONE_SUBJECT_LABEL_VALUE: o valor associado ao ZONE_SUBJECT_LABEL_KEY. Por exemplo, se ZONE_SUBJECT_LABEL_KEY for zone e ZONE_SUBJECT_LABEL_VALUE for us-central1-a, as cargas de trabalho com a etiqueta zone: us-central1-a estã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 ao ZONE_PEER_LABEL_KEY.

Crie uma política intraprojeto 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. Quando cria uma política intralocal, esta é herdada pelos clusters padrão por predefinição. Esta política permite toda a comunicação nos clusters padrão que residem no mesmo projeto.

Crie uma política de entrada no projeto para clusters padrão

Quando cria um projeto, cria implicitamente um recurso base ProjectNetworkPolicy predefinido que permite a comunicação no projeto entre todas as cargas de trabalho. Esta política permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto e também permite a comunicação intra-cluster entre todas as cargas de trabalho nos clusters padrão no projeto.

Para criar uma política de entrada no projeto para clusters padrão, a política base predefinida tem de ser eliminada primeiro. Caso contrário, pode ocorrer um comportamento inesperado.

  1. Para eliminar a política base predefinida, execute o seguinte comando:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    

    Pode voltar a adicionar a política predefinida aplicando 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 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: o nome do seu projeto.
  2. Para criar uma política de entrada de pod a 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-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
    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.
    • STANDARD_CLUSTER_PROJECT: o nome do projeto do cluster padrão.
    • STANDARD_CLUSTER_NAME: o nome do cluster padrão.
    • 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, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estã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 ao PEER_LABEL_KEY.
  3. Para criar uma política de nó para pod de entrada 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-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
    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.
    • 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 da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo, app, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estão a receber o tráfego.
    • NODE_IP: o endereço IP do nó.
    • PORT: a porta na carga de trabalho em questão onde o tráfego é permitido.

Crie uma política de saída entre projetos para clusters padrão

  1. 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
    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.
    • STANDARD_CLUSTER_PROJECT: o nome do projeto do cluster padrão.
    • STANDARD_CLUSTER_NAME: o nome do cluster padrão.
    • 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, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estã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 ao PEER_LABEL_KEY.
    1. 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
    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.
    • 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 da etiqueta usada para selecionar as cargas de trabalho do assunto. Por exemplo, app, tier ou role.
    • SUBJECT_LABEL_VALUE: o valor associado ao SUBJECT_LABEL_KEY. Por exemplo, se SUBJECT_LABEL_KEY for app e SUBJECT_LABEL_VALUE for backend, as cargas de trabalho com a etiqueta app: backend estão a enviar o tráfego.
    • NODE_IP: o endereço IP do nó.
    • PORT: a porta no IP do nó para a qual o tráfego é permitido.