Terraform-如何创建GKE群集并安装Helm Charts?

时间:2020-03-28 15:53:11

标签: terraform google-kubernetes-engine kubernetes-helm kubectl nginx-ingress

目标

我有一个特定的工作流程,可以在Google Cloud上设置一个新的Kubernetes集群。我想使用Terraform自动化该过程。这些是步骤:

  1. 创建集群
    Expanded
  2. 设置头盔存储库
    Selector 1 -> #object h2::first-letter
    
    Selector 2 -> body .item div h2::first-letter:hover
    
  3. 安装NGINX入口
    gcloud beta container --project "my-google-project" clusters create "cluster-name" --zone "europe-west3-b"
    
  4. 安装证书管理器
    helm repo add stable https://kubernetes-charts.storage.googleapis.com/
    helm repo add jetstack https://charts.jetstack.io/
    helm repo update
    

想法

第一步可能看起来像这样:

kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user $(gcloud config get-value account)
helm install nginx-ingress stable/nginx-ingress

但是我不知道如何执行步骤2-4。

1 个答案:

答案 0 :(得分:3)

尽管Terraform对于运行Kubernetes之类的东西来构建和配置云基础架构是有意义的,但是在部署后用来配置所述基础架构并不一定有意义。我认为大多数基础架构设计会将部署到预配置群集上的应用程序视为该群集的配置。这里的语义肯定有些细微差别,但我认为,像Ansible这样的工具更适合在置备后将应用程序部署到群集中。

所以我的建议是定义一些Ansible角色。也许:

create_cluster
deploy_helm
install_nginx_ingress
install_cert_manager

在每个角色中,定义根据Galaxy schema使用的任务和变量。最后,定义Ansible用于includeimport这些角色的Playbook。这样一来,您就可以通过单个命令配置基础架构并将所有必需的应用程序部署到其中:

ansible-playbook playbook.yml