Membuat kebijakan jaringan intra-project

Halaman ini memberikan petunjuk untuk mengonfigurasi kebijakan jaringan traffic intra-project di Google Distributed Cloud (GDC) air-gapped.

Kebijakan jaringan project menentukan aturan masuk atau keluar. Anda dapat menentukan kebijakan yang mengizinkan komunikasi dalam project, antar-project, dan ke alamat IP eksternal.

Secara default, kebijakan ini berlaku secara global di semua zona. Untuk mengetahui informasi selengkapnya tentang resource global di semesta GDC, lihat Ringkasan multi-zona.

Jika penegakan traffic intra-project diperlukan dalam satu zona, lihat Membuat kebijakan intra-project tingkat workload zona tunggal.

Sebelum memulai

Untuk mengonfigurasi kebijakan jaringan traffic intra-project, Anda harus memiliki hal berikut:

  • Peran identitas dan akses yang diperlukan. Untuk mengelola kebijakan project tertentu, Anda memerlukan peran project-networkpolicy-admin. Untuk lingkungan multi-zona tempat Anda perlu mengelola kebijakan yang mencakup semua zona, Anda memerlukan peran global-project-networkpolicy-admin. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan peran dan akses yang telah ditetapkan.
  • Project yang ada. Untuk mengetahui informasi selengkapnya, lihat Membuat project.

Membuat kebijakan intra-project

Untuk traffic dalam project, GDC menerapkan kebijakan jaringan project yang telah ditentukan sebelumnya, yaitu kebijakan intra-project, ke setiap project secara default. Secara default, workload di namespace project dapat berkomunikasi satu sama lain tanpa mengekspos apa pun ke resource eksternal.

Secara default, tidak ada kebijakan egress, sehingga traffic keluar diizinkan untuk semua traffic intra-project. Namun, saat Anda menetapkan satu kebijakan keluar, hanya traffic yang ditentukan kebijakan yang diizinkan.

Membuat kebijakan ingress intra-project

Saat membuat project, Anda secara implisit membuat resource ProjectNetworkPolicy dasar default yang memungkinkan komunikasi dalam project. Kebijakan ini mengizinkan traffic masuk dari workload lain dalam project yang sama.

Anda dapat menghapus kebijakan default, tetapi perlu diketahui bahwa penghapusan ini akan menolak komunikasi dalam project untuk semua layanan dan beban kerja dalam project. Untuk menghapus kebijakan, gunakan perintah kubectl delete:

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

Anda dapat menambahkan kembali kebijakan default dengan menerapkan manifes berikut:

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

Ganti kode berikut:

  • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
  • PROJECT: nama project Anda.

Membuat kebijakan intra-project egress

Saat Anda menonaktifkan pencegahan eksfiltrasi data dan menerapkan kebijakan keluar ProjectNetworkPolicy ke project, seperti mencegah akses ke resource eksternal, gunakan kebijakan wajib berikut untuk mengizinkan traffic keluar intra-project:

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

Ganti kode berikut:

  • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
  • PROJECT: nama project Anda.

Membuat kebijakan intra-project tingkat workload

Kebijakan jaringan tingkat workload menawarkan kontrol terperinci atas komunikasi antar-workload dalam suatu project. Perincian ini memungkinkan kontrol akses jaringan yang lebih ketat, sehingga meningkatkan keamanan dan penggunaan resource.

Membuat kebijakan intra-project tingkat workload ingress

Saat membuat project, Anda secara implisit membuat resource dasar ProjectNetworkPolicy default yang memungkinkan komunikasi dalam project di antara semua beban kerja. Kebijakan ini mengizinkan traffic masuk dari workload lain dalam project yang sama.

Untuk membuat kebijakan intra-project tingkat beban kerja ingress, kebijakan dasar default harus dihapus terlebih dahulu. Jika tidak, perilaku yang tidak terduga dapat terjadi.

  1. Untuk menghapus kebijakan dasar default, jalankan perintah berikut:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. Untuk membuat kebijakan intra-project tingkat workload ingress, buat dan terapkan resource kustom berikut:

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • PROJECT: nama project Anda.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka beban kerja dengan label app: backend akan menerima traffic.
    • PEER_LABEL_KEY: kunci label yang digunakan untuk memilih workload peer.
    • PEER_LABEL_VALUE: nilai yang terkait dengan PEER_LABEL_KEY.

Membuat kebijakan intra-project tingkat workload egress

  • Untuk membuat kebijakan intra-project tingkat beban kerja egress, buat dan terapkan resource kustom berikut:

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • PROJECT: nama project Anda.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka workload dengan label app: backend akan mengirimkan traffic.
    • PEER_LABEL_KEY: kunci label yang digunakan untuk memilih workload peer.
    • PEER_LABEL_VALUE: nilai yang terkait dengan PEER_LABEL_KEY.

Membuat kebijakan intra-project tingkat beban kerja zona tunggal

Kebijakan jaringan tingkat beban kerja dapat menerapkan PNP di satu zona. Label tertentu dapat ditambahkan ke workload dalam satu zona, sehingga Anda dapat mengontrol komunikasi antara workload individual dalam satu project atau di project yang berbeda untuk zona tersebut.

Membuat kebijakan intra-project tingkat workload ingress zona tunggal

Saat membuat project, Anda secara implisit membuat resource dasar ProjectNetworkPolicy default yang memungkinkan komunikasi dalam project di antara semua beban kerja. Kebijakan ini mengizinkan traffic masuk dari workload lain dalam project yang sama.

Untuk membuat kebijakan intra-project tingkat beban kerja ingress zona tunggal, kebijakan dasar default harus dihapus terlebih dahulu. Jika tidak, perilaku yang tidak terduga dapat terjadi.

  1. Untuk menghapus kebijakan dasar default, jalankan perintah berikut:

    kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
    
  2. Untuk membuat kebijakan jaringan traffic intra-project tingkat beban kerja ingress zona tunggal, buat dan terapkan resource kustom berikut:

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • PROJECT: nama project Anda.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka beban kerja dengan label app: backend akan menerima traffic.
    • PEER_LABEL_KEY: kunci label yang digunakan untuk memilih workload peer.
    • PEER_LABEL_VALUE: nilai yang terkait dengan PEER_LABEL_KEY.
    • ZONE_SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih zona subjek. Misalnya, zone, atau region.
    • ZONE_SUBJECT_LABEL_VALUE: nilai yang terkait dengan ZONE_SUBJECT_LABEL_KEY. Misalnya, jika ZONE_SUBJECT_LABEL_KEY adalah zone, dan ZONE_SUBJECT_LABEL_VALUE adalah us-central1-a, maka beban kerja dengan label zone: us-central1-a akan menerima traffic.
    • ZONE_PEER_LABEL_KEY: kunci label yang digunakan untuk memilih zona yang terkait dengan peer.
    • ZONE_PEER_LABEL_VALUE: nilai yang terkait dengan ZONE_PEER_LABEL_KEY.

Membuat kebijakan intra-project level workload traffic keluar satu zona

  • Untuk membuat kebijakan intra-project tingkat beban kerja egress satu zona, buat dan terapkan resource kustom berikut:

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • PROJECT: nama project Anda.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka beban kerja dengan label app: backend akan menerima traffic.
    • PEER_LABEL_KEY: kunci label yang digunakan untuk memilih workload peer.
    • PEER_LABEL_VALUE: nilai yang terkait dengan PEER_LABEL_KEY.
    • ZONE_SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih zona subjek. Misalnya, zone, atau region.
    • ZONE_SUBJECT_LABEL_VALUE: nilai yang terkait dengan ZONE_SUBJECT_LABEL_KEY. Misalnya, jika ZONE_SUBJECT_LABEL_KEY adalah zone, dan ZONE_SUBJECT_LABEL_VALUE adalah us-central1-a, maka beban kerja dengan label zone: us-central1-a akan menerima traffic.
    • ZONE_PEER_LABEL_KEY: kunci label yang digunakan untuk memilih zona yang terkait dengan peer.
    • ZONE_PEER_LABEL_VALUE: nilai yang terkait dengan ZONE_PEER_LABEL_KEY.

Membuat kebijakan intra-project untuk cluster standar

Cluster Standar adalah cluster Kubernetes yang tercakup dalam project yang memberikan kontrol, fleksibilitas, dan izin admin cluster yang lebih besar. Saat Anda membuat kebijakan intra-project, kebijakan tersebut diwarisi oleh cluster standar secara default. Kebijakan ini mengizinkan semua komunikasi dalam cluster standar yang berada dalam project yang sama.

Membuat kebijakan intra-project ingress untuk cluster standar

Saat membuat project, Anda secara implisit membuat resource dasar ProjectNetworkPolicy default yang memungkinkan komunikasi dalam project di antara semua beban kerja. Kebijakan ini mengizinkan traffic masuk dari workload lain dalam project yang sama dan juga mengizinkan komunikasi intra-cluster antara semua workload dalam cluster standar dalam project.

Untuk membuat kebijakan intra-project ingress untuk cluster standar, kebijakan dasar default harus dihapus terlebih dahulu. Jika tidak, perilaku yang tidak terduga dapat terjadi.

  1. Untuk menghapus kebijakan dasar default, jalankan perintah berikut:

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

    Anda dapat menambahkan kembali kebijakan default dengan menerapkan manifes berikut:

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • PROJECT: nama project Anda.
  2. Untuk membuat kebijakan ingress pod-ke-pod intra-cluster di cluster standar, buat dan terapkan resource kustom berikut

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • STANDARD_CLUSTER_PROJECT: nama project cluster standar.
    • STANDARD_CLUSTER_NAME: nama cluster standar.
    • SUBJECT_NAMESPACE: namespace subjek di cluster standar.
    • PEER_NAMESPACE: namespace peer di cluster standar.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka beban kerja dengan label app: backend akan menerima traffic.
    • PEER_LABEL_KEY: kunci label yang digunakan untuk memilih workload peer.
    • PEER_LABEL_VALUE: nilai yang terkait dengan PEER_LABEL_KEY.
  3. Untuk membuat kebijakan node-ke-pod intra-cluster ingress di cluster standar, buat dan terapkan resource kustom berikut:

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • STANDARD_CLUSTER_PROJECT: nama project cluster standar.
    • STANDARD_CLUSTER_NAME: nama cluster standar.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka beban kerja dengan label app: backend akan menerima traffic.
    • NODE_IP: alamat IP node.
    • PORT: port pada workload subjek tempat traffic diizinkan.

Membuat kebijakan intra-project egress untuk cluster standar

  1. Untuk membuat kebijakan keluar pod-ke-pod intra-cluster di cluster standar, buat dan terapkan resource kustom berikut

    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • STANDARD_CLUSTER_PROJECT: nama project cluster standar.
    • STANDARD_CLUSTER_NAME: nama cluster standar.
    • SUBJECT_NAMESPACE: namespace subjek di cluster standar.
    • PEER_NAMESPACE: namespace peer di cluster standar.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka workload dengan label app: backend akan mengirimkan traffic.
    • PEER_LABEL_KEY: kunci label yang digunakan untuk memilih workload peer.
    • PEER_LABEL_VALUE: nilai yang terkait dengan PEER_LABEL_KEY.
    1. Untuk membuat kebijakan pod-ke-node intra-cluster keluar di cluster standar, buat dan terapkan resource kustom berikut:
    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
    

    Ganti kode berikut:

    • GLOBAL_API_SERVER: jalur kubeconfig server API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan zonal. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk detailnya.
    • STANDARD_CLUSTER_PROJECT: nama project cluster standar.
    • STANDARD_CLUSTER_NAME: nama cluster standar.
    • SUBJECT_LABEL_KEY: kunci label yang digunakan untuk memilih beban kerja subjek. Misalnya, app, tier, atau role.
    • SUBJECT_LABEL_VALUE: nilai yang terkait dengan SUBJECT_LABEL_KEY. Misalnya, jika SUBJECT_LABEL_KEY adalah app, dan SUBJECT_LABEL_VALUE adalah backend, maka workload dengan label app: backend akan mengirimkan traffic.
    • NODE_IP: alamat IP node.
    • PORT: port pada IP node yang trafficnya diizinkan.