Ungültige Konfiguration: Es wurde keine Konfiguration bereitgestellt. Versuchen Sie, die Umgebungsvariable KUBERNETES_MASTER festzulegen.

Ungültige Konfiguration: Es wurde keine Konfiguration bereitgestellt. Versuchen Sie, die Umgebungsvariable KUBERNETES_MASTER festzulegen.

Bildbeschreibung hier eingeben

Error: Kubernetes cluster unreachable: invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable

Error: Get "http://localhost/api/v1/namespaces/devcluster-ns": dial tcp [::1]:80: connectex: No connection could be made because the target machine actively refused it.

Error: Get "http://localhost/api/v1/namespaces/devcluster-ns/secrets/devcluster-storage-secret": dial tcp [::1]:80: connectex: No connection could be made because the target machine actively refused it.

Ich habe den Azure AKS-Cluster mit Terraform konfiguriert. Nach der Konfiguration wurden einige Codeänderungen vorgenommen. Änderungen an anderen Teilen funktionierten normal, aber beim Erhöhen oder Verringern der Anzahl der Pods im „default_node_pool“ trat der folgende Fehler auf.

Insbesondere scheint das Kubernetes-Provider-Problem beim Erhöhen oder Verringern von „os_disk_size_gb, node_count“ des default_node_pool aufzutreten.

resource "azurerm_kubernetes_cluster" "aks" {
  name                                = "${var.cluster_name}-aks"
  location                            = var.location
  resource_group_name                 = data.azurerm_resource_group.aks-rg.name 
  node_resource_group                 = "${var.rgname}-aksnode"  
  dns_prefix                          = "${var.cluster_name}-aks"
  kubernetes_version                  = var.aks_version
  private_cluster_enabled             = var.private_cluster_enabled
  private_cluster_public_fqdn_enabled = var.private_cluster_public_fqdn_enabled
  private_dns_zone_id                 = var.private_dns_zone_id

  default_node_pool {
    name                         = "syspool01"
    vm_size                      = "${var.agents_size}"
    os_disk_size_gb              = "${var.os_disk_size_gb}"
    node_count                   = "${var.agents_count}"
    vnet_subnet_id               = data.azurerm_subnet.subnet.id
    zones                        = [1, 2, 3]
    kubelet_disk_type            = "OS"
    os_sku                       = "Ubuntu"
    os_disk_type                 = "Managed"
    ultra_ssd_enabled            = "false"
    max_pods                     = "${var.max_pods}"
    only_critical_addons_enabled = "true"
    # enable_auto_scaling = true
    # max_count           = ${var.max_count}
    # min_count           = ${var.min_count}
  }

Ich habe den Anbieter von Kubernetes und Helm in provider.tf wie unten korrekt angegeben und bei der ersten Verteilung gab es kein Problem.

data "azurerm_kubernetes_cluster" "credentials" {
  name                = azurerm_kubernetes_cluster.aks.name
  resource_group_name = data.azurerm_resource_group.aks-rg.name
}

provider "kubernetes" {
  host                   = data.azurerm_kubernetes_cluster.credentials.kube_config[0].host
  username               = data.azurerm_kubernetes_cluster.credentials.kube_config[0].username
  password               = data.azurerm_kubernetes_cluster.credentials.kube_config[0].password
  client_certificate     = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].client_certificate, )
  client_key             = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].client_key, )
  cluster_ca_certificate = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].cluster_ca_certificate, )
}

provider "helm" {
  kubernetes {
    host = data.azurerm_kubernetes_cluster.credentials.kube_config[0].host
    # username               = data.azurerm_kubernetes_cluster.credentials.kube_config[0].username
    # password               = data.azurerm_kubernetes_cluster.credentials.kube_config[0].password
    client_certificate     = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].client_certificate, )
    client_key             = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].client_key, )
    cluster_ca_certificate = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].cluster_ca_certificate, )
  }
}

Die Terrafrom-Aktualisierung, der Terraform-Plan und die Terraform-Anwendung müssen normal funktionieren.

Zu den weiteren Ergebnissen gehören: Lesen Sie in provider.tf „/.Fügen Sie „kube/config“ hinzu und verteilen Sie es. Das scheint gut zu funktionieren. Aber was ich möchte, ist „/.Es sollte auch ohne die Angabe von „kube/config“ gut funktionieren.

provider "kubernetes" {
  config_path            = "~/.kube/config". # <=== add this
  host                   = data.azurerm_kubernetes_cluster.credentials.kube_config[0].host
  username               = data.azurerm_kubernetes_cluster.credentials.kube_config[0].username
  password               = data.azurerm_kubernetes_cluster.credentials.kube_config[0].password
  client_certificate     = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].client_certificate, )
  client_key             = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].client_key, )
  cluster_ca_certificate = base64decode(data.azurerm_kubernetes_cluster.credentials.kube_config[0].cluster_ca_certificate, )
}

Wie erwartet, kann ich das bei Terraform-Plan, Terraform-Aktualisierung, Terraform-Anwendung „data.azurm_kubernetes_cluster.credentials“ nicht lesen?

verwandte Informationen