gpt4 book ai didi

azure - Terraform Azure AKS 集群不导出 kubeconfig 文件

转载 作者:行者123 更新时间:2023-12-03 00:55:41 25 4
gpt4 key购买 nike

我正在尝试使用 Terraform 在 Azure (AKS) 上配置 kubernetes 集群。配置工作得很好,但我无法将 kubeconfig 从 kube_config_raw 导出到文件。

下面是我的 main.tfoutputs.tf。我禁止了 resource_groupuser_assigned_identity 资源。

这是我用于创建配置的资源:https://learnk8s.io/terraform-aks

  • main.tf
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">=2.79.1"
}
}
}

provider "azurerm" {
features {}
subscription_id = "..."
}

resource "azurerm_kubernetes_cluster" "aks" {
name = "myCluster"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
dns_prefix = "my-cluster-dns"

default_node_pool {
name = "agentpool"
node_count = 1
os_disk_size_gb = 64
vm_size = "Standard_B2ms"
}

identity {
type = "UserAssigned"
user_assigned_identity_id = azurerm_user_assigned_identity.user_assigned_identity.id
}

depends_on = [
azurerm_user_assigned_identity.user_assigned_identity
]
}
  • outputs.tf - 我在文件名中尝试过“./kubeconfig”和“kubeconfig”,但没有任何内容导出到任何地方
resource "local_file" "kubeconfig" {
depends_on = [azurerm_kubernetes_cluster.aks]
filename = "./kubeconfig"
content = azurerm_kubernetes_cluster.aks.kube_config_raw
}

奖励:是否可以将其直接导出到现有的 ~/.kube/config 文件?就像 az aks get-credentials 命令那样?

最佳答案

outputs.tf - I've tried "./kubeconfig" and "kubeconfig" in thefilename but nothing gets exported anywhere

我测试了与您相同的代码 terraform-apply ,它将本地文件保存到执行应用的位置。

例如:

如果我运行main.tf文件来自C:\Users\user\terraform\aksconfig>作为它的现在,那么 kubeconfig文件保存在同一路径中。

输出:

enter image description here

<小时/>

Bonus: is it possible to export it directly to the existing ~/.kube/config file? Like the az aks get-credentials command does?

az aks get-credentials --resource-group myresourcegroup --name myCluster所在的路径存储配置文件:

enter image description here

将脚本保存在与 az 命令相同的路径中的代码:

resource "local_file" "kubeconfig" {
depends_on = [azurerm_kubernetes_cluster.aks]
filename = "C:/Users/user/.kube/config" this is where the config file gets stored
content = azurerm_kubernetes_cluster.aks.kube_config_raw
}

输出:

现有配置文件 /.kube/config

enter image description here

新文件覆盖现有文件:

enter image description here

注意:使用local_file此处的 block 将完全覆盖该文件,而不将上下文附加到前一个文件。如果您正在寻找像 az 命令那样将内容合并到单个文件中,那么从 terraform 中这是不可能的。

关于azure - Terraform Azure AKS 集群不导出 kubeconfig 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69664157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com