Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi yang dihosting di Kubernetes dapat mengakses data di App Configuration menggunakan pustaka penyedia App Configuration. Penyedia App Configuration memiliki kemampuan penembolokan dan refresh bawaan sehingga aplikasi dapat memiliki konfigurasi dinamis tanpa penyebaran ulang. Jika Anda memilih untuk tidak memperbarui aplikasi Anda, tutorial ini menunjukkan cara membawa data dari App Configuration ke Kubernetes menggunakan Helm melalui penyebaran. Dengan cara ini, aplikasi Anda dapat terus mengakses konfigurasi dari variabel dan rahasia Kubernetes. Anda menjalankan peningkatan Helm ketika Anda ingin aplikasi Anda mengambil perubahan konfigurasi baru.
Petunjuk / Saran
Lihat opsi untuk beban kerja yang dihosting di Kubernetes untuk mengakses Azure App Configuration.
Helm menyediakan cara untuk mendefinisikan, menginstal, dan memutakhirkan aplikasi yang berjalan di Kubernetes. Bagan Helm berisi informasi yang diperlukan untuk membuat instance aplikasi Kubernetes. Konfigurasi disimpan di luar bagan itu sendiri, dalam file yang disebut values.yaml.
Selama proses rilis, Helm menggabungkan bagan dengan konfigurasi yang tepat untuk menjalankan aplikasi. Misalnya, variabel yang didefinisikan dalam values.yaml dapat direferensikan sebagai variabel lingkungan di dalam kontainer yang sedang berjalan. Helm juga mendukung pembuatan Kubernetes Secrets, yang dapat dipasang sebagai volume data atau diekspos sebagai variabel lingkungan.
Anda dapat mengganti nilai yang disimpan dalam values.yaml dengan menyediakan file konfigurasi berbasis YAML tambahan pada baris perintah saat menjalankan Helm. Azure App Configuration mendukung pengekspor nilai konfigurasi ke file YAML. Mengintegrasikan kemampuan ekspor ini ke dalam deployment memungkinkan aplikasi Kubernetes untuk memanfaatkan nilai konfigurasi yang tersimpan dalam Azure App Configuration.
Dalam tutorial ini, Anda akan mempelajari cara:
- Gunakan nilai dari Azure App Configuration saat menyebarkan aplikasi ke Kubernetes menggunakan Helm.
- Buat Kubernetes Secret berdasarkan referensi Key Vault dalam Azure App Configuration.
Tutorial ini mengasumsikan pemahaman dasar mengelola Kubernetes dengan Helm. Pelajari lebih lanjut cara memasang aplikasi dengan Helm di Azure Kubernetes Service (AKS).
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun gratis.
- Pasang Azure CLI (versi 2.4.0 atau yang lebih baru)
- Pasang Helm (versi 2.14.0 atau yang lebih baru)
- Penyimpanan App Configuration, seperti yang ditunjukkan dalam tutorial untuk membuat penyimpanan.
- Kluster Kubernetes.
Menambahkan nilai kunci
Tambahkan nilai kunci berikut ke penyimpanan App Configuration dan biarkan Label dan Tipe Konten dengan nilai defaultnya. Untuk informasi selengkapnya tentang cara menambahkan nilai kunci ke penyimpanan menggunakan portal Azure atau CLI, buka Membuat nilai kunci.
| Tombol | Nilai |
|---|---|
| settings.color | Putih |
| settings.message | Data dari Azure App Configuration |
Menambahkan referensi Key Vault ke Azure App Configuration
Masuk ke portal Microsoft Azure dan tambahkan rahasia ke Key Vault dengan nama Kata Sandi dan nilai myPassword.
Pilih instans simpan Azure App Configuration yang Anda buat di bagian sebelumnya.
Pilih Penjelajah Konfigurasi.
Pilih + Buat>Referensi brankas kunci, lalu tentukan nilai berikut:
- Kunci: Pilih secrets.password.
- Label: Biarkan nilai ini kosong.
- Langganan, Grup sumber daya, dan Key vault: Masukkan nilai yang terkait dengan nilai yang ada di kubah kunci yang Anda buat di langkah sebelumnya.
- Rahasia: Pilih rahasia bernama Kata Sandi yang Anda buat di bagian sebelumnya.
Membuat bagan Helm
Pertama, buat sampel bagan Helm dengan perintah berikut:
helm create mychart
Helm membuat direktori baru yang disebut mychart dengan struktur yang ditunjukkan di bawah ini.
Petunjuk / Saran
Ikuti panduan bagan ini untuk mempelajari selengkapnya.
mychart
|-- Chart.yaml
|-- charts
|-- templates
| |-- NOTES.txt
| |-- _helpers.tpl
| |-- deployment.yaml
| |-- ingress.yaml
| `-- service.yaml
`-- values.yaml
Selanjutnya, perbarui bagian spec:template:spec:containers dari file deployment.yaml. Cuplikan berikut menambahkan dua variabel lingkungan ke dalam kontainer. Anda akan menetapkan nilainya secara dinamis pada waktu penyebaran.
env:
- name: Color
value: {{ .Values.settings.color }}
- name: Message
value: {{ .Values.settings.message }}
File deployment.yaml lengkap setelah pembaruan akan terlihat seperti di bawah ini.
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: {{ include "mychart.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "mychart.name" . }}
helm.sh/chart: {{ include "mychart.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
- name: Color
value: {{ .Values.settings.color }}
- name: Message
value: {{ .Values.settings.message }}
ports:
- name: http
containerPort: 80
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
Untuk menyimpan data sensitif sebagai Kubernetes Secrets, tambahkan file secrets.yaml di bawah folder template.
Petunjuk / Saran
Pelajari lebih lanjut cara menggunakan Kubernetes Secrets.
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: {{ .Values.secrets.password | b64enc }}
Terakhir, perbarui file values.yaml dengan konten berikut untuk secara opsional memberikan nilai default dari pengaturan konfigurasi dan rahasia yang dirujuk dalam file deployment.yamldan secrets.yaml. Nilai aktual mereka akan ditimpa oleh konfigurasi yang diambil dari Azure App Configuration.
# settings will be overwritten by App Configuration
settings:
color: red
message: myMessage
Lewati konfigurasi dari Azure App Configuration di pemasangan Helm
Pertama, unduh konfigurasi dari Azure App Configuration ke file myConfig.yaml. Gunakan filter kunci untuk hanya mengunduh kunci-kunci yang dimulai dengan pengaturan.. Jika dalam kasus Anda filter kunci tidak cukup untuk mengecualikan kunci referensi Key Vault, Anda dapat menggunakan argumen --skip-keyvault untuk mengecualikannya.
Petunjuk / Saran
Pelajari selengkapnya tentang perintah ekspor.
az appconfig kv export -n myAppConfiguration -d file --path myConfig.yaml --key "settings.*" --separator "." --format yaml
Selanjutnya, unduh rahasia ke file yang disebut mySecrets.yaml. Argumen baris perintah --resolve-keyvault menyelesaikan referensi Key Vault dengan mengambil nilai aktual di Key Vault. Anda harus menjalankan perintah ini dengan kredensial yang memiliki izin akses ke Key Vault yang sesuai.
Peringatan
Karena file ini berisi informasi sensitif, jaga agar file tetap berhati-hati dan bersihkan ketika tidak diperlukan lagi.
az appconfig kv export -n myAppConfiguration -d file --path mySecrets.yaml --key "secrets.*" --separator "." --resolve-keyvault --format yaml
Gunakan argumen -f peningkatan helm untuk meneruskan dua file konfigurasi yang telah Anda buat. Nilai tersebut akan menggantikan nilai konfigurasi yang ditentukan dalam values.yaml dengan nilai yang diekspor dari Azure App Configuration.
helm upgrade --install -f myConfig.yaml -f mySecrets.yaml "example" ./mychart
Anda juga dapat menggunakan argumen --set untuk peningkatan helm untuk meneruskan nilai kunci harfiah. Menggunakan argumen --set adalah cara yang baik untuk menghindari data sensitif yang bertahan ke disk.
$secrets = az appconfig kv list -n myAppConfiguration --key "secrets.*" --resolve-keyvault --query "[*].{name:key, value:value}" | ConvertFrom-Json
foreach ($secret in $secrets) {
$keyvalues += $secret.name + "=" + $secret.value + ","
}
if ($keyvalues){
$keyvalues = $keyvalues.TrimEnd(',')
helm upgrade --install --set $keyvalues "example" ./mychart
}
else{
helm upgrade --install "example" ./mychart
}
Pastikan konfigurasi dan rahasia berhasil disetel dengan mengakses Dasbor Kubernetes. Anda akan melihat bahwa nilai warna dan pesan dari Azure App Configuration diisi ke dalam variabel lingkungan kontainer.
Satu rahasia, kata sandi, disimpan sebagai referensi Key Vault dalam Azure App Configuration juga ditambahkan ke dalam Kubernetes Secrets.
Membersihkan sumber daya
Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.
Penting
Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya yang ada di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini dalam grup sumber daya yang ada yang berisi sumber daya lain yang ingin disimpan, hapus setiap sumber daya satu per satu dari panelnya masing-masing, bukan menghapus grup sumber daya.
- Masuk ke portal Azure, lalu pilih Grup sumber daya.
- Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
- Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
- Pilih Hapus grup sumber daya.
- Anda akan diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.
Setelah beberapa saat, grup sumber daya dan semua sumber dayanya akan dihapus.
Langkah berikutnya
Dalam tutorial ini, Anda mengekspor data Azure App Configuration yang akan digunakan dalam penyebaran Kubernetes dengan Helm. Untuk mempelajari selengkapnya tentang cara menggunakan App Configuration, lanjutkan ke sampel Azure CLI.