我正在尝试将一些模块(Docker镜像)部署到谷歌Google容器引擎。我在Terraformconfig文件中得到了什么:
# Google Cloud provider
provider "google" {
credentials = "${file("google_credentials.json")}"
project = "${var.google_project_id}"
region = "${var.google_region}"
}
# Google Container Engine (Kubernetes) cluster resource
resource "google_container_cluster" "secureskye" {
name = "secureskye"
zone = "${var.google_kubernetes_zone}"
additional_zones = "${var.google_kubernetes_additional_zones}"
initial_node_count = 2
}
# Kubernetes provider
provider "kubernetes" {
host = "${google_container_cluster.secureskye.endpoint}"
username = "${var.google_kubernetes_username}"
password = "${var.google_kubernetes_password}"
client_certificate = "${base64decode(google_container_cluster.secureskye.master_auth.0.client_certificate)}"
client_key = "${base64decode(google_container_cluster.secureskye.master_auth.0.client_key)}"
cluster_ca_certificate = "${base64decode(google_container_cluster.secureskye.master_auth.0.cluster_ca_certificate)}"
}
# Module UI
module "ui" {
source = "./modules/ui"
}
我的问题是:google_container_cluster
已成功创建,但在创建模块ui
时失败(包含2个资源kubernetes_service
和kubernetes_pod
)但错误
* kubernetes_pod.ui: Post https://<ip>/api/v1/namespaces/default/pods: error executing access token command "<user_path>\\AppData\\Local\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\gcloud.cmd config config-helper --format=json": err=exec: "<user_path>\\AppData\\Local\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\gcloud.cmd": file does not exist output=
所以,问题:
1.我是否需要安装gcloud
+ kubectl
?即使在我安装google_container_cluster
或gcloud
之前成功创建了kubectl
2.我想使用gcloud
,kubectl
CLI中的独立,分离的凭证信息,项目,区域。我这样做了吗?
答案 0 :(得分:0)
我已经能够在Linux机器上重现运行您提供的Terraform配置文件(模块UI部分除外)的场景,因此您的问题应该与代码的最后部分相关。
关于你的问题:
我不确定,因为我尝试使用Google Cloud Shell,gcloud
和kubectl
已预先安装在那里,但我建议您安装它们以确保这不是问题。
对于凭证部分,我在variables.tf
Terraform配置文件中添加了两个新变量,如本示例所示(这些凭据不需要与gcloud
中的相同或{ {1}}:
在这种情况下使用您的首选凭证。
kubectl
也许您可以分享有关可以在模块UI中找到的内容的更多信息,以便了解哪个文件不存在。我猜你正在尝试从Windows机器进行部署,就像文件路径中的符号一样,但这不应该是一个重要的问题。