O ack-kserve é um add-on do Container Service for Kubernetes (ACK) baseado no projeto open source KServe, com otimizações da Alibaba Cloud. Ele simplifica a implantação e o gerenciamento de modelos de machine learning em clusters ACK Edge.
O KServe é um projeto open source que oferece uma API declarativa baseada em arquivos YAML para facilitar a implantação e o gerenciamento de modelos de machine learning no Kubernetes. O add-on ack-kserve integra-se a serviços da Alibaba Cloud, como armazenamento, logs e rede, para simplificar a implantação e a operação do KServe.
Pré-requisitos
Crie um cluster ACK Edge versão 1,22 ou posterior. Para obter instruções, consulte Create an ACK Edge cluster.
Instale o controlador NGINX Ingress no cluster ACK Edge. Para obter instruções, consulte Deploy an Ingress controller in an ACK Edge cluster.
Instale o cliente kubectl na sua máquina local e configure-o para se conectar ao cluster ACK Edge.
Etapa 1: Instalar o cert-manager
O ack-kserve depende do cert-manager para gerenciar certificados Transport Layer Security (TLS).
Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Applications > Helm.
Na página Helm, clique em Deploy. Em Basic Information, insira
cert-managerno campo Application Name, selecionecert-managerna seção Chart e clique em Next.-
Em Parameters, revise a Chart Version e os Parameters e clique em OK.
Após a implantação, o cert-manager aparece na página Helm.
-
Verifique se todos os pods do cert-manager estão prontos:
kubectl -n cert-manager get poTodos os pods devem exibir
1/1na colunaREADYeRunningna colunaSTATUS: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 23h
Etapa 2: Instalar o add-on ack-kserve
Por padrão, o ack-kserve é implantado no modo RawDeployment e integra-se ao controlador NGINX Ingress. As etapas a seguir instalam o add-on com essa configuração padrão.
Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Applications > Helm.
Na página Helm, clique em Deploy. Em Basic Information, insira
kserveno campo Application Name, selecioneack-kservena seção Chart e clique em Next.-
Em Parameters, revise a Chart Version e os Parameters e clique em OK.
Após a implantação, o release
kserveaparece na página Helm. -
Configure a classe de ingresso para o KServe.
Na página Helm, clique em kserve e, em seguida, em inferenceservice-config. Clique em Edit YAML e defina o campo
ingressClassNameno arquivo YAML com o mesmo valor deingressClassResource.nameespecificado durante a implantação do controlador NGINX Ingress. Para obter instruções, consulte Deploy an Ingress controller in an ACK Edge cluster. -
Verifique se o add-on ack-kserve está em execução:
kubectl get pod -n kserveSe todos os pods exibirem
runningna colunaSTATUS, o add-on ack-kserve foi instalado corretamente.
(Opcional) Etapa 3: Visualizar ou atualizar o ack-kserve
Visualizar detalhes do ack-kserve
Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Applications > Helm.
-
Na página Helm, localize kserve e clique em View Details na coluna Actions.
A página de detalhes exibe as abas Basic Information, Parameters e History.
Atualizar o ack-kserve
Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Applications > Helm.
Na página Helm, localize kserve e clique em Update na coluna Actions.
-
No painel Update Release, altere a versão do chart ou modifique os parâmetros e clique em OK.
Após a conclusão da atualização, o release
kserveexecuta com a versão do chart ou os parâmetros atualizados.
(Opcional) Etapa 4: Desinstalar o add-on ack-kserve
Desinstale os add-ons na seguinte ordem para evitar recursos órfãos:
Exclua os recursos personalizados do KServe.
Exclua as CustomResourceDefinitions (CRDs) do KServe.
Desinstale o add-on ack-kserve.
Desinstale o cert-manager.
Exclua as CRDs do cert-manager.
Excluir recursos personalizados e CRDs do KServe
A exclusão de uma CRD remove automaticamente todos os recursos personalizados associados, e esses recursos não podem ser restaurados após a exclusão. Verifique se seus recursos InferenceService não são mais necessários antes de prosseguir.
-
Faça backup e exclua todos os recursos personalizados InferenceService:
# List all InferenceService resources in the cluster kubectl get isvc --all-namespaces # Back up all resources to a file kubectl get isvc --all-namespaces -oyaml > isvc.yaml.bak # Delete all resources kubectl delete isvc --all -
Exclua as CRDs do KServe:
ImportanteExclua todos os recursos personalizados antes de excluir uma CRD. Se você excluir a CRD primeiro, os recursos personalizados associados serão removidos sem backup.
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
Desinstalar o ack-kserve
Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Applications > Helm.
Na página Helm, localize kserve, o release Helm do add-on ack-kserve, e clique em Delete na coluna Actions. Na caixa de diálogo, clique em OK.
Desinstalar o cert-manager
Certifique-se de que nenhum outro add-on do cluster dependa do cert-manager antes de desinstalá-lo. A remoção do cert-manager enquanto ele ainda está em uso interrompe as cargas de trabalho dependentes.
Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Applications > Helm.
Na página Helm, localize cert-manager e clique em Delete na coluna Actions. Na caixa de diálogo, clique em OK.
-
Exclua as CRDs do 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
Próximas etapas
Após instalar o add-on ack-kserve, crie recursos personalizados InferenceService para implantar seus modelos de machine learning como serviços de inferência no cluster ACK Edge.
Solução de problemas
Falha na verificação do certificado TLS durante a instalação do ack-kserve
A instalação do ack-kserve falha com o seguinte erro:
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
O ack-kserve exige que o cert-manager esteja totalmente pronto. Esse erro ocorre quando o cert-manager não está instalado ou seus pods ainda não estão em execução.
-
Verifique se o cert-manager está instalado:
kubectl get crd | grep certificates.cert-manager.ioSaída esperada se o cert-manager estiver instalado:
certificates.cert-manager.io 2024-05-06T07:09:17ZSe não houver saída, instale o cert-manager primeiro.
-
Verifique se os pods do cert-manager estão prontos:
kubectl -n cert-manager get poSe o cert-manager estiver pronto, todos os pods exibirão
1/1na colunaREADY: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 23hSe todos os pods estiverem prontos, desinstale o ack-kserve e reinstale-o.