ConfigMaps & Rahsia
Urus data konfigurasi dan maklumat sensitif dengan selamat dalam pelancaran Kubernetes anda menggunakan ConfigMaps dan Rahsia.
ConfigMaps & Rahsia ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 3 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.
Pengenalan kepada ConfigMaps & Rahsia
Selamat datang! Dalam pelajaran ini, kita akan mempelajari cara mengurus data konfigurasi dan maklumat sensitif dalam Kubernetes. Kita akan meneroka ConfigMaps dan Rahsia, iaitu dua alat penting untuk penerapan aplikasi yang fleksibel dan selamat.

Mengapa Konfigurasi Perlu Diasingkan?
Bayangkan anda menulis terus kelayakan pangkalan data atau kunci API ke dalam imej Docker aplikasi anda. Hal ini menyukarkan kemas kini dan mendedahkan data sensitif.
- Tidak fleksibel: Perubahan memerlukan imej dibina semula.
- Risiko keselamatan: Data sensitif dimasukkan terus ke dalam imej.
- Khusus mengikut persekitaran: Persekitaran yang berbeza (pembangunan, pengeluaran) memerlukan tetapan yang berbeza.
ConfigMaps: Data Tidak Sensitif
ConfigMap ialah objek Kubernetes yang digunakan untuk menyimpan data konfigurasi tidak sensitif sebagai pasangan kunci-nilai. Anggaplah ia sebagai tempat berpusat untuk tetapan aplikasi anda, seperti aras log atau titik akhir API.
Ia mengasingkan konfigurasi daripada kod aplikasi anda, menjadikan penerapan lebih mudah alih dan diurus.
Mentakrifkan ConfigMap
Anda boleh mencipta ConfigMap daripada nilai harfiah, fail atau direktori. Berikut ialah contoh ringkas yang ditakrifkan dalam fail YAML:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app-config
data:
log_level: "INFO"
api_endpoint: "http://myapi.example.com"ConfigMap sebagai Pemboleh Ubah Persekitaran
Selepas dicipta, Pod boleh menggunakan data ConfigMap sebagai pemboleh ubah persekitaran. Ini ialah cara biasa untuk menghantar tetapan kepada aplikasi anda.
Berikut ialah 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 Fail yang Dipasang
Sebagai pilihan lain, data ConfigMap boleh dipasang sebagai fail di dalam bekas anda. Setiap pasangan kunci-nilai menjadi satu fail, dengan kunci sebagai nama fail dan nilai sebagai kandungannya.
Ini berguna untuk fail konfigurasi yang dijangka dibaca oleh aplikasi anda daripada laluan 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: NeverRahsia: Data Sensitif
Rahsia serupa dengan ConfigMaps tetapi direka untuk data sensitif seperti kata laluan, kunci API atau sijil TLS. Kubernetes membantu anda mengurus dan mengedarkannya dengan selamat.
Walaupun ConfigMaps menyimpan data dalam teks biasa, Rahsia adalah dikodkan dalam base64. Ini BUKAN penyulitan, tetapi menghalang pendedahan secara tidak sengaja.
Mentakrifkan Rahsia
Apabila mencipta Rahsia, nilai mesti dikodkan dalam base64. Anda boleh menggunakan echo -n 'my-password' | base64 untuk mengekodkannya.
Berikut ialah contoh untuk kata laluan pangkalan data:
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 of 'admin'
password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'Menggunakan Rahsia dalam Pod
Rahsia digunakan oleh Pod dengan cara yang hampir sama seperti ConfigMaps: sebagai pemboleh ubah persekitaran atau fail yang dipasang. Kubernetes akan menyahkodkannya secara automatik sebelum menyediakannya kepada bekas.
Menggunakannya sebagai fail yang dipasang biasanya lebih disukai dari segi keselamatan, kerana pemboleh ubah persekitaran lebih mudah direkodkan 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: NeverAmalan Terbaik Keselamatan
Ingat, pengekodan base64 bukanlah penyulitan. Untuk penyulitan sebenar ketika data tidak digunakan, anda mungkin memerlukan bahagian belakang Rahsia Kubernetes (seperti Vault) atau menggunakan perkhidmatan KMS penyedia awan.
- RBAC: Kawal pihak yang boleh mengakses Rahsia.
- Keistimewaan Minimum: Berikan Pod akses hanya kepada Rahsia yang diperlukan.
- Fail yang Dipasang: Utamakan pemasangan Rahsia sebagai fail berbanding pemboleh ubah persekitaran.
Semakan Pantas tentang Konfigurasi
Anda perlu menyimpan kunci API (sensitif) dan tetapan aras log (tidak sensitif) untuk aplikasi anda dalam Kubernetes.
Objek Kubernetes yang manakah patut anda gunakan untuk setiap satunya?
Ulang Kaji: ConfigMaps & Rahsia
Syabas! Anda telah mempelajari cara mengurus konfigurasi aplikasi dan data sensitif dalam Kubernetes.
- ConfigMaps: Menyimpan pasangan kunci-nilai yang tidak sensitif.
- Rahsia: Menyimpan data sensitif (dikodkan dalam base64).
- Kedua-duanya boleh digunakan sebagai pemboleh ubah persekitaran atau fail yang dipasang oleh Pod.
- Sentiasa ikuti amalan terbaik keselamatan apabila mengendalikan maklumat sensitif.
Seterusnya, terokai topik keselamatan lanjutan seperti RBAC dan penyelesaian pengurusan Rahsia luaran.
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 “ConfigMaps & Rahsia” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “ConfigMaps & Rahsia”, 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 “ConfigMaps & Rahsia”?
Urus data konfigurasi dan maklumat sensitif dengan selamat dalam pelancaran Kubernetes anda menggunakan ConfigMaps dan Rahsia. 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 3 daripada 4.
Berapa lamakah pelajaran “ConfigMaps & Rahsia” 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
- Pelancaran untuk Aplikasi Tanpa Keadaan
- Perkhidmatan untuk Akses Rangkaian
- ConfigMaps & Rahsia
- Ingress dan Penghalaan Luaran