GA Pribadi: Menggunakan pengelola sertifikat kustom dengan Apigee HybridFitur ini ditawarkan sebagai GA pribadi untuk Apigee hybrid versi 1.13. |
---|
Fitur ini memberi Anda opsi untuk menginstal pengelola sertifikat kustom untuk Apigee hybrid dengan konfigurasi terkait kontrol akses berbasis peran (RBAC) yang diubah menggunakan izin yang membatasi.
Sebelum memulai
Sebelum melanjutkan ke langkah-langkah penginstalan, download diagram Helm menggunakan perintah berikut:
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CERT_MANAGER_VERSION=v1.14.5
helm pull $CHART_REPO/apigee-cert-manager --version $CERT_MANAGER_VERSION --untar
Menyiapkan cert-manager kustom
Penyiapan cert-manager kustom memerlukan langkah-langkah berikut:
Penginstalan baru cert-manager kustom
Untuk melakukan penginstalan ulang cert-manager kustom agar dapat digunakan dengan Apigee hybrid, selesaikan langkah-langkah berikut:
- Instal CRD menggunakan
kubectl
dengan perintah berikut:export CERT_MANAGER_VERSION=v1.14.5
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.crds.yaml
- Instal komponen cert-manager menggunakan diagram Helm.
helm install CERT_MANAGER_RELEASE_NAME apigee-cert-manager/ \ --namespace APIGEE_NAMESPACE
Selanjutnya, saat versi baru diagram tersedia, Anda dapat mengupgradenya dengan
helm upgrade
:helm upgrade CERT_MANAGER_RELEASE_NAME apigee-cert-manager/ \ --namespace APIGEE_NAMESPACE
Mengupgrade ke cert-manager kustom
Untuk bermigrasi dari cert-manager non-kustom yang ada ke versi kustom, gunakan langkah-langkah berikut. Hanya satu cert-manager yang dapat berjalan di cluster pada waktu tertentu.
- Nonaktifkan webhook yang ada dan perbarui deployment agar memiliki 0 replika untuk migrasi yang lancar:
kubectl delete validatingwebhookconfiguration cert-manager-webhook
kubectl delete mutatingwebhookconfiguration cert-manager-webhook
# set the replicas to 0
kubectl scale deployment cert-manager -n cert-manager --replicas=0
kubectl scale deployment cert-manager-cainjector -n cert-manager --replicas=0
kubectl scale deployment cert-manager-webhook -n cert-manager --replicas=0
- Instal CRD:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/${CERT_MANAGER_VERION}/cert-manager.crds.yaml
- Instal cert-manager kustom:
helm install CERT_MANAGER_RELEASE_NAME apigee-cert-manager/ \ --namespace APIGEE_NAMESPACE
- Setelah penginstalan selesai, Anda dapat menghapus cert-manager yang diinstal sebelumnya.
Menginstal atau mengupgrade Apigee hybrid dengan cert-manager kustom
Menginstal atau mengupgrade hybrid dengan pengelola sertifikat kustom memerlukan perubahan berikut pada prosedur penginstalan atau upgrade.
Perubahan pada penginstalan Apigee Hybrid
Saat menginstal Apigee hybrid v1.13 atau yang lebih baru dengan pengelola cert-cert kustom, buat perubahan berikut di file overrides.yaml
sebelum menginstal komponen Apigee hybrid di Langkah 10: Menginstal Apigee hybrid Menggunakan Helm.
Perbarui file overrides.yaml
untuk memberi tahu operator tempat menemukan resource terkait cert-manager dan memungkinkan operator menggunakan Issuer cert-manager kustom.
certManager: namespace: APIGEE_NAMESPACE ao: certManagerCAIssuerEnabled: true
Perubahan pada proses upgrade hybrid Apigee
Saat mengupgrade Apigee hybrid ke v1.13 atau yang lebih tinggi dengan pengelola cert-cert kustom, lakukan perubahan berikut setelah langkah-langkah di Mempersiapkan upgrade diagram Helm dan sebelum Menginstal diagram Helm Apigee hybrid:
- Buat perubahan berikut dalam file
overrides.yaml
untuk memberi tahu operator tempat menemukan resource terkait cert-manager dan memungkinkan operator menggunakan ClusterIssuer cert-manager kustom.certManager: namespace: APIGEE_NAMESPACE ao: certManagerCAIssuerEnabled: true
- Salin secret apigee-ca yang ada dari namespace cert-manager ke namespace apigee Anda:
kubectl -n cert-manager get secret apigee-ca -o yaml > apigee-ca.yaml
- Edit file
apigee-ca.yaml
untuk menghapus parameter namespace yang mengidentifikasi namespace sebagaicert-manager
. - Terapkan secret
apigee-ca
ke namespace apigee Anda dengankubectl apply
:kubectl -n APIGEE_NAMESPACE apply -f apigee-ca.yaml
Me-roll back upgrade Apigee hybrid
Jika Anda perlu melakukan roll back ke versi Apigee hybrid sebelumnya, ikuti petunjuk di Melakukan roll back ke versi sebelumnya.
Mengembalikan dan meng-uninstal cert-manager kustom
Melakukan roll back cert-manager kustom
Untuk melakukan roll back cert-manager kustom, gunakan langkah-langkah berikut:
- Uninstal rilis Helm menggunakan perintah berikut:
helm uninstall CERT_MANAGER_RELEASE_NAME
- Instal cert-manager reguler (non-kustom) menggunakan metode pilihan Anda. Pastikan untuk menggunakan versi CRD yang sesuai. Misalnya, jika Anda menggunakan metode kubectl untuk menginstal cert-manager, metode ini akan mengupdate CRD ke versi yang sesuai, karena payload juga akan menyertakan CRD. Pastikan metode penginstalan yang Anda gunakan menyertakan CRD.
Meng-uninstal cert-manager kustom
Untuk meng-uninstal cert-manager kustom, gunakan langkah-langkah berikut:
- Uninstal rilis Helm menggunakan perintah berikut:
helm uninstall CERT_MANAGER_RELEASE_NAME
- Hapus CRD dengan perintah berikut:
export CERT_MANAGER_VERSION=v1.14.5
kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.crds.yaml
Infrastructure as Code (overrides.yaml)
Diagram Helm mendukung penggantian sesuai kebutuhan, sehingga Anda dapat menggunakan file penggantian sesuai kebutuhan selama proses penginstalan atau upgrade.
Untuk menghindari kebingungan, sebaiknya gunakan nama file seperti cert-manager-overrides.yaml
.
Lihat dokumentasi cert-manager untuk semua konfigurasi penggantian cert-manager yang didukung.
Konfigurasi cert-manager umum
Contoh berikut menunjukkan cara menyelesaikan beberapa konfigurasi cert-manager umum di Apigee hybrid.
Mengganti gambar
Berikut adalah contoh penggantian image beserta imagepullsecrets
jika Anda perlu menghosting image secara pribadi.
# cert-manager-overrides.yaml global: # Reference to one or more secrets to be used when pulling images # ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ # # For example: # imagePullSecrets: # - name: "image-pull-secret" imagePullSecrets: [] image: # Override the image tag to deploy by setting this variable. # If no value is set, the chart's appVersion will be used. repository: quay.io/jetstack/cert-manager-controller webhook: image: # without a tag repository: quay.io/jetstack/cert-manager-webhook cainjector: image: # without a tag repository: quay.io/jetstack/cert-manager-cainjector startupapicheck: image: # without a tag repository: quay.io/jetstack/cert-manager-startupapicheck
NodeSelector dan Afinitas Node
Dalam penginstalan Apigee Hybrid, Anda harus menggunakan node terpisah untuk pod Cassandra dan pod lainnya. Jika ingin menjalankan cert-manager di node pool yang tidak terkait dengan Cassandra, Anda dapat menggunakan afinitas node:
# A Kubernetes Affinity, if required; see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core # # For example: # affinity: # nodeAffinity: # requiredDuringSchedulingIgnoredDuringExecution: # nodeSelectorTerms: # - matchExpressions: # - key: cloud.google.com/gke-nodepool # operator: In # values: # - master affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: KEY operator: In values: - value for the non-C* node pool webhook: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: KEY operator: In values: - value for the non-C* node pool cainjector: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: KEY operator: In values: - value for the non C* node pool
Toleransi
Anda juga dapat memberikan toleransi, seperti yang ditunjukkan pada contoh berikut:
# A list of Kubernetes Tolerations, if required; see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core # # For example: # tolerations: # - key: node.kubernetes.io/not-ready # operator: Equal # value: master # effect: NoSchedule tolerations: [] webhook: tolerations: [] cainjector: tolerations: [] startupapicheck: tolerations: []