Kem Intensif DevOps · Pelajaran

Dasar Rangkaian untuk Pengasingan

Kawal aliran trafik rangkaian antara Pod dan ruang nama menggunakan Dasar Rangkaian Kubernetes.

Pelajaran 2 daripada 411 langkah

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 pada Ingress, Egress atau 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 traffic

Benarkan 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: frontend

Mengawal 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: database

Menyasarkan 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 namespace

Cabaran 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, policyTypes dan takrif peraturan.
  • Boleh menyasarkan Pod berdasarkan label dan juga seluruh namespace.

Gunakannya untuk menguatkuasakan model rangkaian "keistimewaan minimum"!

Percuma untuk bermula

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

  1. Kawalan Akses Berasaskan Peranan (RBAC)
  2. Dasar Rangkaian untuk Pengasingan
  3. Piawaian Keselamatan Pod
  4. Akaun Perkhidmatan dan Identiti Beban Kerja
← Kembali ke Kem Intensif DevOps