繁体   English   中英

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

[英]Install Istio on EKS cluster using Terraform and Helm

我是 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 提供的一些默认值,我该如何更改这些值? 假设将 memory 从 3072Mi 更改为 4000Mi

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

  6. 使用 helm chart 安装附加组件,例如 Kiali?

是的,如果您想为员工创建 IAM 角色,您也必须创建 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 chart 提供的一些默认值,我该如何更改这些值? 假设将 memory 从 3072Mi 更改为 4000Mi

你可以用同样的头盔

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

helm upragde istio -f values.yaml

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

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

spec:
  mtls:
    mode: STRICT

使用 helm chart 安装附加组件,例如 Kali?

它已经是掌舵的一部分

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覆盖命令中的默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM