Mengonfigurasi kebijakan jaringan Kubernetes

Topik ini menjelaskan cara menggunakan kebijakan jaringan Kubernetes untuk mengamankan pod Cassandra dan Redis dalam Cluster Hybrid Apigee .

Ringkasan

Jika ingin mengontrol aliran traffic di alamat IP atau tingkat port (OSI lapisan 3 atau 4), Anda dapat menggunakan Kebijakan Jaringan Kubernetes untuk aplikasi di cluster Anda. Kebijakan Jaringan adalah konstruksi yang berfokus pada aplikasi yang dapat Anda gunakan untuk menentukan bagaimana pod diizinkan untuk berkomunikasi dengan pod lain dalam cluster Anda.

Dalam Apigee Hybrid, Anda dapat menggunakan Kebijakan Jaringan Kubernetes untuk mengisolasi pod Cassandra sehingga hanya pod yang ditujukan untuk berkomunikasi dengan Cassandra yang diizinkan, seperti pod Runtime, Synchronizer, dan Mart. Pod lain dalam cluster seperti pod Ingres dan Watcher yang tidak perlu berkomunikasi dengan Cassandra diblokir agar tidak dapat melakukannya.

Jika tidak ada batasan terkait pod yang dapat berinteraksi dalam cluster, Anda tidak perlu menggunakan kebijakan jaringan Kubernetes.

Prasyarat

Prosedur

Jika Anda menjalankan versi hybrid 1.8.x, download dan ekstrak paket rilis Apigee terbaru.

Linux

curl -LO \
  https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.12.1/apigeectl_linux_64.tar.gz

Mac OS

curl -LO \
  https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.12.1/apigeectl_mac_64.tar.gz

Windows

curl -LO ^
   https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.12.1/apigeectl_windows_64.zip

File konfigurasi kebijakan jaringan Kubernetes untuk Cassandra dan Redis berada dalam struktur direktori berikut dalam direktori $APIGEECTL_HOME Anda:

  └── apigeectl
      └── examples
          └── network-policies
              └── securing-cassandra-redis-pods
                  ├── README.md
                  ├── base
                  │   └── cluster-scoped-communication
                  │       ├── cassandra
                  │       │   ├── kustomization.yaml
                  │       │   ├── networkpolicy-cassandra-allow-controller.yaml
                  │       │   ├── networkpolicy-cassandra-allow-intranode.yaml
                  │       │   ├── networkpolicy-cassandra-allow-mart.yaml
                  │       │   ├── networkpolicy-cassandra-allow-runtime.yaml
                  │       │   ├── networkpolicy-cassandra-alow-sync.yaml
                  │       │   ├── networkpolicy-cassandra-create-user.yaml
                  │       │   ├── networkpolicy-cassandra-monitoring.yaml
                  │       │   └── networkpolicy-cassandra-remove-dc.yaml
                  │       └── redis
                  │           ├── kustomization.yaml
                  │           ├── networkpolicy-redis-envoy.yaml
                  │           └── networkpolicy-redis.yaml
                  └── overlays
                      └── ORG_NAME
                          └── kustomization.yaml

Dengan ORG_NAME adalah nama organisasi Apigee Anda.

  1. Beri label namespace dengan perintah berikut:
    kubectl label namespace apigee app=apigee
    kubectl label namespace apigee-system app=apigee-system
  2. Terapkan kebijakan jaringan dengan perintah berikut:
    kubectl apply -k ${APIGEECTL_HOME}/examples/network-policies/securing-cassandra-redis-pods/overlays/ORG_NAME
  3. Pastikan kebijakan jaringan sudah diterapkan dengan perintah berikut:
    kubectl get netpol -n apigee

    Kebijakan jaringan berikut harus dibuat di namespace apigee:

          NAME                        POD-SELECTOR              AGE
          cassandra-from-mart         app=apigee-cassandra      4d5h
          cassandra-from-runtime      app=apigee-cassandra      4d5h
          cassandra-from-sync         app=apigee-cassandra      4d5h
          cassandra-to-cassandra      app=apigee-cassandra      4d5h
          controller-to-cassandra     app=apigee-cassandra      4d5h
          redis-from-redisenvoy       app=apigee-redis          3d18h
          redisenvoy-from-runtime     app=apigee-redis-envoy    3d18h