在 minikube 上设置 kubeflow 管道时的问题

issues when setting up kubeflow pipeline on minikube

我在 macOS 上有一个 minikube 运行。尝试设置 kubeflow 管道时,我得到以下输出:

(base) ~/ml $ export PIPELINE_VERSION=1.7.0
(base) ~/ml $ kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=$PIPELINE_VERSION"
namespace/kubeflow created
customresourcedefinition.apiextensions.k8s.io/clusterworkflowtemplates.argoproj.io unchanged
customresourcedefinition.apiextensions.k8s.io/cronworkflows.argoproj.io unchanged
customresourcedefinition.apiextensions.k8s.io/workfloweventbindings.argoproj.io unchanged
customresourcedefinition.apiextensions.k8s.io/workflows.argoproj.io unchanged
customresourcedefinition.apiextensions.k8s.io/workflowtemplates.argoproj.io unchanged
serviceaccount/kubeflow-pipelines-cache-deployer-sa created
clusterrole.rbac.authorization.k8s.io/kubeflow-pipelines-cache-deployer-clusterrole unchanged
clusterrolebinding.rbac.authorization.k8s.io/kubeflow-pipelines-cache-deployer-clusterrolebinding unchanged
unable to recognize "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=1.7.0": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
unable to recognize "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=1.7.0": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
unable to recognize "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=1.7.0": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"

(base) ~/ml $ kubectl wait --for condition=established --timeout=60s crd/applications.app.k8s.io
Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "applications.app.k8s.io" not found
(base) ~/ml $  
(base) ~/ml $ kubectl get crd -A
NAME                                   CREATED AT
clusterworkflowtemplates.argoproj.io   2021-12-18T15:28:31Z
cronworkflows.argoproj.io              2021-12-18T15:28:31Z
workfloweventbindings.argoproj.io      2021-12-18T15:28:31Z
workflows.argoproj.io                  2021-12-18T15:28:31Z
workflowtemplates.argoproj.io          2021-12-18T15:28:31Z

具体是什么意思:

unable to recognize "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=1.7.0": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"

是否是以下错误的根本原因:

Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "applications.app.k8s.io" not found

 (base) ~/ml $ minikube version
minikube version: v1.24.0
commit: 76b94fb3c4e8ac5062daf70d60cf03ddcc0a741b

(base) ~/ml $ kubectl api-resources --api-group=apiextensions.k8s.io -o wide
NAME                        SHORTNAMES   APIVERSION                NAMESPACED   KIND                       VERBS
customresourcedefinitions   crd,crds     apiextensions.k8s.io/v1   false        CustomResourceDefinition   [create delete deletecollection get list patch update watch]

It turns out the kubeflow pipeline 1.7.0 does not work with kubernetes version higher than 1.22. I used kubernetes 1.21.8 with minikube and there is no problem installing kubeflow pipeline 1.7.0.

是的,这是正确的行为。

您提到过:

In particular, what does it mean:

unable to recognize "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=1.7.0": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"

这直接连接到 Kubernetes version 1.22 api changes:

The v1.22 release will stop serving the API versions we've listed immediately below. These are all beta APIs that were previously deprecated in favor of newer and more stable API versions.

  • Beta versions of the ValidatingWebhookConfiguration and MutatingWebhookConfiguration API (the admissionregistration.k8s.io/v1beta1 API versions)
  • The beta CustomResourceDefinition API (apiextensions.k8s.io/v1beta1)
  • The beta APIService API (apiregistration.k8s.io/v1beta1)
  • The beta TokenReview API (authentication.k8s.io/v1beta1)
  • Beta API versions of SubjectAccessReview, LocalSubjectAccessReview, SelfSubjectAccessReview (API versions from authorization.k8s.io/v1beta1)
  • The beta CertificateSigningRequest API (certificates.k8s.io/v1beta1)
  • The beta Lease API (coordination.k8s.io/v1beta1)
  • All beta Ingress APIs (the extensions/v1beta1 and networking.k8s.io/v1beta1 API versions)

从版本 1.22 开始,无法使用 apiextensions.k8s.io/v1beta1(此 API 不再可用),如果您想使用这种类型的 API 安装管道,你只能使用 Kubernetes 版本 1.21。