En esta página, se proporcionan instrucciones para configurar políticas de red de tráfico entre proyectos en Google Distributed Cloud (GDC) aislado.
El tráfico entre proyectos se refiere a la comunicación entre servicios y cargas de trabajo de diferentes espacios de nombres de proyectos, pero dentro de la misma organización.
De forma predeterminada, los servicios y las cargas de trabajo de un proyecto están aislados de los servicios y las cargas de trabajo externos. Sin embargo, los servicios y las cargas de trabajo de diferentes espacios de nombres del proyecto y dentro de la misma organización pueden comunicarse entre sí aplicando políticas de red de tráfico entre proyectos.
De forma predeterminada, estas políticas se aplican a nivel global en todas las zonas. Para obtener más información sobre los recursos globales en un universo de GDC, consulta la descripción general de varias zonas.
Para aplicar el tráfico entre proyectos dentro de una sola zona, consulta Crea una política entre proyectos a nivel de la carga de trabajo para una sola zona.
Antes de comenzar
Para configurar políticas de red de tráfico entre proyectos, debes tener lo siguiente:
- Los roles de identidad y acceso necesarios Para administrar las políticas de un proyecto específico, necesitas el rol de
project-networkpolicy-admin. Para los entornos de varias zonas en los que necesitas administrar políticas que abarcan todas las zonas, necesitas el rol deglobal-project-networkpolicy-admin. Para obtener más información, consulta Cómo preparar roles y acceso predefinidos. - Un proyecto existente Para obtener más información, consulta Cómo crear un proyecto.
- En el caso de las políticas de red de salida, también debes inhabilitar la protección contra el robo de datos para el proyecto.
Crea una política entre proyectos
Puedes definir políticas de tráfico de entrada o salida entre proyectos para administrar la comunicación entre ellos.
Crea una política de entrada entre proyectos
Para permitir conexiones a las cargas de trabajo o los servicios de tu proyecto desde las cargas de trabajo de otro proyecto dentro de tu organización, debes configurar una regla de firewall de entrada.
Esta política se aplica a todas las zonas de tu organización.
Sigue estos pasos para crear una regla de firewall nueva y permitir el tráfico entrante de cargas de trabajo en otro proyecto:
Console
- En la consola de GDC del proyecto que estás configurando, ve a Networking > Firewall en el menú de navegación para abrir la página Firewall.
- Haz clic en Crear en la barra de acciones para comenzar a crear una nueva regla de firewall.
En la página Detalles de la regla de firewall, completa la siguiente información:
- En el campo Nombre, ingresa un nombre válido para tu regla de firewall.
- En la sección Dirección del tráfico, selecciona Entrada para permitir el tráfico entrante de cargas de trabajo en otros proyectos.
- En la sección Objetivo, selecciona una de las siguientes opciones:
- Todas las cargas de trabajo del usuario: Permite conexiones a las cargas de trabajo del proyecto que estás configurando.
- Servicio: Indica que esta regla de firewall se dirige a un servicio específico dentro del proyecto que estás configurando.
- Si tu destino es un servicio del proyecto, selecciona el nombre del servicio en la lista de servicios disponibles en el menú desplegable Servicio.
- En la sección De, selecciona una de las siguientes dos opciones:
- Todos los proyectos: Permite conexiones desde cargas de trabajo en todos los proyectos de la misma organización.
- Otro proyecto y Todas las cargas de trabajo del usuario: Permiten conexiones desde cargas de trabajo en otro proyecto de la misma organización.
- Si solo quieres transferir cargas de trabajo desde otro proyecto, selecciona un proyecto al que puedas acceder desde la lista de proyectos en el menú desplegable ID del proyecto.
- Si tu objetivo son todas las cargas de trabajo del usuario, selecciona una de las siguientes opciones en la sección Protocolos y puertos:
- Permitir todo: Permite conexiones con cualquier protocolo o puerto.
- Protocolos y puertos especificados: Permiten conexiones solo con los protocolos y puertos que especificas en los campos correspondientes de la regla de firewall de entrada.
En la página Detalles de la regla de firewall, haz clic en Crear.
Ahora permitiste las conexiones de otras cargas de trabajo del proyecto dentro de la misma organización. Después de crear la regla de firewall, esta se mostrará en una tabla en la página Firewall.
Para crear una política de entrada recíproca en la otra dirección, visita la consola de GDC del otro proyecto y repite el proceso.
API
La siguiente política permite que las cargas de trabajo en el proyecto PROJECT_1 permitan conexiones de cargas de trabajo en el proyecto PROJECT_2, así como el tráfico de retorno para los mismos flujos. Aplica la 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
Reemplaza GLOBAL_API_SERVER por la ruta de acceso del archivo kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales.
Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Accede para obtener más detalles.
El comando anterior permite que PROJECT_2 vaya a PROJECT_1, pero no permite las conexiones iniciadas desde PROJECT_1 a PROJECT_2. En el segundo caso, necesitas una política recíproca en el proyecto PROJECT_2. Aplica la política de reciprocidad:
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
Ahora se permiten las conexiones hacia y desde PROJECT_1 y PROJECT_2.
Crea una política de salida entre proyectos
Cuando otorgas una política de tráfico de entrada entre proyectos para permitir que las cargas de trabajo de un proyecto permitan conexiones de cargas de trabajo en otro proyecto, esta acción también otorga el tráfico de retorno para los mismos flujos. Por lo tanto, no necesitas una política de red de tráfico entre proyectos de salida en el proyecto original.
Sigue estos pasos para crear una regla de firewall nueva y permitir el tráfico saliente de las cargas de trabajo en un proyecto:
Console
- En la consola de GDC del proyecto que estás configurando, ve a Networking > Firewall en el menú de navegación para abrir la página Firewall.
- En la barra de acciones, haz clic en Crear para crear una regla de firewall nueva.
En la página Detalles de la regla de firewall, completa la siguiente información:
- En el campo Nombre, ingresa un nombre válido para tu regla de firewall.
- En la sección Dirección del tráfico, selecciona Salida para indicar que esta regla de firewall controla el tráfico saliente.
- En la sección Objetivo, selecciona una de las siguientes opciones:
- Todas las cargas de trabajo del usuario: Permite conexiones desde las cargas de trabajo del proyecto que estás configurando.
- Servicio: Indica que esta regla de firewall se dirige a un servicio específico dentro del proyecto que estás configurando.
- Si tu destino es un servicio del proyecto, selecciona el nombre del servicio en la lista de servicios disponibles en el menú desplegable Servicio.
- En la sección Para, selecciona una de las siguientes dos opciones:
- Todos los proyectos: Permite conexiones a cargas de trabajo en todos los proyectos de la misma organización.
- Otro proyecto y Todas las cargas de trabajo del usuario: Permiten conexiones a cargas de trabajo en otro proyecto de la misma organización.
- Si deseas transferir cargas de trabajo solo a otro proyecto, selecciona un proyecto al que puedas acceder desde la lista de proyectos en el menú desplegable ID del proyecto.
- Si tu objetivo son todas las cargas de trabajo del usuario, selecciona una de las siguientes opciones en la sección Protocolos y puertos:
- Permitir todo: Permite conexiones con cualquier protocolo o puerto.
- Protocolos y puertos especificados: Permiten conexiones solo con los protocolos y puertos que especificas en los campos correspondientes de la regla de firewall de salida.
En la página Detalles de la regla de firewall, haz clic en Crear.
Ahora permitiste las conexiones a otras cargas de trabajo del proyecto dentro de la misma organización. Después de crear la regla de firewall, esta se mostrará en una tabla en la página Firewall.
Para crear una política de salida recíproca en la otra dirección, visita la consola de GDC del otro proyecto y repite el proceso.
API
La siguiente política permite que las cargas de trabajo del proyecto PROJECT_1 permitan conexiones a las cargas de trabajo del proyecto PROJECT_2. Aplica la 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
Reemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.PROJECT_1: Es el nombre del proyecto que recibe el tráfico.PROJECT_2: Es el nombre del proyecto desde el que proviene el tráfico.
El comando anterior permite conexiones salientes desde PROJECT_1 a PROJECT_2, pero no permite conexiones desde PROJECT_2 a PROJECT_1.
En el segundo caso, necesitas una política recíproca en el proyecto PROJECT_2. Aplica la política de reciprocidad:
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
Crea una política entre proyectos a nivel de la carga de trabajo de salida
Para crear una política entre proyectos a nivel de la carga de trabajo de salida, crea y aplica el siguiente 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 EOFReemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.PROJECT_1: Es el nombre del proyecto que recibe el tráfico.PROJECT_2: Es el nombre del proyecto desde el que proviene el tráfico.SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo del asunto. Por ejemplo,app,tierorole. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.SUBJECT_LABEL_VALUE: Es el valor asociado con elSUBJECT_LABEL_KEY. Por ejemplo, siSUBJECT_LABEL_KEYesappySUBJECT_LABEL_VALUEesbackend, las cargas de trabajo con la etiquetaapp: backendenvían el tráfico.PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo de los pares. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.PEER_LABEL_VALUE: Es el valor asociado con elPEER_LABEL_KEY.
Crea una política entre proyectos a nivel de la carga de trabajo de una sola zona
Las políticas de red a nivel de la carga de trabajo pueden aplicar PNP a lo largo de una sola zona. Se pueden agregar etiquetas específicas a las cargas de trabajo dentro de una sola zona, lo que te permite controlar la comunicación entre cargas de trabajo individuales dentro de un proyecto o en diferentes proyectos para esa zona.
Crea una política entre proyectos a nivel de la carga de trabajo de entrada de una sola zona
Para crear una política entre proyectos a nivel de la carga de trabajo de entrada de una sola zona, crea y aplica el siguiente 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 EOFReemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.PROJECT_1: Es el nombre del proyecto que recibe el tráfico.PROJECT_2: Es el nombre del proyecto desde el que proviene el tráfico.SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo del asunto. Por ejemplo,app,tierorole. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.SUBJECT_LABEL_VALUE: Es el valor asociado con elSUBJECT_LABEL_KEY. Por ejemplo, siSUBJECT_LABEL_KEYesappySUBJECT_LABEL_VALUEesbackend, las cargas de trabajo con la etiquetaapp: backendreciben el tráfico.PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo de los pares. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.PEER_LABEL_VALUE: Es el valor asociado con elPEER_LABEL_KEY.ZONE_SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar la zona del sujeto. Por ejemplo,zoneoregion. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.ZONE_SUBJECT_LABEL_VALUE: Es el valor asociado con elZONE_SUBJECT_LABEL_KEY. Especifica qué zona recibe el tráfico. Por ejemplo, siZONE_SUBJECT_LABEL_KEYeszoneyZONE_SUBJECT_LABEL_VALUEesus-central1-a, las cargas de trabajo con la etiquetazone: us-central1-areciben el tráfico.ZONE_PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar la zona asociada con el par. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.ZONE_PEER_LABEL_VALUE: Es el valor asociado con elZONE_PEER_LABEL_KEY.
Crea una política entre proyectos a nivel de la carga de trabajo de salida de una sola zona
Para crear una política entre proyectos a nivel de la carga de trabajo de salida de una sola zona, crea y aplica el siguiente 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 EOFReemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.PROJECT_1: Es el nombre del proyecto que recibe el tráfico.PROJECT_2: Es el nombre del proyecto desde el que proviene el tráfico.SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo del asunto. Por ejemplo,app,tierorole. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.SUBJECT_LABEL_VALUE: Es el valor asociado con elSUBJECT_LABEL_KEY. Por ejemplo, siSUBJECT_LABEL_KEYesappySUBJECT_LABEL_VALUEesbackend, las cargas de trabajo con la etiquetaapp: backendenvían el tráfico.PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo de los pares. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.PEER_LABEL_VALUE: Es el valor asociado con elPEER_LABEL_KEY.ZONE_SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar la zona del sujeto. Por ejemplo,zoneoregion. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.ZONE_SUBJECT_LABEL_VALUE: Es el valor asociado con elZONE_SUBJECT_LABEL_KEY. Por ejemplo, siZONE_SUBJECT_LABEL_KEYeszoneyZONE_SUBJECT_LABEL_VALUEesus-central1-a, las cargas de trabajo con la etiquetazone: us-central1-aenvían el tráfico.ZONE_PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar la zona asociada con el par. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.ZONE_PEER_LABEL_VALUE: Es el valor asociado con elZONE_PEER_LABEL_KEY.
Crea una política entre proyectos para clústeres estándar
Los clústeres estándar son clústeres de Kubernetes con alcance a nivel del proyecto que proporcionan mayor control, flexibilidad y permisos de administrador del clúster.
Crea una política de entrada entre proyectos para clústeres estándar
Para crear una política de entrada entre clústeres estándar, crea y aplica el siguiente 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 EOFReemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.STANDARD_CLUSTER_1_PROJECT: Es el nombre del proyecto del clúster estándar que recibe el tráfico.STANDARD_CLUSTER_2_PROJECT: Es el nombre del proyecto del clúster estándar desde el que proviene el tráfico.STANDARD_CLUSTER_1_NAME: Es el nombre del clúster estándar que recibe el tráfico.STANDARD_CLUSTER_2_NAME: Es el nombre del clúster estándar desde el que proviene el tráfico.SUBJECT_NAMESPACE: Es el espacio de nombres del sujeto en el clúster estándar.PEER_NAMESPACE: Es el espacio de nombres del par en el clúster estándar.SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo del asunto. Por ejemplo,app,tierorole. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.SUBJECT_LABEL_VALUE: Es el valor asociado con elSUBJECT_LABEL_KEY. Por ejemplo, siSUBJECT_LABEL_KEYesappySUBJECT_LABEL_VALUEesbackend, las cargas de trabajo con la etiquetaapp: backendreciben el tráfico.PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo de los pares. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.PEER_LABEL_VALUE: Es el valor asociado con elPEER_LABEL_KEY.
Para crear una política de ingreso entre clústeres entre clústeres estándar y compartidos, crea y aplica el siguiente 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 EOFReemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.STANDARD_CLUSTER_PROJECT: Es el nombre del proyecto del clúster estándar.SHARED_CLUSTER_PROJECT: Es el nombre del proyecto del clúster compartido.STANDARD_CLUSTER_NAME: Es el nombre del clúster estándar.PEER_NAMESPACE: Es el espacio de nombres del par en el clúster estándar.SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo del asunto. Por ejemplo,app,tierorole. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.SUBJECT_LABEL_VALUE: Es el valor asociado con elSUBJECT_LABEL_KEY. Por ejemplo, siSUBJECT_LABEL_KEYesappySUBJECT_LABEL_VALUEesbackend, las cargas de trabajo con la etiquetaapp: backendreciben el tráfico.PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo de los pares. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.PEER_LABEL_VALUE: Es el valor asociado con elPEER_LABEL_KEY.
Crea una política de salida entre proyectos para clústeres estándar
Para crear una política de salida entre clústeres estándar, crea y aplica el siguiente 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 EOFReemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.STANDARD_CLUSTER_1_PROJECT: Es el nombre del proyecto del clúster estándar que recibe el tráfico.STANDARD_CLUSTER_2_PROJECT: Es el nombre del proyecto del clúster estándar desde el que proviene el tráfico.STANDARD_CLUSTER_1_NAME: Es el nombre del clúster estándar que recibe el tráfico.STANDARD_CLUSTER_2_NAME: Es el nombre del clúster estándar desde el que proviene el tráfico.SUBJECT_NAMESPACE: Es el espacio de nombres del sujeto en el clúster estándar.PEER_NAMESPACE: Es el espacio de nombres del par en el clúster estándar.SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo del asunto. Por ejemplo,app,tierorole. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.SUBJECT_LABEL_VALUE: Es el valor asociado con elSUBJECT_LABEL_KEY. Por ejemplo, siSUBJECT_LABEL_KEYesappySUBJECT_LABEL_VALUEesbackend, las cargas de trabajo con la etiquetaapp: backendenvían el tráfico.PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo de los pares. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.PEER_LABEL_VALUE: Es el valor asociado con elPEER_LABEL_KEY.
Para crear una política de salida entre clústeres compartidos y estándar, crea y aplica el siguiente 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 EOFReemplaza lo siguiente:
GLOBAL_API_SERVER: Es la ruta de acceso de kubeconfig del servidor de la API global. Para obtener más información, consulta Servidores de API globales y zonales. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Acceder para obtener más detalles.STANDARD_CLUSTER_PROJECT: Es el nombre del proyecto del clúster estándar.SHARED_CLUSTER_PROJECT: Es el nombre del proyecto del clúster compartido.STANDARD_CLUSTER_NAME: Es el nombre del clúster estándar.SUBJECT_NAMESPACE: Es el espacio de nombres del sujeto en el clúster estándar.SUBJECT_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo del asunto. Por ejemplo,app,tierorole. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.SUBJECT_LABEL_VALUE: Es el valor asociado con elSUBJECT_LABEL_KEY. Por ejemplo, siSUBJECT_LABEL_KEYesappySUBJECT_LABEL_VALUEesbackend, las cargas de trabajo con la etiquetaapp: backendenvían el tráfico.PEER_LABEL_KEY: Es la clave de la etiqueta que se usa para seleccionar las cargas de trabajo de los pares. Si haces referencia a etiquetas de VM, debes agregar un prefijo a esta clave. Consulta la advertencia que sigue a esta lista.PEER_LABEL_VALUE: Es el valor asociado con elPEER_LABEL_KEY.