KServe adalah proyek open source yang menyediakan API deklaratif untuk menyederhanakan proses penerapan dan pengelolaan model pembelajaran mesin di Kubernetes. Alibaba Cloud menyediakan komponen ack-kserve yang telah dioptimalkan berdasarkan KServe open source dan diintegrasikan dengan ekosistem Alibaba Cloud, termasuk kemampuan penyimpanan, logging, dan jaringan yang disediakan oleh Alibaba Cloud. ack-kserve menyederhanakan penerapan dan operasi & pemeliharaan (O&M) KServe di kluster Container Service for Kubernetes (ACK). Topik ini menjelaskan cara menyebar dan mengelola ack-kserve di kluster ACK.
Prasyarat
-
Anda telah membuat ACK Edge cluster versi 1.22 atau lebih baru. Untuk informasi selengkapnya, lihat Create an ACK Edge cluster.
-
Anda telah menginstal komponen NGINX Ingress Controller. Untuk informasi selengkapnya, lihat Deploy the Ingress Controller in an ACK Edge cluster.
Langkah 1: Instal komponen cert-manager
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik .
Di pojok kiri atas halaman Helm, klik Deploy. Pada langkah Basic Information di panel Deploy, tentukan parameter Application Name, pilih
cert-managerdi bagian Chart, lalu klik Next.Pada langkah Parameters, periksa nilai parameter Chart Version dan informasi yang ditampilkan di bidang Parameters, lalu klik OK.
Setelah komponen cert-manager diterapkan, Anda dapat melihat informasi tentang komponen cert-manager di halaman Helm.
Langkah 2: Instal komponen ack-kserve
Secara default, komponen ack-kserve diterapkan dalam mode RawDeployment dan diintegrasikan dengan controller NGINX Ingress.
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik .
Di pojok kiri atas halaman Helm, klik Deploy. Pada langkah Basic Information di panel Deploy, tentukan parameter Application Name, pilih
ack-kservedi bagian Chart, lalu klik Next.Pada langkah Parameters, periksa nilai parameter Chart Version dan informasi yang ditampilkan di bidang Parameters, lalu klik OK.
Setelah komponen cert-manager di-deploy, Anda dapat melihat informasi mengenai komponen ack-kserve pada halaman Helm.
-
Perbarui item konfigurasi inferenceservice-config di kserve.
Pada halaman Helm, klik kserve, lalu klik inferenceservice-config. Klik Edit YAML. Di file YAML, atur bidang
ingressClassNameke nilaiingressClassResource.nameyang Anda tentukan saat menginstal NGINX Ingress Controller.
Periksa apakah komponen ack-kserve sedang berjalan.
Jalankan perintah berikut untuk menanyakan status pod ack-kserve:
kubectl get pod -n kserveJika output menunjukkan nilai
runningpada parameterSTATUS, berarti komponen ack-kserve telah berhasil diinstal.
(Opsional) Langkah 3: Lihat atau perbarui komponen ack-kserve
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik .
Lihat detail komponen ack-kserve.
Pada halaman Helm, temukan komponen ack-kserve dan klik View Details di kolom Actions. Di halaman detail komponen ack-kserve, Anda dapat melihat informasi pada tab Basic Information, Parameters, dan History.
Perbarui komponen ack-kserve.
Pada halaman Helm, temukan komponen ack-kserve dan klik Update di kolom Actions. Di panel Update Release, ubah versi komponen dan modifikasi pengaturan parameternya.
(Opsional) Langkah 4: Hapus resource dan uninstal komponen
Hapus custom resource KServe dan CustomResourceDefinitions (CRDs) terkait sebelum menguninstal komponen ack-kserve. Hal ini mencegah pemborosan resource.
PentingSebelum menghapus custom resource dan CRD, pastikan bahwa resource tersebut tidak lagi dibutuhkan oleh bisnis Anda. Jika Anda menghapus CRD, custom resource terkait juga akan ikut terhapus. Custom resource tidak dapat dipulihkan setelah dihapus.
Sebelum menghapus semua custom resource KServe, pastikan bahwa resource tersebut tidak lagi diperlukan. Anda dapat menjalankan perintah berikut untuk menghapus custom resource:
# Lihat semua custom resource di kluster. kubectl get isvc --all-namespaces # Simpan semua custom resource di kluster. kubectl get isvc --all-namespaces -oyaml > isvc.yaml.bak # Hapus custom resource setelah memastikan Anda tidak lagi membutuhkannya. kubectl delete isvc --allHapus CRD KServe di kluster.
Sebelum menghapus CRD, Anda harus menghapus semua custom resource terkait terlebih dahulu. Jika tidak, penghapusan CRD akan gagal.
kubectl delete crd clusterservingruntimes.serving.kserve.io kubectl delete crd clusterstoragecontainers.serving.kserve.io kubectl delete crd inferencegraphs.serving.kserve.io kubectl delete crd inferenceservices.serving.kserve.io kubectl delete crd predictors.serving.kserve.io kubectl delete crd servingruntimes.serving.kserve.io kubectl delete crd trainedmodels.serving.kserve.io
Uninstal komponen ack-kserve.
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik .
Pada halaman Helm, temukan komponen ack-kserve dan klik Delete di kolom Actions. Di kotak dialog Delete, klik OK.
Uninstal komponen cert-manager.
PeringatanSebelum menguninstal cert-manager, pastikan cert-manager tidak digunakan oleh komponen lain di kluster. Hal ini mencegah gangguan layanan akibat penghapusan cert-manager.
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik .
Pada halaman Helm, temukan komponen cert-manager dan klik Delete di kolom Actions. Di kotak dialog Delete, klik OK.
Jalankan perintah berikut untuk menghapus CRD terkait yang digunakan oleh cert-manager:
kubectl delete crd certificaterequests.cert-manager.io kubectl delete crd certificates.cert-manager.io kubectl delete crd challenges.acme.cert-manager.io kubectl delete crd clusterissuers.cert-manager.io kubectl delete crd issuers.cert-manager.io kubectl delete crd orders.acme.cert-manager.io
FAQ
Masalah: Muncul pesan error berikut saat menginstal komponen ack-kserve: failed to call webhook: Post "https://cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s": tls: failed to verify certificate: x509: certificate signed by unknown authority.
Penyebab: Komponen ack-kserve sangat bergantung pada komponen cert-manager. Jika komponen tersebut belum diinstal atau belum siap di kluster Anda, error di atas akan muncul saat Anda menginstal komponen ack-kserve.
Solusi:
Jalankan perintah berikut untuk memeriksa apakah komponen cert-manager telah diinstal di kluster Anda:
kubectl get crd |grep certificates.cert-manager.ioJika output berikut dikembalikan, berarti komponen cert-manager telah diinstal di kluster.
certificates.cert-manager.io 2024-05-06T07:09:17ZJika tidak ada CRD cert-manager di kluster Anda, instal komponen cert-manager. Untuk informasi selengkapnya, lihat bagian Langkah 1: Instal komponen cert-manager pada topik ini.
Jalankan perintah berikut untuk memeriksa apakah komponen cert-manager sudah siap:
kubectl -n cert-manager get poJika output berikut dikembalikan, berarti pod cert-manager sudah siap.
NAME READY STATUS RESTARTS AGE cert-manager-7f4bb44d5b-jrrfn 1/1 Running 0 23h cert-manager-cainjector-79544456cc-qp5pp 1/1 Running 0 23h cert-manager-webhook-f74ccb647-7m5dt 1/1 Running 0 23hJika semua pod berada dalam status Ready, Anda dapat menguninstal komponen ack-kserve lalu menginstalnya kembali. Untuk informasi selengkapnya, lihat bagian "Uninstall the ack-kserve component" pada topik ini.