使用 Terraform 或 Helm 在 EKS 集群上的 ISTIO 上进行设置

2024-01-29

我是 Terraform 和 Helm 世界的新手!我需要在 AWS EKS 集群上设置 Istio。我能够使用 Terraform 设置 EKS 集群。我正在考虑通过编写 terraform 模块使用 Terraform 在 EKS 集群之上安装 ISTIO。然而,我发现我们可以使用 Helm Chart 在 eks 之上设置 Istio。

有人可以帮我回答我的几个问题吗:

  1. 我应该使用 Terraform 安装 Istio 吗?如果是,是否有可用的 terraform 模块或我如何编写一个?
  2. 我应该使用 Helm Chart 安装 Istio 吗?如果是,它的优点和缺点是什么?
  3. 我需要编写一个管道来在 EKS 集群上安装 Istio。我应该结合使用 terraform 和 Helm 作为提供程序吗?

非常感谢您的宝贵时间。感谢您的所有帮助!


为了扩展 @Chris terraform + helm 提供者的第三个选项,

至于 istio 1.12.0+ 版本,他们官方有一个可用的 helm 仓库:

istio 舵安装 https://istio.io/latest/docs/setup/install/helm/

以及 terraform 的 helm 提供者Terraform 头盔提供商 https://registry.terraform.io/providers/hashicorp/helm/latest/docs允许仅由 terraform 配置的简单设置:

provider "helm" {
  kubernetes {
    // enter the relevant authentication
  }
}

locals {
  istio_charts_url = "https://istio-release.storage.googleapis.com/charts"
}

resource "helm_release" "istio-base" {
  repository       = local.istio_charts_url
  chart            = "base"
  name             = "istio-base"
  namespace        = var.istio-namespace
  version          = "1.12.1"
  create_namespace = true
}

resource "helm_release" "istiod" {
  repository       = local.istio_charts_url
  chart            = "istiod"
  name             = "istiod"
  namespace        = var.istio-namespace
  create_namespace = true
  version          = "1.12.1"
  depends_on       = [helm_release.istio-base]
}

resource "kubernetes_namespace" "istio-ingress" {
  metadata {
    labels = {
      istio-injection = "enabled"
    }

    name = "istio-ingress"
  }
}

resource "helm_release" "istio-ingress" {
  repository = local.istio_charts_url
  chart      = "gateway"
  name       = "istio-ingress"
  namespace  = kubernetes_namespace.istio-ingress-label.id
  version    = "1.12.1"
  depends_on = [helm_release.istiod]
}

这是为制作做好准备所缺少的最后一步

不再需要使用 null_resource 在本地保存 helm 图表

如果您希望覆盖默认的 helm 值,这里很好地显示了它:,选择相关图表并查看数值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Terraform 或 Helm 在 EKS 集群上的 ISTIO 上进行设置 的相关文章

  • Kubernetes Pod 中的日志未显示

    我在 pod 中设置了 Kubernetes 并运行 grpc 服务 我成功命中服务上的端点 其中有 print 语句 但我在日志文件中没有看到任何日志 我之前在 Kubernetes 中运行 cron 作业时见过这种情况 并且日志仅在作业
  • 为什么ReadWriteOnce在不同的节点上工作?

    我们在 K8s 上运行的平台有不同的组件 我们需要在其中两个组件 comp A 和 comp B 之间共享存储 但我们错误地将 PV 和 PVC 定义为ReadWriteOnce即使这两个组件在不同的节点上运行 一切都正常 我们能够从两个组
  • us-east-1 中的 Terraform AWS ACM 证书适用于 eu-west-1 中的资源

    我有一个 terraform 模块 主要在 eu west 1 中提供资源 我需要 ACM 证书才能附加到 Cloudfront 发行版 证书必须在 us east 1 中配置 因此我配置了两个提供程序 provider aws versi
  • Spark 上的 Kubernetes 驱动程序 pod 清理

    我在 kubernetes 1 19 上运行 Spark 3 1 1 作业完成后 执行程序 Pod 就会被清理 但驱动程序 Pod 仍处于完成状态 驱动程序完成后如何清理 要设置任何配置选项吗 NAME READY STATUS RESTA
  • Kubernetes 水平 Pod 自动缩放初始延迟?

    Kubernetes 水平 Pod 自动缩放中是否有配置来指定在放大 缩小之前运行或创建 Pod 的最小延迟 例如 I am looking for a flag like this horizontal pod autoscale ini
  • Kubernetes 服务 IP 会变化吗?

    我对 kubernetes docker 非常陌生 所以如果这是一个愚蠢的问题 我深表歉意 我有一个正在访问一些服务的 Pod 在我的容器中 我正在运行 python 脚本并需要访问该服务 目前我正在使用服务的 IP 地址来执行此操作 服务
  • Kubernetes NetworkPolicy 限制服务的出口流量

    是否可以仅允许特定服务的出口流量 这是我天真的尝试 kind NetworkPolicy metadata name default deny all egress namespace default spec podSelector eg
  • 为什么不推荐多区域 Kubernetes 部署?

    Kubernetes 文档说支持多区域集群 但不支持多区域集群 同时 Kubernetes 都支持failure domain zone and failure domain region 让我的 Kubernetes 集群同时成为多专区和
  • 如何在minikube中创建多个集群

    我需要在 minikube 中创建额外的集群 我搜索了一段时间没有找到任何这方面的资源 如何在 minikube 中创建集群 创建第一个名为cluster 1 minikube start p cluster 1 创建第二个集群 名称为cl
  • 带有 Helm Charts 的蓝绿部署

    我们可以使用 Helm Charts 来部署应用程序 helm install name the release helm the service helm namespace myns 而我们冷 滚动升级 部署使用 helm upgrad
  • kubernetes 上的 gitlab-ci 缓存与 minio-service 不再工作

    我正在运行 gitlab 10 4 3 和 gitlab runner 10 4 0 作为 kubernetes 部署 带有 kubernetes runner 和一个用于缓存的 minio server 我是按照安装的gitlab 文档
  • 使用 Terraform 创建/销毁 AWS 帐户?

    我正在尝试创建一个工具来轻松创建和销毁我的 AWS 组织中的 AWS 账户 或者至少将其从组织中删除 如果无法删除 这些帐户将成为沙盒 预算很少 并在几周后被销毁 我发现 Terraform 有一个特定的资源 称为aws 组织 帐户 htt
  • Kubernetes,无法访问其他节点服务

    我正在 3 个带有 CentOS 7 的 VirtualBox 虚拟机 1 个 master 和 2 个 minions 中使用 Kubernetes 不幸的是安装手册说的是这样的every service will be accessib
  • Google Cloud Kubernetes 访问私有 Docker Hub 托管映像

    是否可以将私有镜像从 Docker Hub 拉取到 Google Cloud Kubernetes 集群 是否建议这样做 或者我是否需要将我的私有映像也推送到 Google Cloud 我阅读了文档 但没有发现任何内容可以清楚地解释这一点
  • 在 Kubernetes Pod 部署名称上添加随机字符串

    我有一个模板 它基本上是一个实用程序容器 用于在 pod 内运行 kubectl 我想要做的是能够使用不同的名称对同一模板进行多个部署 如 utilitypod randomID 中所示 有没有办法通过 kubectl 和一些 shell
  • Kubernetes 滚动更新不停机?

    根据https kubernetes io docs tutorials stateful application basic stateful set scaling a statefulset https kubernetes io d
  • 在 Kubernetes 中什么是删除集合?

    列出 K8s 中的所有 API 资源时 您会得到 kubectl api resources owide NAME SHORTNAMES APIGROUP NAMESPACED KIND VERBS bindings true Bindin
  • 找不到 Kubernetes 持久卷挂载

    我正在尝试创建并安装卷 但陷入困境 这部分创建存储 apiVersion v1 kind PersistentVolumeClaim metadata name pvclaim2 spec accessModes ReadWriteOnce
  • 如何在 kubernetes 上设置 hostPath 卷权限?

    似乎默认情况下 Kubernetes 创建一个 hostPath 卷755对目录的权限 是否可以通过 a 将这个值设置为其他值volume规格 与手动执行操作相反chmod在相关主机目录上 initContainers name volum
  • 无法访问通过 NodePort 暴露的 Kubernetes 服务

    我正在使用 minikube 在最新的 MacOS 上测试 kubernetes 这是我的相关 YAML 命名空间 yml apiVersion v1 kind Namespace metadata name micro labels na

随机推荐