Gunakan helm-mapkubeapis untuk memperbarui API Kubernetes yang sudah tidak digunakan atau dihapus dalam metadata rilis Helm ke API Kubernetes yang didukung. Ini membantu mengurangi beban kerja dan risiko, serta memastikan stabilitas layanan Anda. Topik ini menjelaskan cara memperbarui versi API dari sumber daya Kubernetes menggunakan helm-mapkubeapis untuk melakukan peningkatan langsung.
Skenario
Pada Kubernetes 1.22 dan versi berikutnya, beberapa versi API baru dirilis untuk objek sumber daya Kubernetes. Saat Anda memperbarui bagan Helm, pesan kesalahan berikut mungkin muncul. Untuk memperbaiki kesalahan tersebut, Anda dapat memperbarui versi API dari sumber daya Kubernetes.
manifest ter-render berisi sumber daya baru yang sudah ada. Tidak dapat melanjutkan dengan pembaruan: konflik sumber daya yang ada: jenis: MutatingWebhookConfiguration, namespace: , nama: mse-pilot-ack-mse-pilotError: UPGRADE GAGAL: manifest ter-render berisi sumber daya yang sudah ada. Tidak dapat melanjutkan dengan pembaruan: MutatingWebhookConfiguration "ack-node-local-dns-admission-controller" di namespace "" ada dan tidak dapat diimpor ke rilis saat ini: metadata kepemilikan tidak valid; kesalahan validasi label: kunci "app.kubernetes.io/managed-by" hilang: harus disetel ke "Helm"; kesalahan validasi anotasi: kunci "meta.helm.sh/release-name" hilang: harus disetel ke "ack-node-local-dns"; kesalahan validasi anotasi: kunci "meta.helm.sh/release-namespace" hilang: harus disetel ke "kube-system"
Prasyarat
Go 1.13 atau versi lebih baru telah terinstal. Untuk informasi lebih lanjut, lihat Go 1.13.
Langkah 1: Unduh dan instal helm-mapkubeapis
Jalankan perintah berikut untuk mengunduh dan menginstal helm-mapkubeapis:
mkdir -p ${GOPATH}/src/github.com
cd $_
git clone git@github.com:helm/helm-mapkubeapis.git
cd helm-mapkubeapis
make
export HELM_LINTER_PLUGIN_NO_INSTALL_HOOK=true
helm plugin install <your_path>/helm-mapkubeapisLangkah 2: Perbarui versi API
Contoh ini menjelaskan cara memperbarui versi API dari sumber daya MutatingWebhookConfiguration untuk rilis ack-node-local-dns.
Jalankan perintah berikut untuk melihat riwayat versi API dari sumber daya MutatingWebhookConfiguration:
vim ${GOPATH}/src/github.com/helm-mapkubeapis/config/Map.yamlKeluaran yang diharapkan:
- deprecatedAPI: "apiVersion: admissionregistration.k8s.io/v1beta1\nkind: MutatingWebhookConfiguration" newAPI: "apiVersion: admissionregistration.k8s.io/v1\nkind: MutatingWebhookConfiguration" deprecatedInVersion: "v1.17" removedInVersion: "v1.20"Keluaran menunjukkan bahwa versi API dari sumber daya MutatingWebhookConfiguration akan diperbarui dari v1beta1 ke v1 di Kubernetes 1.20 dan versi berikutnya.
Jalankan perintah berikut untuk memeriksa apakah versi API dalam rilis ack-node-local-dns perlu diperbarui:
helm mapkubeapis ack-node-local-dns --namespace kube-system --dry-runKeluaran yang diharapkan:
2022/01/18 14:21:57 CATATAN: Ini dalam mode dry-run, tindakan berikut tidak akan dieksekusi. 2022/01/18 14:21:57 Jalankan tanpa --dry-run untuk menjalankan tindakan yang dijelaskan di bawah ini: 2022/01/18 14:21:57 2022/01/18 14:21:57 Rilis 'ack-node-local-dns' akan diperiksa untuk API Kubernetes yang sudah tidak digunakan atau dihapus dan akan diperbarui jika perlu ke versi API yang didukung. 2022/01/18 14:21:57 Dapatkan versi terbaru rilis 'ack-node-local-dns'. 2022/01/18 14:21:57 Periksa rilis 'ack-node-local-dns' untuk API yang sudah tidak digunakan atau dihapus... 2022/01/18 14:21:57 Ditemukan API Kubernetes yang sudah tidak digunakan atau dihapus: "apiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration" API yang didukung setara: "apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration" 2022/01/18 14:21:57 Selesai memeriksa rilis 'ack-node-local-dns' untuk API yang sudah tidak digunakan atau dihapus. 2022/01/18 14:21:57 API yang sudah tidak digunakan atau dihapus ada, memperbarui rilis: ack-node-local-dns. 2022/01/18 14:21:57 Pemetaan rilis 'ack-node-local-dns' API yang sudah tidak digunakan atau dihapus ke versi yang didukung, selesai dengan sukses.Ditemukan API Kubernetes yang sudah tidak digunakan atau dihapusditampilkan dalam keluaran. Ini menunjukkan bahwa versi API perlu diperbarui.Jalankan perintah berikut untuk memperbarui versi API dari sumber daya MutatingWebhookConfiguration dari v1beta1 ke v1.
helm mapkubeapis ack-node-local-dns --namespace kube-systemKeluaran yang diharapkan:
2022/01/18 14:31:38 Rilis 'ack-node-local-dns' akan diperiksa untuk API Kubernetes yang sudah tidak digunakan atau dihapus dan akan diperbarui jika perlu ke versi API yang didukung. 2022/01/18 14:31:38 Dapatkan versi terbaru rilis 'ack-node-local-dns'. 2022/01/18 14:31:38 Periksa rilis 'ack-node-local-dns' untuk API yang sudah tidak digunakan atau dihapus... 2022/01/18 14:31:38 Ditemukan API Kubernetes yang sudah tidak digunakan atau dihapus: "apiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration" API yang didukung setara: "apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration" 2022/01/18 14:31:38 Selesai memeriksa rilis 'ack-node-local-dns' untuk API yang sudah tidak digunakan atau dihapus. 2022/01/18 14:31:38 API yang sudah tidak digunakan atau dihapus ada, memperbarui rilis: ack-node-local-dns. 2022/01/18 14:31:38 Setel status versi rilis 'ack-node-local-dns.v9' ke 'superseded'. 2022/01/18 14:31:38 Versi rilis 'ack-node-local-dns.v9' berhasil diperbarui. 2022/01/18 14:31:38 Tambahkan versi rilis 'ack-node-local-dns.v10' dengan API yang didukung yang diperbarui. 2022/01/18 14:31:38 Versi rilis 'ack-node-local-dns.v10' berhasil ditambahkan. 2022/01/18 14:31:38 Rilis 'ack-node-local-dns' dengan API yang sudah tidak digunakan atau dihapus berhasil diperbarui ke versi baru. 2022/01/18 14:31:38 Pemetaan rilis 'ack-node-local-dns' API yang sudah tidak digunakan atau dihapus ke versi yang didukung, selesai dengan sukses.Rilis 'ack-node-local-dns' dengan API yang sudah tidak digunakan atau dihapus berhasil diperbarui ke versi baru.ditampilkan dalam keluaran. Ini menunjukkan bahwa versi API dari sumber daya MutatingWebhookConfiguration diperbarui dari v1beta1 ke v1.