Încerc să folosesc Terraform pentru a actualiza versiunea kubernetes pentru un cluster Azure Kubernetes Service (AKS). Configurația Terraform pentru cluster arată astfel:
resursă „azurerm_kubernetes_cluster” „dev-k8s” {
nume = "clusterul meu"
... etc
kubernetes_version = "1.22.1"
profil_linux {
admin_username = var.admin_username
ssh_key {
key_data = fișier(var.k8s_public_key)
}
}
Când încerc să alerg plan de terraformă
din terminalul meu local linux (atunci când v-ați conectat la Azure prin Azure CLI) variabila var.k8s_public_key
rezolvă să ~/.ssh/my-k8s.pub
și primesc următorul mesaj de eroare:
Eroare: argument funcție invalid
pe linia 22 k8s.tf, în resursa „azurerm_kubernetes_cluster” „dev-k8s”:
22: key_data = file(var.k8s_public_key)
|----------------
| var.k8s_public_key este „~/.ssh/my-k8s.pub”
Valoare nevalidă pentru parametrul „cale”: nu există niciun fișier la
/home/myuser/.ssh/my-k8s.pub; această funcție funcționează numai cu fișiere care
sunt distribuite ca parte a codului sursă de configurare, deci dacă acest fișier va
fi creat de o resursă în această configurație, trebuie în schimb să obțineți acest lucru
rezultat dintr-un atribut al acelei resurse.
Am un privat cheie, dar nicio cheie publică. Dacă este necesară cheia publică, trebuie să creez una nouă. Eroarea mă încurcă totuși, deoarece am crezut că cheia publică trebuie să fie pe partea serverului, nu pe partea clientului meu. De asemenea, ghidurile pe care le-am analizat arată cum se generează o pereche de chei publice/private, apoi se creează clusterul folosind acele acreditări. Nu sunt sigur cum să fac Actualizați cluster-ul fără cheia publică. Dacă generez o nouă cheie publică, atunci cum va fi aceasta legată de cluster și cum funcționează aceasta pentru a-mi permite accesul la cluster? Am nevoie chiar de cheia publică dacă actualizez doar clusterul? Caut sfaturi despre ce se întâmplă sau cum să rezolv acest lucru, deoarece nu înțeleg clar problema.
Dacă scot linux_profile
secțiune din configurația Terraform, plan de terraformă
reușește, dar apoi dorește să creeze un cluster complet nou cu același nume. Nu sunt sigur ce se întâmplă sau ce trebuie să fac pentru a actualiza versiunea kubernetes.