【发布时间】:2020-03-28 15:53:11
【问题描述】:
目标
我有一个特定的工作流程来在 Google Cloud 上设置新的 Kubernetes 集群。我想用 Terraform 自动化这个过程。这些是步骤:
- 创建集群
gcloud beta container --project "my-google-project" clusters create "cluster-name" --zone "europe-west3-b" - 设置 Helm 存储库
helm repo add stable https://kubernetes-charts.storage.googleapis.com/ helm repo add jetstack https://charts.jetstack.io/ helm repo update - 安装 NGINX 入口
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。
【问题讨论】:
-
步骤 2-4 是软件配置,应该使用软件配置器来执行。最流行的工具是 Ansible。
标签: terraform google-kubernetes-engine kubernetes-helm kubectl nginx-ingress