Sử dụng VKS với Terraform
Last updated
Last updated
Terraform là một cơ sở hạ tầng nguồn mở dưới dạng công cụ mã cho phép người dùng quản lý cơ sở hạ tầng của họ một cách dễ dàng và hiệu quả trên các nền tảng đám mây khác nhau, chẳng hạn như VNG Cloud, AWS, Google Cloud và Azure. Máy chủ Terraform đề cập đến phiên bản của công cụ Terraform đang chạy trên một máy chủ hoặc máy cụ thể. Đây là nơi mã cơ sở hạ tầng được viết và thực thi, cho phép người dùng tạo, sửa đổi và hủy tài nguyên trên nền tảng đám mây.
Bản thân Terraform không có giao diện người dùng đồ họa, thay vào đó người dùng tương tác với nó bằng giao diện dòng lệnh. Terraform yêu cầu tài khoản và khóa của nhà cung cấp đám mây được định cấu hình cùng với tệp cấu hình Terraform để thực thi cơ sở hạ tầng dưới dạng mã. Ngoài ra, Terraform có thể hoạt động trong môi trường nhóm nơi nhiều người dùng có thể cộng tác trên cùng một cơ sở mã cơ sở hạ tầng, khiến nó trở thành một công cụ mạnh mẽ và linh hoạt để quản lý cơ sở hạ tầng đám mây.
Để khởi tạo một Cluster Kubernetes bằng Terraform, bạn cần thực hiện các bước sau:
Truy cập IAM Portal tại , thực hiện tạo Service Account với quyền hạn VKS Full Access. Cụ thể, tại trang IAM, bạn có thể:
Chọn "Create a Service Account", điền tên cho Service Account và nhấn Next Step để gắn quyền cho Service Account.
Tìm và chọn Policy: VKSFullAccess sau đó nhấn "Create a Service Account" để tạo Service Account, Policy: VKSFullAccess do VNG Cloud tạo ra, bạn không thể xóa các policy này.
Sau khi tạo thành công bạn cần phải lưu lại Client_ID và Secret_Key của Service Account để thực hiện bước tiếp theo.
Truy cập VKS Portal tại , thực hiện Activate dịch vụ VKS ở tab Overview. Hãy chờ đợi tới khi chúng tôi khởi tạo thành công tài khoản VKS của bạn.
Cài đặt Terraform:
Tải xuống và cài đặt Terraform cho hệ điều hành của bạn từ .
Khởi tạo cấu hình Terraform:
Tạo tệp variable.tf
và khai báo thông tin Service Account trong file này.
Tạo tệp main.tf
và định nghĩa các tài nguyên Kubernetes Cluster mà bạn muốn tạo.
Ví dụ:
Tệp variable.tf:
bạn cần thay thế Client ID và Client Secret đã khởi tạo ở bước 1 ở file này.
Tệp main.tf
khi tạo Cluster/ Node Group trên Region HCM:
Tệp main.tf
khi tạo Cluster/ Node Group trên Region HAN:
Sau khi hoàn tất các thông tin trên, thực hiện chạy lệnh bên dưới:
Sau đó, bạn để xem những thay đổi sẽ được áp dụng trên những resource mà terraform đang quản lý bạn có thể chạy:
Cuối cùng bạn chọn chạy dòng lệnh:
Chọn YES để thực hiện việc khởi tạo Cluster, Node Group thông qua Terraform
Nếu bạn không còn nhu cầu sử dụng Cluster, bạn có thể xóa bằng lệnh:
Sau khi khởi tạo thành công Terraform, bạn có thể lên VKS Portal để xem thông tin Cluster vừa tạo.
Khi sử dụng Terraform để khởi tạo Cluster và Node Group trên hệ thống VKS, nếu bạn thay đổi một trong các field sau, hệ thống sẽ tự động xóa Node Group/ Cluster và thực hiện khởi tạo lại Node Group/ Cluster theo thông số mới tương ứng. Việc xóa sẽ được thực hiện trước khi tạo Node Group/ Cluster mới.
Đỗi với resource vngcloud_vks_cluster
, các field khi bạn thay đổi hệ thống sẽ xóa Cluster và tạo lại bao gồm:
name
description
enable_private_cluster
network_type
vpc_id
subnet_id
cidr
enabled_load_balancer_plugin
enabled_block_store_csi_plugin
node_group
secondary_subnets
node_netmask_size
Đỗi với resource vngcloud_vks_cluster_node_group
, các field khi bạn thay đổi hệ thống sẽ xóa Cluster và tạo lại bao gồm:
cluster_id
name
flavor_id
disk_size
disk_type
enable_private_nodes
ssh_key_id
secondary_subnets
enabled_encryption_volume
subnet_id
Để chỉ định hệ thống tạo cluster/node group mới rồi mới thực hiện xóa cluster/ node group cũ, bạn có thể thêm tham số lifecycle { create_before_destroy = true }
vào file main.tf của bạn. Cụ thể:
Đỗi với resource vngcloud_vks_cluster
Đỗi với resource vngcloud_vks_cluster_node_group
Tham khảo thêm về cách sử dụng Terraform để làm việc với VKS tại .