ConfigMaps & Secret
Kelola data konfigurasi dan informasi sensitif secara aman dalam deployment Kubernetes menggunakan ConfigMaps dan Secret.
ConfigMaps & Secret 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.
Pengantar ConfigMaps & Secrets
Selamat datang! Dalam pelajaran ini, kita akan mempelajari cara mengelola data konfigurasi dan informasi sensitif di Kubernetes. Kita akan membahas ConfigMaps dan Secrets, dua alat penting untuk deployment aplikasi yang fleksibel dan aman.

Mengapa Konfigurasi Perlu Dipisahkan?
Bayangkan kredensial basis data atau kunci API ditulis langsung secara permanen di dalam image Docker aplikasi Anda. Hal ini membuat pembaruan menjadi sulit dan mengekspos data sensitif.
- Tidak fleksibel: Perubahan mengharuskan Anda membangun ulang image.
- Risiko keamanan: Data sensitif tertanam di dalam image.
- Bergantung pada lingkungan: Lingkungan yang berbeda (pengembangan, produksi) memerlukan pengaturan yang berbeda.
ConfigMaps: Data Non-Sensitif
ConfigMap adalah objek Kubernetes yang digunakan untuk menyimpan data konfigurasi non-sensitif sebagai pasangan kunci-nilai. Anggaplah ConfigMap sebagai tempat terpusat untuk pengaturan aplikasi Anda, seperti tingkat pencatatan atau endpoint API.
ConfigMap memisahkan konfigurasi dari kode aplikasi sehingga deployment Anda lebih portabel dan lebih mudah dikelola.
Menentukan ConfigMap
Anda dapat membuat ConfigMap dari nilai literal, file, atau direktori. Berikut contoh sederhana yang ditentukan dalam file YAML:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app-config
data:
log_level: "INFO"
api_endpoint: "http://myapi.example.com"ConfigMap sebagai Variabel Lingkungan
Setelah dibuat, Pod dapat menggunakan data ConfigMap sebagai variabel lingkungan. Ini adalah cara umum untuk meneruskan pengaturan ke aplikasi Anda.
Berikut cara Pod menggunakan my-app-config kita:
apiVersion: v1
kind: Pod
metadata:
name: configmap-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL; echo API: $API_ENDPOINT"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_level
- name: API_ENDPOINT
valueFrom:
configMapKeyRef:
name: my-app-config
key: api_endpoint
restartPolicy: NeverConfigMap sebagai File yang Dipasang
Alternatifnya, data ConfigMap dapat dipasang sebagai file di dalam container Anda. Setiap pasangan kunci-nilai menjadi sebuah file, dengan kunci sebagai nama file dan nilai sebagai isinya.
Ini berguna untuk file konfigurasi yang diharapkan dibaca oleh aplikasi Anda dari jalur tertentu.
apiVersion: v1
kind: Pod
metadata:
name: configmap-file-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "cat /etc/config/log_level; cat /etc/config/api_endpoint"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-app-config
restartPolicy: NeverSecrets: Data Sensitif
Secrets mirip dengan ConfigMaps, tetapi dirancang untuk data sensitif seperti kata sandi, kunci API, atau sertifikat TLS. Kubernetes membantu Anda mengelola dan mendistribusikannya dengan aman.
ConfigMaps menyimpan data dalam teks biasa, sedangkan Secrets disandikan dengan base64. Ini BUKAN enkripsi, tetapi dapat mencegah paparan yang tidak disengaja.
Menentukan Secret
Saat membuat Secret, nilainya harus disandikan dengan base64. Anda dapat menggunakan echo -n 'my-password' | base64 untuk menyandikannya.
Berikut contoh untuk kata sandi basis data:
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 of 'admin'
password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'Menggunakan Secrets di dalam Pod
Pod menggunakan Secrets dengan cara yang hampir sama seperti ConfigMaps: sebagai variabel lingkungan atau file yang dipasang. Kubernetes akan otomatis mendekodekannya sebelum menyajikannya kepada container.
Secara umum, penggunaan sebagai file yang dipasang lebih disarankan untuk keamanan karena variabel lingkungan lebih mudah dicatat atau diperiksa.
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: my-app-container
image: busybox
command: ["sh", "-c", "echo DB User: $DB_USERNAME; echo DB Pass: $DB_PASSWORD"]
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
restartPolicy: NeverPraktik Terbaik Keamanan
Ingat, penyandian base64 bukanlah enkripsi. Untuk enkripsi saat data tersimpan yang sebenarnya, Anda mungkin memerlukan backend Kubernetes Secrets (seperti Vault) atau memanfaatkan layanan KMS dari penyedia cloud.
- RBAC: Kendalikan siapa yang dapat mengakses Secrets.
- Hak Istimewa Minimum: Berikan Pod hanya akses ke Secrets yang dibutuhkannya.
- File yang Dipasang: Lebih baik memasang Secrets sebagai file daripada sebagai variabel lingkungan.
Pemeriksaan Singkat Konfigurasi
Anda perlu menyimpan kunci API (sensitif) dan pengaturan tingkat pencatatan (non-sensitif) untuk aplikasi Anda di Kubernetes.
Objek Kubernetes apa yang harus digunakan untuk masing-masing data tersebut?
Ringkasan: ConfigMaps & Secrets
Bagus sekali! Anda telah mempelajari cara mengelola konfigurasi aplikasi dan data sensitif di Kubernetes.
- ConfigMaps: Menyimpan pasangan kunci-nilai non-sensitif.
- Secrets: Menyimpan data sensitif (disandikan dengan base64).
- Keduanya dapat digunakan oleh Pod sebagai variabel lingkungan atau file yang dipasang.
- Selalu ikuti praktik terbaik keamanan saat menangani informasi sensitif.
Selanjutnya, pelajari topik keamanan lanjutan seperti RBAC dan solusi pengelolaan secret eksternal.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “ConfigMaps & Secret” gratis?
Ya — teks lengkap “ConfigMaps & Secret” 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 & Secret”?
Kelola data konfigurasi dan informasi sensitif secara aman dalam deployment Kubernetes menggunakan ConfigMaps dan Secret. 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 “ConfigMaps & Secret” 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
- Deployment untuk Aplikasi Tanpa Status
- Service untuk Akses Jaringan
- ConfigMaps & Secret
- Ingress dan Perutean Eksternal