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
-
Aktifkan kebijakan jaringan di cluster Anda.
- GKE: Lihat Mengaktifkan penerapan kebijakan jaringan.
- EKS: Lihat Menginstal add-on mesin kebijakan jaringan Calico.
- AKS: Lihat Mengamankan traffic antar-pod menggunakan kebijakan jaringan di Azure Kubernetes Service (AKS) .
- Platform lain: cari petunjuk untuk mengaktifkan kebijakan jaringan di cluster Anda dari vendor platform tertentu.
- Cluster hybrid Apigee yang sedang berjalan, versi 1.8 atau yang lebih baru.
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.
- Beri label namespace dengan perintah berikut:
kubectl label namespace APIGEE_NAMESPACE app=apigee
- Terapkan kebijakan jaringan dengan perintah berikut:
kubectl apply -k ${APIGEECTL_HOME}/examples/network-policies/securing-cassandra-redis-pods/overlays/ORG_NAME
- 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