Terraform-如何创建GKE集群并安装头盔图表? 目标
我有一个特定的工作流程来在谷歌云上建立一个新的Kubernetes集群。我想用Terraform自动化这个过程。这些是步骤:Terraform-如何创建GKE集群并安装头盔图表? 目标,terraform,google-kubernetes-engine,kubernetes-helm,kubectl,nginx-ingress,Terraform,Google Kubernetes Engine,Kubernetes Helm,Kubectl,Nginx Ingress,我有一个特定的工作流程来在谷歌云上建立一个新的Kubernetes集群。我想用Terraform自动化这个过程。这些是步骤: 创建集群 gcloud beta container --project "my-google-project" clusters create "cluster-name" --zone "europe-west3-b" 安装舵repos helm repo add stable https://kubernetes-charts.storage.googleapi
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
kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/v0.13.0/deploy/manifests/00-crds.yaml
kubectl create namespace cert-manager
helm install cert-manager jetstack/cert-manager --namespace cert-manager
resource "google_container_cluster" "primary" {
name = "cluster-name"
location = "europe-west3-b"
initial_node_count = 3
master_auth {
username = ""
password = ""
client_certificate_config {
issue_client_certificate = false
}
}
node_config {
oauth_scopes = [
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring",
]
metadata = {
disable-legacy-endpoints = "true"
}
}
}
但我不知道如何进行步骤2-4。虽然Terraform对于构建和配置云基础设施(如Kubernetes)是有意义的,但在部署后用于配置所述基础设施并不一定有意义。我认为大多数基础设施设计将考虑部署到配置的集群上的应用程序作为配置到所述集群。这里的语义肯定有点细微差别,但我认为像Ansible这样的工具更适合在资源调配后将应用程序部署到集群 因此,我的建议是定义几个可承担的角色。也许:
create_cluster
deploy_helm
install_nginx_ingress
install_cert_manager
在每个相应的角色中,定义需要根据使用的任务和变量。最后,定义Ansible用于包含
或导入
这些角色的。这将允许您在一个命令中调配基础架构并将所有必需的应用程序部署到其中:
ansible playbook playbook.yml
步骤2-4是软件配置,应使用软件配置器执行。最流行的工具是Ansible。