ConfigMaps untuk Konfigurasi
Pisahkan konfigurasi aplikasi dari image container menggunakan ConfigMaps.
ConfigMaps untuk Konfigurasi adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 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.
Pengantar ConfigMaps
Aplikasi sering memerlukan data konfigurasi, seperti string koneksi basis data atau penanda fitur.
Menyimpan informasi ini secara langsung di dalam image kontainer dapat membuat image menjadi kaku dan sulit diperbarui.
ConfigMaps menyediakan cara untuk memisahkan dan memusatkan konfigurasi aplikasi yang tidak sensitif, sehingga image tetap fleksibel.
Apa Itu ConfigMap?
ConfigMap adalah objek Kubernetes yang digunakan untuk menyimpan data yang tidak sensitif dalam pasangan kunci-nilai.
Anggaplah ConfigMap sebagai tempat terpusat untuk pengaturan aplikasi yang dapat diakses oleh Pod.
- Pemisahan konfigurasi: Memisahkan konfigurasi dari kode aplikasi.
- Fleksibilitas: Mengubah pengaturan dengan mudah tanpa membangun ulang image.
- Portabilitas: Memindahkan aplikasi antarlingkungan dengan konfigurasi yang berbeda.
Membuat ConfigMaps: Imperatif
Anda dapat membuat ConfigMap dengan cepat langsung dari baris perintah menggunakan kubectl create configmap.
Metode ini cocok untuk konfigurasi sederhana yang hanya digunakan sekali atau untuk pengujian cepat.
Mari buat ConfigMap bernama my-app-config dengan pengaturan tingkat pencatatan.
kubectl create configmap my-app-config \
--from-literal=log_level=INFOMemeriksa ConfigMap Anda
Setelah membuat ConfigMap, Anda dapat melihat detailnya dan memverifikasi isinya.
Gunakan kubectl get dengan flag -o yaml untuk melihat definisi YAML lengkap, termasuk data yang tersimpan di dalamnya.
kubectl get configmap my-app-config -o yamlConfigMap Deklaratif (YAML)
Untuk produksi dan pengendalian versi, mendefinisikan ConfigMaps menggunakan manifes YAML merupakan praktik standar.
Pendekatan ini membuat konfigurasi dapat direproduksi dan mudah dikelola bersama kode aplikasi.
Berikut contoh YAML untuk konfigurasi sebuah gim:
apiVersion: v1
kind: ConfigMap
metadata:
name: game-config
data:
game.properties: |
level=easy
player_limit=10
ui.properties: |
theme=dark
language=enMenerapkan ConfigMap dari YAML
Untuk membuat ConfigMap game-config, simpan isi YAML dari adegan sebelumnya ke dalam file (misalnya, game-config.yaml).
Kemudian, gunakan kubectl apply -f untuk menerapkannya ke klaster.
# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yamlConfigMaps sebagai Variabel Lingkungan
Salah satu cara umum agar Pod menggunakan data ConfigMap adalah dengan menyuntikkannya sebagai variabel lingkungan.
Anda dapat menentukan kunci individual yang akan diekspos atau menggunakan envFrom untuk mengekspos semua pasangan kunci-nilai dari ConfigMap.
Cara ini ideal untuk pengaturan aplikasi sederhana.
apiVersion: v1
kind: Pod
metadata:
name: my-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL && sleep 3600"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_levelDemo: Pod dengan Konfigurasi Lingkungan
Mari jalankan definisi Pod untuk melihat variabel lingkungan LOG_LEVEL bekerja.
Simpan YAML Pod ke env-pod.yaml, terapkan, lalu periksa log Pod.
# Save Pod YAML to env-pod.yaml
kubectl apply -f env-pod.yaml
kubectl logs my-env-pod
# Clean up
kubeclt delete pod my-env-podConfigMaps sebagai Volume Terpasang
Untuk aplikasi yang mengharapkan file konfigurasi (misalnya, nginx.conf, application.properties), Anda dapat memasang ConfigMap sebagai volume.
Setiap pasangan kunci-nilai dalam ConfigMap akan menjadi sebuah file di dalam jalur pemasangan yang ditentukan dalam kontainer.
apiVersion: v1
kind: Pod
metadata:
name: my-volume-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo 'Contents of game.properties:' && cat /etc/config/game.properties && sleep 3600"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: game-configDemo: Pod dengan Konfigurasi Terpasang
Sekarang, mari terapkan Pod yang memasang ConfigMap game-config sebagai volume.
Simpan YAML Pod ke volume-pod.yaml, terapkan, lalu periksa log untuk melihat isi file yang terpasang.
# Save Pod YAML to volume-pod.yaml
kubectl apply -f volume-pod.yaml
kubectl logs my-volume-pod
# Clean up
kubeclt delete pod my-volume-podPemeriksaan Singkat: ConfigMaps
Pernyataan manakah berikut ini tentang ConfigMaps Kubernetes yang benar?
Ringkasan: ConfigMaps
Bagus! Anda telah mempelajari cara ConfigMaps membantu mengelola konfigurasi di Kubernetes:
- Tujuan: Menyimpan data konfigurasi yang tidak sensitif sebagai pasangan kunci-nilai.
- Pembuatan: Secara imperatif dengan
kubectl createatau secara deklaratif dengan YAML. - Penggunaan: Sebagai variabel lingkungan atau file yang dipasang di dalam Pod.
- Manfaat: Memisahkan konfigurasi dari kode aplikasi sehingga meningkatkan fleksibilitas.
Selanjutnya, kita akan mempelajari cara menangani informasi sensitif dengan aman menggunakan Secrets Kubernetes!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “ConfigMaps untuk Konfigurasi” gratis?
Ya — teks lengkap “ConfigMaps untuk Konfigurasi” 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 “ConfigMaps untuk Konfigurasi”?
Pisahkan konfigurasi aplikasi dari image container menggunakan ConfigMaps. 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 1 dari 4.
Berapa lama pelajaran “ConfigMaps untuk Konfigurasi” 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
- ConfigMaps untuk Konfigurasi
- Secret untuk Data Sensitif
- Volume Persisten dan Klaim
- StorageClasses dan Provisioning Dinamis