Dasar Rangkaian untuk Pengasingan
Kawal aliran trafik rangkaian antara Pod dan ruang nama menggunakan Dasar Rangkaian Kubernetes.
Dasar Rangkaian untuk Pengasingan ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Network Policies: Pengawal Trafik
Dalam Kubernetes, Pod secara lalai boleh berkomunikasi antara satu sama lain tanpa sekatan. Ini memberikan fleksibiliti, tetapi tidak semestinya sesuai untuk keselamatan.
Network Policies bertindak seperti tembok api untuk Pod anda dengan mengawal trafik rangkaian yang dibenarkan masuk (ingress) dan keluar (egress).
Lalai: Semua Pod Boleh Berkomunikasi
Secara lalai, selepas Pod digunakan, ia boleh berkomunikasi dengan mana-mana Pod lain dalam kluster tanpa mengira namespace. Model "rangkaian rata" ini memudahkan persediaan tetapi tidak menyediakan pengasingan.
Dalam persekitaran pengeluaran, anda biasanya perlu mengehadkan komunikasi untuk meningkatkan keselamatan dan menghalang akses tanpa kebenaran antara komponen aplikasi.
Peraturan Ingress dan Egress
Network Policies mentakrifkan peraturan tentang cara Pod dibenarkan berkomunikasi. Peraturan ini tertumpu terutamanya pada dua jenis trafik:
- Ingress: Trafik masuk ke Pod.
- Egress: Trafik keluar daripada Pod.
Peraturan ini digunakan pada Pod tertentu menggunakan label dan boleh menyasarkan Pod, namespace atau blok IP lain.
Keperluan Pemalam CNI
Network Policies bukanlah sihir! Untuk membolehkannya berfungsi, kluster Kubernetes anda mesti mempunyai pemalam Container Network Interface (CNI) yang menyokongnya.
Pemalam CNI popular seperti Calico, Cilium dan Weave Net menyediakan fungsi ini. Tanpa CNI yang menyokongnya, Network Policies tidak akan memberikan sebarang kesan.
Anatomi Policy
Network Policies ditakrifkan menggunakan YAML. Medan utama termasuk:
metadata.name: Nama unik untuk policy anda.spec.podSelector: Memilih Pod yang dikenakan policy ini.spec.policyTypes: Menentukan sama ada policy dikenakan padaIngress,Egressatau kedua-duanya.spec.ingress/spec.egress: Menyenaraikan peraturan bagi trafik yang dibenarkan.
Sekat Semua Trafik Masuk
Mari kita cipta policy untuk menolak semua trafik masuk ke Pod dengan label app: backend dalam namespace semasa. Ini ialah titik permulaan biasa bagi pendekatan keselamatan "tolak secara lalai".
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-backend-ingress
spec:
podSelector:
matchLabels:
app: backend
policyTypes:
- Ingress
ingress: [] # An empty ingress list denies all incoming trafficBenarkan Ingress daripada Frontend
Sekarang, mari kita ubah policy supaya trafik masuk hanya dibenarkan daripada Pod berlabel app: frontend dalam namespace yang sama ke Pod app: backend kita.
Perhatikan bahagian from yang menentukan Pod sumber.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: frontendMengawal Trafik Keluar
Sama seperti ingress, anda boleh mengawal trafik egress (keluar). Di sini, kita akan mencipta policy yang membenarkan Pod app: backend membuat permintaan keluar hanya kepada Pod berlabel app: database.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: backend-egress-to-db
spec:
podSelector:
matchLabels:
app: backend
policyTypes:
- Egress
egress:
- to:
- podSelector:
matchLabels:
app: databaseMenyasarkan Namespace Lain
Bagaimana jika frontend anda berada dalam namespace lain, contohnya web-apps? Anda boleh menggunakan namespaceSelector untuk menyasarkan Pod merentas namespace.
Policy ini membenarkan ingress kepada Pod app: backend daripada mana-mana Pod dalam namespace web-apps.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-web-apps-ingress
spec:
podSelector:
matchLabels:
app: backend
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: web-apps
podSelector: {} # All pods in the selected namespaceCabaran Policy
Pertimbangkan sebuah Pod dengan label app: web dan env: prod. Network Policy manakah yang membenarkan hanya trafik masuk daripada Pod dalam namespace monitoring?
Imbas Kembali: Lindungi Rangkaian Anda
Syabas! Anda telah mempelajari cara Network Policies Kubernetes menyediakan pengasingan rangkaian yang penting untuk aplikasi anda.
- Ia bertindak sebagai tembok api untuk Pod.
- Mengawal trafik ingress (masuk) dan egress (keluar).
- Memerlukan pemalam CNI yang menyokongnya.
- Ditakrifkan menggunakan YAML dengan
podSelector,policyTypesdan takrif peraturan. - Boleh menyasarkan Pod berdasarkan label dan juga seluruh namespace.
Gunakannya untuk menguatkuasakan model rangkaian "keistimewaan minimum"!
Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 142
- Pelajaran
- 568
Soalan Lazim
Adakah pelajaran “Dasar Rangkaian untuk Pengasingan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Dasar Rangkaian untuk Pengasingan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Dasar Rangkaian untuk Pengasingan”?
Kawal aliran trafik rangkaian antara Pod dan ruang nama menggunakan Dasar Rangkaian Kubernetes. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Dasar Rangkaian untuk Pengasingan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?
Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Kawalan Akses Berasaskan Peranan (RBAC)
- Dasar Rangkaian untuk Pengasingan
- Piawaian Keselamatan Pod
- Akaun Perkhidmatan dan Identiti Beban Kerja