【发布时间】:2020-06-13 16:27:55
【问题描述】:
- 我正在尝试使用 Terraform 在 AKS 上创建私有云。
- 公共路线似乎运行良好,我正在逐步安装安全设备
- 在放入 Networks azurerm_virtual_network、azurerm_subnet 后,它似乎可以处理我的 Helm 部署
- 没有日志,只是无限等待。
-
helm_release.ingress: Still creating... [11m0s elapsed](这是一个简单的 NGINX 入口控制器)
resource "azurerm_virtual_network" "foo_network" {
name = "${var.prefix}-network"
location = azurerm_resource_group.foo_group.location
resource_group_name = azurerm_resource_group.foo_group.name
address_space = ["10.1.0.0/16"]
}
resource "azurerm_subnet" "internal" {
name = "internal"
virtual_network_name = azurerm_virtual_network.foo_network.name
resource_group_name = azurerm_resource_group.foo_group.name
address_prefixes = ["10.1.0.0/22"]
}
关于我应该如何调试的任何要点?缺少日志让人难以理解。
完整的脚本
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "foo" {
name = "${var.prefix}-k8s-resources"
location = var.location
}
resource "azurerm_kubernetes_cluster" "foo" {
name = "${var.prefix}-k8s"
location = azurerm_resource_group.foo.location
resource_group_name = azurerm_resource_group.foo.name
dns_prefix = "${var.prefix}-k8s"
default_node_pool {
name = "system"
node_count = 1
vm_size = "Standard_D4s_v3"
}
identity {
type = "SystemAssigned"
}
addon_profile {
aci_connector_linux {
enabled = false
}
azure_policy {
enabled = false
}
http_application_routing {
enabled = false
}
kube_dashboard {
enabled = true
}
oms_agent {
enabled = false
}
}
}
provider "kubernetes" {
version = "~> 1.11.3"
load_config_file = false
host = azurerm_kubernetes_cluster.foo.kube_config.0.host
username = azurerm_kubernetes_cluster.foo.kube_config.0.username
password = azurerm_kubernetes_cluster.foo.kube_config.0.password
cluster_ca_certificate = base64decode(azurerm_kubernetes_cluster.foo.kube_config.0.cluster_ca_certificate)
}
provider "helm" {
# Use provider with Helm 3.x support
version = "~> 1.2.2"
}
resource "null_resource" "configure_kubectl" {
provisioner "local-exec" {
command = "az aks get-credentials --resource-group ${azurerm_resource_group.foo.name} --name ${azurerm_kubernetes_cluster.foo.name} --overwrite-existing"
environment = {
KUBECONFIG = ""
}
}
depends_on = [azurerm_kubernetes_cluster.foo]
}
resource "helm_release" "ingress" {
name = "ingress-foo"
repository = "https://kubernetes.github.io/ingress-nginx"
chart = "ingress-nginx"
timeout = 3000
depends_on = [null_resource.configure_kubectl]
}
【问题讨论】:
-
你在哪里运行你的 terraform 脚本?
-
你能分享你完整的精简版 terraform 脚本吗?设置网络时,您似乎正在切断对 API 服务器的访问。因此您的 Helm 提供者失去了访问权限
-
好的,我将编辑以分享完整的 sn-p。我从 AKS 默认终端(云外壳)运行
-
看来我参考的脚本已经完成了。得到了更完整的参考。
-
@SrinathGanesh 为什么在这种情况下使用空资源?