kubernetes - 使用 Terraform 和 Helm 在 EKS 集群上安装 Istio

标签 kubernetes terraform kubernetes-helm istio amazon-eks

我是 Terraform 和 Helm 世界的新手!我需要在 AWS EKS 集群上设置 Istio。
我正在尝试使用 Terraform 和 Helm 作为提供程序在 EKS 集群之上安装 Istio:
以下是相同的 terraform 代码:

resource "kubernetes_namespace" "istio-system" {
  metadata {
    annotations = {
      name = "istio-namespace"
    }

    labels = {
      mylabel = "label-value"
    }

    name = "istio-namespace"
  }
}

resource "helm_release" "istio_base" {
  name       = "istio-base"
  chart      = "./manifests/charts/base"
  namespace  = "istio-system"
}

resource "helm_release" "istiod" {
  name       = "istiod"
  chart      = "./manifests/charts/istio-control/istio-discovery"
  namespace  = "istio-system"
}

resource "helm_release" "istio-ingress" {
  name       = "istio-ingress"
  chart      = "./manifests/charts/gateways/istio-ingress"
  namespace  = "istio-system"
}

resource "helm_release" "istio-egress" {
  name       = "istio-ingress"
  chart      = "./manifests/charts/gateways/istio-egress"
  namespace  = "istio-system"
}


有人可以帮我回答我的几个疑问:
  • 我是否需要 Istio 和 helm 的服务帐户才能在 EKS 集群上安装 Istio?
  • 我是否需要创建特定的 IAM 角色才能在 EKS 集群上安装 Istio?
  • 在 EKS 集群上安装 Istio 需要进行哪些安全检查?
  • 假设将来我需要更改 helm chart 提供的一些默认值如何更改这些值?假设将内存从 3072Mi 更改为 4000Mi
  • 如何在 Istio 中使用 helm chart 启用 mTLS?
  • 使用 helm chart 安装附加组件,例如 Kiali?
  • 最佳答案

    是的,您还必须创建 IAM 角色,如果您想为工作人员创建它,您也可以为其创建 IAM。

    resource "aws_iam_role" "eksproject-cluster" {
      name = "terraform-eks-eksproject-cluster"
    
      assume_role_policy = <<POLICY
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "eks.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    POLICY
    }
    
    https://github.com/prabhatpankaj/eks-terraform-istio
    但如果您是 EKS 的管理员,则不需要创建 IAM,您可以直接设置 istio
    helm template istio-1.1.4/install/kubernetes/helm/istio --name istio --namespace istio-system  --set grafana.enabled=true --set tracing.enabled=true --set kiali.enabled=true --set kiali.dashboard.secretName=kiali --set kiali.dashboard.usernameKey=username --set kiali.dashboard.passphraseKey=passphrase | kubectl apply -f -
    

    Let's say in the future I need to change some default value provided by helm chart How can I change those values? Let's say changing memory from 3072Mi to 4000Mi


    你可以使用 Helm 做同样的事情
    将值更新为 values.yaml 并运行命令helm upragde istio -f values.yaml

    How can I enable mTLS using helm chart in Istio?


    对于服务之间或命名空间级别的 mTLS,您可能需要配置其他 YAML,或者您编辑图表应用这些新 YAML 作为 helm 的一部分。
    spec:
      mtls:
        mode: STRICT
    

    Installing add-on for example Kali using helm chart?


    它已经是掌 Helm 的一部分
    helm template istio-1.1.4/install/kubernetes/helm/istio --name istio --namespace istio-system  --set grafana.enabled=true --set tracing.enabled=true --set kiali.enabled=true --set kiali.dashboard.secretName=kiali --set kiali.dashboard.usernameKey=username --set kiali.dashboard.passphraseKey=passphrase | kubectl apply -f -
    
    --set kiali.enabled=true 覆盖命令中的默认值。

    关于kubernetes - 使用 Terraform 和 Helm 在 EKS 集群上安装 Istio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67057466/

    相关文章:

    kubernetes - kubectl get pods 不显示 READY-STATUS-RESTARTS

    azure - 如何在 terraform 中禁用应用程序配置的公共(public)访问

    yaml - 在 Helm 中将 YAML 转换为字符串

    templates - Helm 模板在 map 上循环

    kubernetes - 使用入口路由流量

    docker - 在IBM Cloud Kubernetes中公开HAProxy(端口80)Docker的最简单方法

    amazon-web-services - 添加的 SSL 不适用于使用 ACM 的 AWS 负载均衡器

    amazon-web-services - 无法使用 Terraform 启动 EC2

    powershell - Windows 自定义不适用于 Terraform

    azure - 在aks中部署nginx-ingress,没有rbac问题