Topik ini menjelaskan cara menggunakan kebijakan jaringan Kubernetes untuk mengamankan pod Cassandra dan Redis dalam Cluster Apigee Hybrid .
Ringkasan
Jika ingin mengontrol alur traffic di tingkat alamat IP atau port (lapisan OSI 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 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.
Jika tidak ada batasan pada pod 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 Apigee Hybrid yang saat ini 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 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