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.
Tutorial ini mencakup berbagai skenario penyebaran untuk ekstensi registri yang terhubung dalam kluster Kubernetes dengan dukungan Arc. Setelah ekstensi registri yang terhubung diinstal, Anda dapat menyinkronkan gambar dari registri cloud ke lokasi lokal atau jarak jauh.
Sebelum Anda menyelam, luangkan waktu sejenak untuk mempelajari cara kerja Kubernetes dengan dukungan Arc secara konseptual.
Registri yang terhubung dapat disebarkan dengan aman menggunakan berbagai metode enkripsi. Untuk memastikan penyebaran berhasil, ikuti panduan mulai cepat untuk meninjau prasyarat dan informasi terkait lainnya. Secara default, registri yang terhubung dikonfigurasi dengan HTTPS, mode ReadOnly, Distribusi Kepercayaan, dan layanan Cert Manager. Anda dapat menambahkan lebih banyak kustomisasi dan dependensi sesuai kebutuhan, tergantung pada skenario Anda.
Apa itu layanan Cert Manager?
Manajer sertifikasi registri yang terhubung adalah layanan yang mengelola sertifikat TLS untuk ekstensi registri yang terhubung di kluster Kubernetes dengan dukungan Azure Arc. Ini memastikan komunikasi yang aman antara registri yang terhubung dan komponen lain dengan menangani pembuatan, perpanjangan, dan distribusi sertifikat. Layanan ini dapat diinstal sebagai bagian dari penyebaran registri yang terhubung, atau Anda dapat menggunakan manajer sertifikasi yang ada jika sudah diinstal pada kluster Anda.
Cert-Manager adalah add-on Kubernetes sumber terbuka yang mengotomatiskan manajemen dan penerbitan sertifikat TLS dari berbagai sumber. Ini mengelola siklus hidup sertifikat yang dikeluarkan oleh kumpulan CA yang dibuat menggunakan Layanan CA, memastikan sertifikat valid dan diperbarui sebelum kedaluwarsa.
Apa itu distribusi kepercayaan?
Distribusi kepercayaan registri yang terhubung mengacu pada proses mendistribusikan kepercayaan dengan aman antara layanan registri yang terhubung dan klien Kubernetes dalam kluster. Hal ini dicapai dengan menggunakan Otoritas Sertifikat (CA), seperti cert-manager, untuk menandatangani sertifikat TLS, yang kemudian didistribusikan ke layanan registri dan klien. Ini memastikan bahwa semua entitas dapat mengautentikasi satu sama lain dengan aman, mempertahankan lingkungan yang aman dan tepercaya dalam kluster Kubernetes.
Prasyarat
Untuk menyelesaikan tutorial ini, Anda perlu:
- Ikuti quickstart untuk menerapkan ekstensi registri yang terhubung dengan aman.
Menyebarkan ekstensi registri yang terhubung menggunakan cert-manager yang telah diinstal sebelumnya
Dalam tutorial ini, kami menunjukkan cara menggunakan layanan cert-manager yang telah diinstal sebelumnya pada kluster. Penyiapan ini memberi Anda kontrol atas manajemen sertifikat, memungkinkan Anda untuk menyebarkan ekstensi registri yang terhubung dengan enkripsi dengan mengikuti langkah-langkah yang disediakan:
Jalankan perintah az-k8s-extension-create di quickstart dan atur parameter cert-manager.enabled=true dan cert-manager.install=false untuk menentukan layanan Cert-Manager diinstal dan diaktifkan:
az k8s-extension create --cluster-name myarck8scluster \
--cluster-type connectedClusters \
--extension-type Microsoft.ContainerRegistry.ConnectedRegistry \
--name myconnectedregistry \
--resource-group myresourcegroup \
--config service.clusterIP=192.100.100.1 \
--config cert-manager.install=false \
--config-protected-file protected-settings-extension.json
Menyebarkan ekstensi registri yang terhubung menggunakan bring your own certificate (BYOC)
Dalam tutorial ini, kami menunjukkan cara menggunakan sertifikat Anda sendiri (BYOC) pada kluster. BYOC memungkinkan Anda menggunakan sertifikat publik dan pasangan kunci privat Anda sendiri, memberi Anda kontrol atas manajemen sertifikat. Penyiapan ini memungkinkan Anda menyebarkan ekstensi registri yang terhubung dengan enkripsi dengan mengikuti langkah-langkah yang disediakan:
Catatan
BYOC berlaku untuk pelanggan yang membawa sertifikat mereka sendiri yang sudah dipercaya oleh simpul Kubernetes mereka. Tidak disarankan untuk memperbarui simpul secara manual untuk mempercayai sertifikat.
Ikuti panduan cepat dan tambahkan variabel string sertifikat publik dan kunci privat beserta pasangan nilainya.
- Membuat sertifikasi SSL yang ditandatangani sendiri dengan IP layanan registri yang terhubung sebagai SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Dapatkan string yang dikodekan base64 dari file sertifikasi ini
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Contoh file pengaturan yang dilindungi dengan rahasia dalam format JSON:
Catatan
Sertifikat publik dan pasangan kunci privat harus dikodekan dalam format base64 dan ditambahkan ke file pengaturan yang dilindungi.
{
"connectionString": "[connection string here]",
"tls.crt": $TLS_CRT,
"tls.key": $TLS_KEY,
"tls.cacrt": $TLS_CRT
}
Sekarang, Anda dapat menyebarkan ekstensi Registri terhubung dengan HTTPS (enkripsi TLS) menggunakan sertifikat publik dan manajemen pasangan kunci privat dengan mengonfigurasi variabel yang diatur ke
cert-manager.enabled=falsedancert-manager.install=false. Dengan parameter ini, cert-manager tidak diinstal atau diaktifkan karena sertifikat publik dan pasangan kunci privat digunakan sebagai gantinya untuk enkripsi.Jalankan perintah az-k8s-extension-create untuk penyebaran setelah file pengaturan yang dilindungi diedit:
az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Menyebarkan registri yang terhubung dengan manajemen rahasia Kubernetes
Dalam tutorial ini, kami menunjukkan cara menggunakan rahasia Kubernetes pada kluster Anda. Rahasia Kubernetes memungkinkan Anda mengelola akses resmi antar pod dengan aman dalam kluster. Penyiapan ini memungkinkan Anda menyebarkan ekstensi registri yang terhubung dengan enkripsi dengan mengikuti langkah-langkah yang disediakan:
Ikuti Panduan Quickstart dan tambahkan variabel string rahasia TLS Kubernetes dan pasangan nilai.
- Membuat sertifikasi SSL yang ditandatangani sendiri dengan IP layanan registri yang terhubung sebagai SAN
mkdir /certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/mycert.key -x509 -days 365 -out /certs/mycert.crt -addext "subjectAltName = IP:<service IP>"
- Dapatkan string yang dikodekan base64 dari file sertifikasi ini
export TLS_CRT=$(cat mycert.crt | base64 -w0)
export TLS_KEY=$(cat mycert.key | base64 -w0)
- Membuat rahasia k8s
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
name: k8secret
type: kubernetes.io/tls
data:
ca.crt: $TLS_CRT
tls.crt: $TLS_CRT
tls.key: $TLS_KEY
EOF
Contoh file pengaturan yang dilindungi dengan rahasia dalam format JSON:
{ "connectionString": "[connection string here]", "tls.secret": “k8secret” }
Sekarang, Anda dapat menyebarkan ekstensi Registri yang terhubung dengan HTTPS (enkripsi TLS) menggunakan manajemen rahasia Kubernetes dengan mengonfigurasi variabel yang diatur ke cert-manager.enabled=false dan cert-manager.install=false. Dengan parameter ini, cert-manager tidak diinstal atau diaktifkan karena rahasia Kubernetes digunakan sebagai gantinya untuk enkripsi.
Jalankan perintah az-k8s-extension-create untuk penyebaran setelah file pengaturan yang dilindungi diedit:
az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file protected-settings-extension.json
Sebarkan registri yang terhubung menggunakan distribusi kepercayaan Anda sendiri dan nonaktifkan distribusi kepercayaan default registri yang terhubung
Dalam tutorial ini, kami menunjukkan cara mengonfigurasi distribusi kepercayaan pada kluster. Saat menggunakan rahasia Kubernetes atau sertifikat publik dan pasangan kunci privat Anda sendiri, Anda dapat menyebarkan ekstensi registri yang terhubung dengan enkripsi TLS, distribusi kepercayaan melekat Anda, dan menolak distribusi kepercayaan default registri yang terhubung. Penyiapan ini memungkinkan Anda menyebarkan ekstensi registri yang terhubung dengan enkripsi dengan mengikuti langkah-langkah yang disediakan:
Ikuti panduan cepat untuk menambahkan rahasia Kubernetes atau sertifikat publik, serta pasangan variabel + nilai kunci privat dalam file pengaturan yang dilindungi dalam format JSON.
Jalankan perintah az-k8s-extension-create dalam quickstart dan atur parameter
trustDistribution.enabled=false,trustDistribution.skipNodeSelector=falseuntuk menolak distribusi trust registri terhubung:az k8s-extension create --cluster-name myarck8scluster \ --cluster-type connectedClusters \ --extension-type Microsoft.ContainerRegistry.ConnectedRegistry \ --name myconnectedregistry \ --resource-group myresourcegroup \ --config service.clusterIP=192.100.100.1 \ --config trustDistribution.enabled=false \ --config cert-manager.enabled=false \ --config cert-manager.install=false \ --config-protected-file <JSON file path>
Dengan parameter ini, cert-manager tidak diinstal atau diaktifkan, selain itu, distribusi kepercayaan registri terhubung tidak diberlakukan. Sebagai gantinya, Anda menggunakan distribusi kepercayaan yang disediakan kluster untuk membangun kepercayaan antara registri tersambung dan simpul klien.
Membersihkan sumber daya
Dengan menghapus ekstensi registri Tersambung yang telah disebarkan, Anda menghapus pod registri Tersambung dan pengaturan konfigurasi yang sesuai.
Jalankan perintah az-k8s-extension-delete untuk menghapus ekstensi Registri tersambung:
az k8s-extension delete --name myconnectedregistry --cluster-name myarcakscluster \ --resource-group myresourcegroup \ --cluster-type connectedClustersJalankan perintah az acr connected-registry delete untuk menghapus registri Tersambung:
az acr connected-registry delete --registry myacrregistry \ --name myconnectedregistry \ --resource-group myresourcegroup
Dengan menghapus ekstensi Registri yang tersambung dan registri Tersambung, Anda menghapus semua sumber daya dan konfigurasi terkait.