Я пытаюсь использовать Terraform для обновления версии kubernetes для кластера Azure Kubernetes Service (AKS). Конфигурация Terraform для кластера выглядит так:
ресурс "azurerm_kubernetes_cluster" "dev-k8s" {
имя = "мой кластер"
... и т.д
kubernetes_version = "1.22.1"
linux_profile {
admin_username = var.admin_username
ssh_key {
key_data = файл (var.k8s_public_key)
}
}
Когда я пытаюсь бежать план терраформирования
с моего локального терминала Linux (при входе в Azure через Azure CLI) переменная var.k8s_public_key
решает ~/.ssh/my-k8s.pub
, и я получаю следующее сообщение об ошибке:
Ошибка: недопустимый аргумент функции
в строке 22 k8s.tf в ресурсе "azurerm_kubernetes_cluster" "dev-k8s":
22: key_data = файл (var.k8s_public_key)
|----------------
| var.k8s_public_key — это "~/.ssh/my-k8s.pub"
Недопустимое значение параметра "путь": файл не существует по адресу
/home/myuser/.ssh/my-k8s.pub; эта функция работает только с файлами,
распространяются как часть исходного кода конфигурации, поэтому, если этот файл будет
быть создан ресурсом в этой конфигурации, вы должны вместо этого получить этот
результат атрибута этого ресурса.
у меня есть частный ключ, но не открытый ключ. Если требуется открытый ключ, мне нужно создать новый. Однако эта ошибка меня смущает, так как я думал, что открытый ключ должен быть на стороне сервера, а не на стороне моего клиента. Кроме того, в руководствах, которые я рассматривал, показано, как сгенерировать пару открытого и закрытого ключей, а затем создать кластер с использованием этих учетных данных. я не знаю как Обновить кластер без открытого ключа. Если я сгенерирую новый открытый ключ, то как он будет связан с кластером и как это позволит мне получить доступ к кластеру? Нужен ли мне открытый ключ, если я только обновляю кластер? Я ищу любые советы о том, что происходит или как решить эту проблему, так как я не совсем понимаю проблему.
Если я удалю linux_profile
раздел из конфигурации Terraform, план терраформирования
удается, но затем он хочет создать совершенно новый кластер с тем же именем. Я не уверен, что происходит или что мне нужно сделать, чтобы просто обновить версию kubernetes.