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 tingkat alamat IP atau 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 cara pod diizinkan untuk berkomunikasi dengan pod lain dalam cluster Anda.

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

Jika tidak memiliki batasan terkait pod mana 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.0/apigeectl_linux_64.tar.gz

Mac OS

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

Windows

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

File konfigurasi untuk 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. Validasi bahwa kebijakan jaringan telah 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