CKA Kursus Penuh Hari Berbilang Bekas Pod Kubernetes - Sidecar lwn Init Container

Linda Hamilton
Lepaskan: 2024-10-30 01:17:28
asal
614 orang telah melayarinya

CKA Full Course Day Multi Container Pod Kubernetes - Sidecar vs Init Container

Nota daripada Saya

Dalam projek ini, saya ingin menggunakan konsep Kubernetes seperti bekas init dan bekas kereta sampingan, tetapi saya tidak mahu hanya mengikuti tutorial.

Matlamat saya adalah untuk membina sesuatu yang tidak dapat dilupakan.

Selepas beberapa sumbang saran, saya mempersembahkan kepada anda Aplikasi Dapatkan Saya!


Fungsi Apl Get Me

Apl Dapatkan Saya direka untuk mengambil dan memaparkan kandungan secara dinamik daripada pelbagai repositori GitHub. Aplikasi ini berjalan dalam pod Kubernetes dan terdiri daripada dua komponen utama:

  1. Bekas Nginx: Ini berfungsi sebagai aplikasi utama, mengehos kandungan yang diambil secara dinamik. Ia ringan dan cekap, menjadikannya ideal untuk menyajikan halaman web statik.

  2. Bekas Sidecar: Ini berjalan bersama bekas nginx utama. Ia bertanggungjawab untuk menyegarkan kandungan setiap 5 saat dengan mengambil HTML terkini daripada halaman GitHub yang dipilih secara rawak. Ini memastikan kandungan yang disampaikan oleh Nginx sentiasa terkini.

  3. Bekas Init: Ini memulakan persekitaran sebelum bekas utama bermula. Ia menyemak ketersediaan Perkhidmatan Apl Dapatkan Saya dengan menyelesaikan entri DNSnya. Langkah ini memastikan bahawa aplikasi bersedia untuk berinteraksi dengan perkhidmatan sebaik sahaja ia mula berjalan. Baca lebih lanjut di sini (saya terpaksa)

Bekas nginx kemudiannya menyajikan halaman web HTML yang dikemas kini, menjadikannya boleh diakses melalui penyemak imbas melalui perkhidmatan NodePort.


Prasyarat

Sebelum kami bermula, pastikan anda mempunyai fail konfigurasi untuk membuat gugusan Kubernetes. Rujuk panduan Mula Pantas Jenis untuk mendapatkan arahan terperinci tentang menyediakan kluster Jenis anda.

Konfigurasi Kluster (config.yml)

Buat fail bernama config.yml dengan kandungan berikut untuk menentukan kelompok Jenis anda:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: cka-cluster  
nodes:
- role: control-plane
  extraPortMappings:
  - containerPort: 30001  # Change this to match the NodePort
    hostPort: 30001
    listenAddress: "0.0.0.0" 
    protocol: tcp
- role: worker  
- role: worker 
Salin selepas log masuk
Salin selepas log masuk

Jalankan arahan berikut untuk mencipta kluster:

kind create cluster --name kind-cka-cluster --config config.yml
Salin selepas log masuk
Salin selepas log masuk

Gunakan arahan berikut untuk menetapkan konteks kepada kelompok baharu:

kubectl config use-context kind-kind-cka-cluster
Salin selepas log masuk
Salin selepas log masuk

Langkah 1: Cipta Direktori dan Fail Projek

Mula-mula, sediakan direktori dan struktur fail untuk projek itu.

mkdir get-me-app
cd get-me-app
nano get-me-app.yml
Salin selepas log masuk

Langkah 2: Tentukan Spesifikasi Pod Kubernetes

Dalam fail get-me-app.yml, kami akan mentakrifkan pod Kubernetes yang merangkumi bekas nginx, bekas sidecar untuk menyegarkan kandungan dan bekas init untuk pengambilan data awal.

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: cka-cluster  
nodes:
- role: control-plane
  extraPortMappings:
  - containerPort: 30001  # Change this to match the NodePort
    hostPort: 30001
    listenAddress: "0.0.0.0" 
    protocol: tcp
- role: worker  
- role: worker 
Salin selepas log masuk
Salin selepas log masuk

Perkara yang Dilakukan oleh Setiap Bahagian Spesifikasi Pod Ini

  1. bekas nginx: Ini ialah bekas utama, menyajikan kandungan pada port 80. VolumeMount menjadikan direktori /usr/share/nginx/html tersedia dalam volum workdir pod.

  2. Bekas kereta sampingan (penyegar kandungan): Bekas ini berjalan seketika gelung benar, memuat turun versi terkini halaman web setiap 5 saat. Ini memastikan kandungan dalam volum workdir kekal dikemas kini.

  3. Bekas init (init-myservice): Ini menunggu perkhidmatan get-me-app tersedia dengan melakukan carian DNS secara berterusan. Ia berjalan sekali sahaja semasa pemulaan dan tidak dimulakan semula selepas selesai.

  4. Jilid: Kelantangan workdir (jenisDir kosong) dikongsi antara bekas, membenarkan bekas init, sidecar dan nginx mengakses dan menyampaikan kandungan yang sama.


Langkah 3: Uji Setempat dengan NodePort (Pilihan)

Untuk menjadikan apl boleh diakses melalui penyemak imbas pada mesin tempatan anda, konfigurasikan perkhidmatan NodePort untuk mendedahkan port pod 80.

Tambah definisi perkhidmatan ini dalam get-me-app-service.yml:

kind create cluster --name kind-cka-cluster --config config.yml
Salin selepas log masuk
Salin selepas log masuk

Letakkan persediaan dengan:

kubectl config use-context kind-kind-cka-cluster
Salin selepas log masuk
Salin selepas log masuk

Aksesnya dengan melawati http://localhost:30001 dalam penyemak imbas anda, dan anda harus mempunyai halaman github. Muat semula halaman selepas 5 saat dan anda akan melihat halaman github yang berbeza.


Pengambilan Utama

Projek ini membantu saya memahami cara bekas init boleh memulakan sumber kongsi dan cara bekas kereta sisi memastikan sumber tersebut dikemas kini untuk aplikasi utama. Ini adalah cara yang menarik untuk mencuba dan mempelajari tentang pengendalian data masa nyata dalam Kubernetes.


Berikut ialah kandungan terformat untuk bahagian yang anda berikan:


Tag dan Sebutan

  • @piyushsachdeva
  • Hari 8: Tutorial Video

Nota Tamat: Sila ingat bahawa projek ini bukan sebahagian daripada tutorial video. Saya ingin membina sesuatu sendiri menggunakan konsep daripada tutorial sebagai panduan umum.

Atas ialah kandungan terperinci CKA Kursus Penuh Hari Berbilang Bekas Pod Kubernetes - Sidecar lwn Init Container. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan