Dalam berbagai skenario bisnis—seperti menghubungkan workload ke database backend atau memvalidasi permintaan klien—Anda perlu menyimpan informasi sensitif seperti username, password, dan sertifikat. Untuk mencegah kebocoran data, kami merekomendasikan penggunaan secret di kluster Alibaba Cloud Container Compute Service (ACS) Anda guna mengelola informasi tersebut. Topik ini menjelaskan cara membuat secret di Konsol Container Compute Service, lalu menggunakannya dengan memasangnya sebagai volume atau mengeksposnya sebagai variabel lingkungan.
Prasyarat
-
Pod dan secret harus berada dalam kluster dan namespace yang sama.
-
Anda telah terhubung ke kluster Kubernetes menggunakan kubectl.
Membuat secret
Contoh ini membuat secret bernama secret-test.
-
Login ke Konsol ACS. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.
-
Di halaman Deployments, klik Create from YAML.
-
Pilih templat contoh atau sesuaikan konten YAML, lalu klik Create.
Templat YAML berikut membuat sebuah secret.
apiVersion: v1 kind: Secret metadata: name: secret-test type: Opaque data: username: YWRtaW4= # Teks biasanya adalah admin. Enkode dalam Base64. password: MTIzNDU= # Teks biasanya adalah 12345. Enkode dalam Base64.
Untuk membuat secret menggunakan formulir UI Konsol alih-alih YAML, lihat Create a secret.
Menggunakan secret sebagai volume
Kubectl
Anda dapat memasang secret sebagai file di dalam pod. Dalam contoh ini, kunci username dan password dari secret secret-test dipasang sebagai file di direktori /srt.
-
Buat file bernama example0.yaml dan salin konten berikut ke dalamnya.
apiVersion: v1 kind: Pod metadata: name: pod0 spec: containers: - name: redis image: redis volumeMounts: - name: srt mountPath: "/srt" readOnly: true volumes: - name: srt secret: secretName: secret-test -
Buat pod tersebut.
kubectl apply -f example0.yaml -
Verifikasi bahwa secret telah dipasang.
kubectl describe pod pod0 | grep -A 4 VolumesOutput yang diharapkan:
Volumes: srt: Type: Secret (a volume populated by a Secret) SecretName: secret-test Optional: false
Konsol
-
Login ke Konsol ACS. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.
-
Di halaman Deployments, klik Create from Image.
CatatanUntuk penjelasan parameter secara detail, lihat Create a stateless workload (deployment).
-
Di tab Basic Information, konfigurasikan parameter sesuai kebutuhan lalu klik Next.
-
Di tab Container, pada bagian Volume, klik Add Local Storage. Atur PV type menjadi secret. Untuk mount source, pilih secret yang telah Anda buat. Untuk container path, masukkan path akses di dalam container. Setelah selesai mengonfigurasi, klik Next.
Berikut contoh konfigurasinya.
Untuk mount source, pilih
secret-test. Untuk container path, masukkan/srt. -
Di tab Advanced, konfigurasikan parameter lalu klik Create.
Menggunakan secret sebagai variabel lingkungan
Anda dapat menggunakan salah satu metode berikut.
Kubectl
Contoh ini mengekspos kunci username dan password dari secret secret-test sebagai variabel lingkungan di dalam pod.
-
Buat file bernama example1.yaml dan salin konten berikut ke dalamnya.
apiVersion: v1 kind: Pod metadata: name: pod1 spec: containers: - name: redis image: redis env: - name: USERNAME valueFrom: secretKeyRef: name: secret-test key: username - name: PASSWORD valueFrom: secretKeyRef: name: secret-test key: password -
Buat pod tersebut.
kubectl apply -f example1.yaml -
Verifikasi bahwa variabel lingkungan telah ditetapkan.
kubectl describe pod pod1 | grep -A 2 EnvironmentOutput yang diharapkan:
Environment: USERNAME: <set to the key 'username' in secret 'secret-test'> Optional: false PASSWORD: <set to the key 'password' in secret 'secret-test'> Optional: false
Konsol
-
Login ke Konsol ACS. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.
-
Di halaman Deployments, klik Create from Image.
CatatanUntuk informasi selengkapnya, lihat Membuat beban kerja tanpa status (Penerapan).
-
Di tab Basic Information, konfigurasikan parameter sesuai kebutuhan lalu klik Next.
-
Di tab Container, pada bagian Environments, klik Add. Atur type menjadi Secret. Untuk value/value from, pilih secret yang telah Anda buat. Lalu, pilih kunci yang ingin Anda referensikan dan masukkan nama untuk variabel tersebut.