KServe adalah proyek sumber terbuka yang menyediakan API deklaratif untuk menyederhanakan penyebaran dan pengelolaan model pembelajaran mesin pada Kubernetes. Alibaba Cloud menyediakan komponen ack-kserve yang dioptimalkan berdasarkan KServe sumber terbuka dan terintegrasi dengan ekosistem Alibaba Cloud, termasuk kemampuan penyimpanan, logging, dan jaringan. ack-kserve mempermudah penyebaran dan operasi KServe dalam kluster Container Service for Kubernetes (ACK). Topik ini menjelaskan cara menyebarkan dan mengelola ack-kserve dalam kluster ACK.
Prasyarat
Sebuah kluster ACK Edge yang menjalankan Kubernetes 1.22 atau lebih baru telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster ACK Edge.
Kontroler Ingress NGINX telah diinstal. Untuk informasi lebih lanjut, lihat Cara menyebarkan kontroler Ingress dalam kluster ACK Edge.
Langkah 1: Instal komponen cert-manager
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Di pojok kiri atas halaman Helm, klik Deploy. Di langkah Basic Information di panel Sebarkan, tentukan parameter Application Name, pilih
cert-managerdi bagian Chart, lalu klik Next.Di 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 tersebut di halaman Helm.
Langkah 2: Instal ack-kserve
Secara default, komponen ack-kserve diterapkan dalam mode RawDeployment dan terintegrasi dengan kontroler Ingress Nginx.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Di pojok kiri atas halaman Helm, klik Deploy. Di langkah Basic Information di panel Sebarkan, tentukan parameter Application Name, pilih
ack-kservedi bagian Chart, lalu klik Next.Di 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 ack-kserve di halaman Helm.
Modifikasi konfigurasi inferenceservice-config di kserve.
Di halaman Helm, klik kserve, lalu klik inferenceservice-config, dan klik Edit YAML. Modifikasi bidang
ingressClassNamedi file YAML agar sesuai denganingressClassResource.nameyang ditentukan saat memasang kontroler Ingress NGINX.
Periksa apakah komponen ack-kserve sedang berjalan.
Jalankan perintah berikut untuk memeriksa status pod ack-kserve:
kubectl get pod -n kserveJika
runningdikembalikan untuk parameterSTATUSdi output, komponen ack-kserve telah dipasang.
(Opsional) Langkah 3: Lihat atau perbarui komponen ack-kserve
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Lihat detail komponen ack-kserve.
Di halaman Helm, temukan komponen ack-kserve dan klik View Details di kolom Actions. Di halaman detail komponen ack-kserve, Anda dapat melihat informasi di tab Informasi Dasar, Parameter, dan Riwayat.
Perbarui komponen ack-kserve.
Di halaman Helm, temukan komponen ack-kserve dan klik Update di kolom Actions. Di panel Perbarui Rilis, ubah versi komponen dan modifikasi pengaturan parameter.
(Opsional) Langkah 4: Hapus sumber daya dan uninstall komponen
Hapus sumber daya kustom KServe dan CustomResourceDefinitions (CRD) yang relevan sebelum melepas komponen ack-kserve. Ini mencegah pemborosan sumber daya.
PentingSebelum menghapus sumber daya kustom dan CRD, pastikan bahwa mereka tidak lagi diperlukan oleh bisnis Anda. Jika Anda menghapus CRD, sumber daya kustom yang relevan juga akan dihapus. Sumber daya kustom tidak dapat dipulihkan setelah dihapus.
Sebelum menghapus semua sumber daya kustom KServe, pastikan bahwa mereka tidak lagi diperlukan. Anda dapat menjalankan perintah berikut untuk menghapus sumber daya kustom:
# Lihat semua sumber daya kustom di kluster. kubectl get isvc --all-namespaces # Simpan semua sumber daya kustom di kluster. kubectl get isvc --all-namespaces -oyaml > isvc.yaml.bak # Hapus sumber daya kustom setelah Anda yakin bahwa Anda tidak lagi membutuhkannya. kubectl delete isvc --allHapus CRD KServe di kluster.
Sebelum menghapus CRD, Anda harus menghapus semua sumber daya kustom yang relevan. Jika tidak, Anda gagal menghapus CRD.
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
Lepas komponen ack-kserve.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Di halaman Helm, temukan komponen ack-kserve dan klik Delete di kolom Actions. Di kotak dialog Hapus, klik OK.
Lepas komponen cert-manager.
PeringatanSebelum melepas cert-manager, pastikan bahwa cert-manager tidak digunakan oleh komponen lain di kluster. Ini mencegah gangguan layanan akibat pelepasan cert-manager.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Di halaman Helm, temukan komponen cert-manager dan klik Delete di kolom Actions. Di kotak dialog Hapus, klik OK.
Jalankan perintah berikut untuk menghapus CRD yang relevan 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: Pesan kesalahan berikut muncul saat komponen ack-kserve sedang diinstal: 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 tidak diinstal atau belum siap di kluster Anda, kesalahan tersebut terjadi 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 keluaran berikut dikembalikan, komponen cert-manager telah diinstal di kluster.
certificates.cert-manager.io 2024-05-06T07:09:17ZJika tidak ada CRD komponen cert-manager yang tersedia di kluster Anda, instal komponen cert-manager. Untuk informasi lebih lanjut, lihat bagian Langkah 1: Instal komponen cert-manager dari topik ini.
Jalankan perintah berikut untuk memeriksa apakah komponen cert-manager sudah siap:
kubectl -n cert-manager get poJika keluaran berikut dikembalikan, pod komponen 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 dalam keadaan Siap, Anda dapat melepas komponen ack-kserve dan kemudian menginstal ulang. Untuk informasi lebih lanjut, lihat bagian "Lepas komponen ack-kserve" dari topik ini.