我有一个特定的工作流程,可以在Google Cloud上设置一个新的Kubernetes集群。我想使用Terraform自动化该过程。这些是步骤:
Expanded
Selector 1 -> #object h2::first-letter
Selector 2 -> body .item div h2::first-letter:hover
gcloud beta container --project "my-google-project" clusters create "cluster-name" --zone "europe-west3-b"
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。
答案 0 :(得分:3)
尽管Terraform对于运行Kubernetes之类的东西来构建和配置云基础架构是有意义的,但是在部署后用来配置所述基础架构并不一定有意义。我认为大多数基础架构设计会将部署到预配置群集上的应用程序视为该群集的配置。这里的语义肯定有些细微差别,但我认为,像Ansible这样的工具更适合在置备后将应用程序部署到群集中。
所以我的建议是定义一些Ansible角色。也许:
create_cluster
deploy_helm
install_nginx_ingress
install_cert_manager
在每个角色中,定义根据Galaxy schema使用的任务和变量。最后,定义Ansible用于include
或import
这些角色的Playbook。这样一来,您就可以通过单个命令配置基础架构并将所有必需的应用程序部署到其中:
ansible-playbook playbook.yml