Tôi đang cố gắng sử dụng Terraform để cập nhật phiên bản kubernetes cho cụm Azure Kubernetes Service (AKS). Cấu hình Terraform cho cụm trông như thế này:
tài nguyên "azurerm_kubernetes_cluster" "dev-k8s" {
tên = "cụm của tôi"
... vân vân
kubernetes_version = "1.22.1"
linux_profile {
admin_username = var.admin_username
ssh_key {
key_data = tệp(var.k8s_public_key)
}
}
Khi tôi thử chạy kế hoạch địa hình
từ thiết bị đầu cuối linux cục bộ của tôi (khi đăng nhập vào Azure qua Azure CLI), biến var.k8s_public_key
giải quyết ~/.ssh/my-k8s.pub
và tôi nhận được thông báo lỗi sau:
Lỗi: Đối số hàm không hợp lệ
trên k8s.tf dòng 22, trong tài nguyên "azurerm_kubernetes_cluster" "dev-k8s":
22: key_data = file(var.k8s_public_key)
|----------------
| var.k8s_public_key là "~/.ssh/my-k8s.pub"
Giá trị không hợp lệ cho tham số "đường dẫn": không có tệp nào tồn tại tại
/home/myuser/.ssh/my-k8s.pub; chức năng này chỉ hoạt động với các tệp
được phân phối như một phần của mã nguồn cấu hình, vì vậy nếu tệp này sẽ
được tạo bởi một tài nguyên trong cấu hình này, thay vào đó bạn phải lấy cái này
kết quả từ một thuộc tính của tài nguyên đó.
tôi có một riêng khóa, nhưng không có khóa công khai. Nếu khóa công khai là bắt buộc, tôi cần tạo một khóa mới. Tuy nhiên, lỗi khiến tôi bối rối vì tôi nghĩ rằng khóa công khai cần phải ở phía máy chủ chứ không phải ở phía máy khách của tôi. Ngoài ra, các hướng dẫn mà tôi đã xem chỉ ra cách tạo cặp khóa công khai/riêng tư, sau đó tạo cụm bằng các thông tin xác thực đó. Tôi không chắc làm thế nào để cập nhật cụm không có khóa công khai. Nếu tôi tạo một khóa chung mới, thì khóa đó sẽ được liên kết với cụm như thế nào và khóa đó hoạt động như thế nào để cho phép tôi truy cập cụm? Tôi thậm chí có cần khóa chung nếu tôi chỉ cập nhật cụm không? Tôi đang tìm bất kỳ lời khuyên nào về những gì đang diễn ra hoặc cách giải quyết vấn đề này vì tôi không hiểu rõ vấn đề.
Nếu tôi loại bỏ linux_profile
phần từ cấu hình Terraform, kế hoạch địa hình
thành công, nhưng sau đó nó muốn tạo một cụm hoàn toàn mới có cùng tên. Tôi không chắc chuyện gì đang xảy ra hoặc tôi cần làm gì để chỉ cập nhật phiên bản kubernetes.