Menggunakan Azure Container Registry dengan Azure Red Hat OpenShift (ARO)

Azure Container Registry (ACR) adalah layanan registri kontainer terkelola yang dapat Anda gunakan untuk menyimpan citra kontainer Docker pribadi dengan kemampuan perusahaan seperti replikasi geografis. Untuk mengakses ACR dari kluster ARO, kluster dapat melakukan autentikasi dengan ACR dengan menyimpan info masuk login Docker dalam rahasia Kubernetes. Demikian juga, kluster ARO dapat menggunakan imagePullSecret dalam spesifikasi pod untuk melakukan autentikasi terhadap registri saat menarik citra. Dalam artikel ini, Anda akan mempelajari cara menyiapkan Azure Container Registry dengan kluster Azure Red Hat OpenShift untuk menyimpan dan menarik citra kontainer Docker pribadi.

Prasyarat

Panduan ini mengasumsikan bahwa Anda sudah memiliki Azure Container Registry. Jika tidak, gunakan portal Microsoft Azure atau instruksi Azure CLI untuk membuat registri kontainer.

Artikel ini juga mengasumsikan bahwa Anda memiliki kluster Azure Red Hat OpenShift yang sudah ada dan memasang CLI oc. Jika tidak, ikuti instruksi dalam Tutorial membuat kluster ARO.

Mendapatkan rahasia tarik

Anda akan memerlukan rahasia tarik dari ACR untuk mengakses registri dari kluster ARO Anda.

Untuk mendapatkan info masuk rahasia tarik, Anda dapat menggunakan portal Microsoft Azure atau Azure CLI.

Jika menggunakan portal Microsoft Azure, buka instans ACR Anda, dan pilih Tombol Akses. docker-username Anda adalah nama registri kontainer Anda, gunakan kata sandi atau kata sandi2 untuk docker-password.

Access Keys

Sebagai gantinya, Anda bisa menggunakan Azure CLI untuk mendapatkan info masuk ini:

az acr credential show -n <your registry name>

Membuat rahasia Kubernetes

Sekarang, kita akan menggunakan info masuk ini untuk membuat rahasia Kubernetes. Jalankan perintah berikut dengan info masuk ACR Anda:

oc create secret docker-registry \
    --docker-server=<your registry name>.azurecr.io \
    --docker-username=<your registry name> \
    --docker-password=******** \
    --docker-email=unused \
    acr-secret

Catatan

Rahasia ini akan disimpan dalam Proyek OpenShift (Namespace Layanan Kubernetes) saat ini dan hanya akan dapat dirujuk oleh pod yang dibuat di Proyek tersebut. Lihat dokumen ini untuk mengetahui petunjuk lebih lanjut tentang membuat rahasia tarik lebar kluster.

Selanjutnya, tautkan rahasia ke akun layanan yang akan digunakan oleh pod, sehingga pod dapat mencapai registri kontainer. Nama akun layanan harus sesuai dengan nama akun layanan yang digunakan oleh pod. default adalah akun layanan default:

oc secrets link default <pull_secret_name> --for=pull

Membuat pod menggunakan citra registri privat

Setelah kita menyambungkan kluster ARO ke ACR Anda, mari kita tarik citra dari ACR Anda untuk membuat pod.

Mulai dengan podSpec dan tentukan rahasia yang Anda buat sebagai imagePullSecret:

apiVersion: v1
kind: Pod
metadata:
  name: hello-world
spec:
  containers:
  - name: hello-world
    image: <your registry name>.azurecr.io/hello-world:v1
  imagePullSecrets:
  - name: acr-secret

Untuk menguji bahwa pod Anda sedang aktif dan berjalan, jalankan perintah ini dan tunggu sampai statusnya Berjalan:

$ oc get pods --watch
NAME         READY   STATUS    RESTARTS   AGE
hello-world  1/1     Running   0          30s

Langkah berikutnya