Istio CRD 安装失败

Istio CRD failed to install

我正在尝试在我的 DO K8s 集群中安装 istio

我创建了一个空资源来下载 istio 和 运行 使用此示例的 helm 图表 - https://mohsensy.github.io/sysadmin/2021/04/09/install-istio-with-terraform.html

TF 看起来像 -

resource "kubernetes_namespace" "istio_system" {
  metadata {
    name = "istio-system"
  }
}

resource "null_resource" "istio" {
  provisioner "local-exec" {
    command = <<EOF
      set -xe

      cd ${path.root}
      rm -rf ./istio-1.9.2 || true
      curl -sL https://istio.io/downloadIstio | ISTIO_VERSION=1.9.2 sh -
      rm -rf ./istio || true
      mv ./istio-1.9.2 istio
    EOF
  }

  triggers = {
    build_number = timestamp()
  }
}

resource "helm_release" "istio_base" {
  name = "istio-base"
  chart = "istio/manifests/charts/base"

  timeout = 120
  cleanup_on_fail = true
  force_update = true
  namespace = "istio-system"

  depends_on = [
    digitalocean_kubernetes_cluster.k8s_cluster,
    kubernetes_namespace.istio_system,
    null_resource.istio
  ]
}

我可以看到 istio 图表与 CRD 一起下载。

│ Error: failed to install CRD crds/crd-all.gen.yaml: unable to recognize "": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
│ 
│   with helm_release.istio_base,
│   on istio.tf line 32, in resource "helm_release" "istio_base":
│   32: resource "helm_release" "istio_base" {

我需要帮助来理解 unable to recognize "" 在这里讲述的内容!

我正在寻找带有一些解释的解决方案。

错误正在尝试帮助您:

unable to recognize "": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"

查看您的 Kubernetes 环境中可用的 API 资源:

$ kubectl api-resources | grep CustomResourceDefinition

您可能会看到如下内容:

customresourcedefinitions             crd,crds                               apiextensions.k8s.io/v1                        false        CustomResourceDefinition

请注意那里的 API 版本:它是 aspiextensions.k8s/io/v1,而不是 /v1beta1。您的清单是为旧版本的 Kubernetes 构建的。更改是您只需将清单中的 apiVersion 更改为正确的值即可。