0Pricing
DevOps Bootcamp · Pelajaran

Pod Multi-Container (Sidecar)

Jelajahi pola untuk menjalankan beberapa container yang ditempatkan bersama dalam satu Pod, seperti container sidecar.

Pod Multi-Container (Sidecar) adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Melampaui Satu Container

Sejauh ini, kita menganggap Pod sebagai tempat menjalankan satu container. Namun, bagaimana jika aplikasi Anda memerlukan proses pembantu?

Kubernetes memungkinkan sebuah Pod menjalankan beberapa container. Container-container ini selalu ditempatkan bersama dan berbagi sumber daya.

Mengapa Menggunakan Pod Multi-Container?

Menjalankan beberapa container dalam satu Pod ideal untuk aplikasi yang terkait erat dan perlu berbagi:

  • Ruang nama jaringan (alamat IP yang sama, dapat berkomunikasi melalui localhost)
  • Volume penyimpanan
  • Siklus hidup (dimulai, dihentikan, dan dimulai ulang bersama-sama)

Hal ini memungkinkan satu unit pengelolaan untuk berbagai proses yang terkait.

Penjelasan Pola Sidecar

Desain yang umum adalah Pola Sidecar. Dalam pola ini, sebuah container "sidecar" berjalan berdampingan dengan container aplikasi utama Anda.

Container ini memperluas atau meningkatkan fungsionalitas aplikasi utama tanpa mengubah aplikasi utama itu sendiri. Anggap saja seperti pendamping yang membantu!

Kasus Penggunaan Sidecar

Sidecar sangat serbaguna. Penggunaan umumnya meliputi:

  • Pengumpulan Log: Sidecar mengumpulkan log dari aplikasi utama dan mengirimkannya ke layanan pencatatan terpusat.
  • Proksi: Sidecar menyediakan fungsi proksi jaringan, misalnya untuk keamanan (mTLS) atau pengelolaan lalu lintas.
  • Sinkronisasi Berkas: Sidecar menjaga volume bersama tetap diperbarui dengan konfigurasi atau data.

Pod dengan Dua Container (YAML)

Mari kita lihat cara mendefinisikan beberapa container dalam manifes YAML sebuah Pod. Setiap container merupakan item dalam array containers.

Perhatikan container nginx-proxy dan main-app yang didefinisikan di bawah spec.containers.

apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  containers:
  - name: nginx-proxy
    image: nginx:latest
    ports:
    - containerPort: 80
  - name: main-app
    image: busybox:latest
    command: ["sh", "-c", "echo 'Hello from main app!' && sleep 3600"]

Penyimpanan Bersama: emptyDir

Container dalam Pod yang sama dapat berbagi data menggunakan Volume Kubernetes. Cara sederhana untuk melakukannya adalah dengan volume emptyDir.

Volume emptyDir dibuat ketika Pod ditetapkan ke sebuah node dan ada selama Pod tersebut berjalan di node itu. Ini adalah penyimpanan sementara.

Contoh: Sidecar Pengumpul Log

Bayangkan aplikasi utama yang menghasilkan log ke sebuah berkas. Sidecar kemudian dapat membaca berkas log ini dan mengirimkannya ke layanan pencatatan.

Hal ini memisahkan logika pencatatan dari aplikasi utama sehingga aplikasi tetap bersih dan terfokus.

YAML Pengumpul Log (Bagian 1)

Berikut YAML untuk contoh pengumpul log kita. Kita mendefinisikan volume emptyDir bernama log-volume. Kedua container akan memasang volume ini.

Container main-app menulis pesan log ke /var/log/app.log di dalam volume bersama.

apiVersion: v1
kind: Pod
metadata:
  name: log-collector-pod
spec:
  volumes:
  - name: log-volume
    emptyDir: {}
  containers:
  - name: main-app
    image: busybox:latest
    command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
    volumeMounts:
    - name: log-volume
      mountPath: /var/log

YAML Pengumpul Log (Bagian 2)

Sekarang, container log-sidecar memasang volume yang sama, yaitu log-volume. Container tersebut kemudian menggunakan tail -f untuk terus membaca berkas log yang ditulis oleh aplikasi utama.

Dalam skenario nyata, sidecar ini akan memproses dan mengirim log tersebut ke sistem pencatatan seperti Elasticsearch atau Splunk.

apiVersion: v1
kind: Pod
metadata:
  name: log-collector-pod # Same Pod as before
spec:
  volumes:
  - name: log-volume
    emptyDir: {}
  containers:
  - name: main-app
    image: busybox:latest
    command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
    volumeMounts:
    - name: log-volume
      mountPath: /var/log
  - name: log-sidecar
    image: busybox:latest
    command: ["sh", "-c", "tail -f /var/log/app.log"]
    volumeMounts:
    - name: log-volume
      mountPath: /var/log

Pemeriksaan Singkat: Manfaat Sidecar

Pod multi-container, terutama dengan pola sidecar, menawarkan beberapa keuntungan untuk mengelola aplikasi yang kompleks.

Manakah dari pilihan berikut yang merupakan manfaat utama penggunaan container sidecar?

Ringkasan: Pod Multi-Container

Kerja bagus! Anda telah mempelajari Pod multi-container dan pola sidecar yang ampuh.

  • Pod dapat menampung beberapa container yang berbagi jaringan dan penyimpanan.
  • Pola sidecar membantu memperluas atau meningkatkan fungsionalitas aplikasi utama.
  • Penggunaan umum meliputi pengumpulan log, proksi, dan sinkronisasi data.
  • Volume emptyDir menyediakan penyimpanan bersama sementara dalam sebuah Pod.

Pola ini sangat penting untuk membangun aplikasi yang tangguh dan modular di Kubernetes!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pod Multi-Container (Sidecar)” gratis?

Ya — teks lengkap “Pod Multi-Container (Sidecar)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pod Multi-Container (Sidecar)”?

Jelajahi pola untuk menjalankan beberapa container yang ditempatkan bersama dalam satu Pod, seperti container sidecar. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Pod Multi-Container (Sidecar)” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pod: Unit Terkecil
  2. Siklus Hidup dan Status Pod
  3. Pod Multi-Container (Sidecar)
  4. Init Container dan Urutan Startup
← Kembali ke DevOps Bootcamp