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

我是 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"
}


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

  1. 我是否需要 Istio 和 helm 的服务帐户才能在 EKS 集群上安装 Istio?

  2. 我是否需要创建特定的 IAM 角色才能在 EKS 集群上安装 Istio?

  3. 在 EKS 集群上安装 Istio 需要进行哪些安全检查?

  4. 假设将来我需要更改 helm chart 提供的一些默认值如何更改这些值?假设将内存从 3072Mi 更改为 4000Mi

  5. 如何在 Istio 中使用 helm chart 启用 mTLS?

  6. 使用 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 -
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 -

假设将来我需要更改 helm chart 提供的一些默认值如何更改这些值?假设将内存从 3072Mi 更改为 4000Mi

你可以使用头盔做同样的事情

将值更新为values.yaml并运行命令

helm upragde istio -f values.yaml

如何在 Istio 中使用 helm chart 启用 mTLS?

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

spec:
  mtls:
    mode: STRICT

使用舵图安装插件,例如 Kali?

它已经是掌舵的一部分

--set kiali.enabled=true覆盖命令中的默认值。


以上是使用Terraform和Helm在EKS集群上安装Istio的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>