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 alur traffic di alamat IP atau tingkat port (lapisan OSI 3 atau 4), Anda dapat menggunakan Kebijakan Jaringan Kubernetes untuk aplikasi di cluster. Kebijakan Jaringan adalah konstruksi yang berfokus pada aplikasi yang dapat Anda gunakan untuk menentukan cara pod diizinkan untuk berkomunikasi dengan pod lain di 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 pod Runtime, Synchronizer, dan Mart. Pod lain dalam cluster seperti pod Ingres dan Watcher yang tidak perlu berkomunikasi dengan Cassandra akan diblokir untuk melakukannya.

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

Prasyarat

Prosedur

Download dan ekstrak paket rilis apigeectl.

Linux

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

Mac OS

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

Windows

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

File konfigurasi untuk kebijakan jaringan Kubernetes untuk Cassandra dan Redis berada dalam struktur direktori berikut dalam direktori apigeectl:

  └── 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_NAMESPACE app=apigee
  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_NAMESPACE

    Kebijakan jaringan berikut harus dibuat di namespace APIGEE_NAMESPACE:

          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