首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Terraform配置AWS EKS自动定标器?

如何使用Terraform配置AWS EKS自动定标器?
EN

Stack Overflow用户
提问于 2019-09-14 02:51:38
回答 2查看 4.3K关注 0票数 6

我正在使用AWS EKS提供商(github.com/terraform-aws-modules/terraform-aws-eks )。我将按照https://learn.hashicorp.com/terraform/aws/eks-intro的教程操作

但是,这似乎没有启用自动缩放...它似乎缺少cluster-autoscaler pod /守护进程?

Terraform能够提供此功能吗?或者我需要按照如下的指导来设置:https://eksworkshop.com/scaling/deploy_ca/

EN

回答 2

Stack Overflow用户

发布于 2019-09-14 02:58:59

您可以使用Terraform部署Kubernetes资源。有Kubernetes提供程序和Helm提供程序。

代码语言:javascript
复制
data "aws_eks_cluster_auth" "authentication" {
  name = "${var.cluster_id}"
}

provider "kubernetes" {
  # Use the token generated by AWS iam authenticator to connect as the provider does not support exec auth
  # see: https://github.com/terraform-providers/terraform-provider-kubernetes/issues/161
  host = "${var.cluster_endpoint}"

  cluster_ca_certificate = "${base64decode(var.cluster_certificate_authority_data)}"
  token                  = "${data.aws_eks_cluster_auth.authentication.token}"
  load_config_file       = false
}

provider "helm" {
  install_tiller  = "true"
  tiller_image    = "gcr.io/kubernetes-helm/tiller:v2.12.3"
}

resource "helm_release" "cluster_autoscaler" {
  name       = "cluster-autoscaler"
  repository = "stable"
  chart      = "cluster-autoscaler"
  namespace  = "kube-system"
  version    = "0.12.2"

  set {
    name  = "autoDiscovery.enabled"
    value = "true"
  }

  set {
    name  = "autoDiscovery.clusterName"
    value = "${var.cluster_name}"
  }

  set {
    name  = "cloudProvider"
    value = "aws"
  }

  set {
    name  = "awsRegion"
    value = "${data.aws_region.current_region.name}"
  }

  set {
    name  = "rbac.create"
    value = "true"
  }

  set {
    name  = "sslCertPath"
    value = "/etc/ssl/certs/ca-bundle.crt"
  }
}
票数 5
EN

Stack Overflow用户

发布于 2019-09-22 21:44:54

下面的答案仍然不完整...但至少它能让我走得更远。

1.

代码语言:javascript
复制
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
helm install stable/cluster-autoscaler --name my-release --set "autoscalingGroups[0].name=demo,autoscalingGroups[0].maxSize=10,autoscalingGroups[0].minSize=1" --set rbac.create=true

然后手动修复证书路径:

代码语言:javascript
复制
kubectl edit deployments my-release-aws-cluster-autoscaler 

替换以下内容:

代码语言:javascript
复制
path: /etc/ssl/certs/ca-bundle.crt

使用

代码语言:javascript
复制
path: /etc/ssl/certs/ca-certificates.crt

2.

在亚马逊网络服务控制台中,为terraform-eks-demo-node角色提供AdministratorAccess策略。

3.

使用(kubectl edit deployments my-release-aws-cluster-autoscaler)更新nodes参数

代码语言:javascript
复制
        - --nodes=1:10:terraform-eks-demo20190922124246790200000007
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57928941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档