Mengonfigurasi kebijakan jaringan Kubernetes

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

Ringkasan

Bila Anda ingin mengontrol arus lalu lintas di alamat IP atau tingkat porta (OSI lapisan 3 atau 4), maka Anda dapat menggunakan Kebijakan Jaringan Kubernetes untuk aplikasi di cluster Anda. Kebijakan Jaringan adalah yang berfokus pada aplikasi yang dapat Anda gunakan untuk menentukan bagaimana 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 diizinkan, seperti Runtime, Sinkronkanr, dan Pod Mart. Pod lain dalam cluster seperti pod Ingres dan Watcher yang tidak berkomunikasi dengan Cassandra tidak dapat melakukannya.

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

Prasyarat

Prosedur

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

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 kebijakan jaringan Kubernetes untuk Cassandra dan Redis berada di 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. Validasikan 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