Provision dan kelola kluster ACK sebagai kode dengan Terraform untuk infrastruktur yang dapat diulang dan dikontrol versinya.
Konsep utama
Resources dan data sources
Terraform menggunakan dua jenis objek untuk mengelola infrastruktur cloud:
-
Resources — objek yang dibuat dan dikelola oleh Terraform. Setiap blok resource mendefinisikan satu objek infrastruktur, seperti kluster ACK atau kelompok node.
-
Data sources — kueri read-only yang mengambil atribut dari resource yang dibuat di luar konfigurasi saat ini.
Contoh:
### Data sources
# Daftar tipe instans dengan 2 vCPU dan memori 4 GB.
# Referensi: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types
data "alicloud_instance_types" "c2g4" {
cpu_core_count = 2
memory_size = 4
}
### Resources
# Buat instans Server Load Balancer (SLB).
# Referensi: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance
resource "alicloud_slb" "default" {
name = var.name
specification = "slb.s2.small"
vswitch_id = alicloud_vswitch.default.id
}
Lihat Gunakan ACK dengan Terraform untuk daftar lengkapnya.
Plugins
Terraform memiliki dua kategori plug-in:
-
Terraform CLI — tool command-line untuk merencanakan, menerapkan, dan menghapus konfigurasi.
-
Terraform providers — plug-in yang menerjemahkan konfigurasi Terraform menjadi panggilan API untuk cloud tertentu, yang dipublikasikan di Terraform Registry.
Alibaba Cloud adalah penyedia cloud pertama di Tiongkok yang mengintegrasikan Terraform. Provider Alibaba Cloud (terraform-provider-alicloud) mendukung 163 resource dan 113 data source di 35 layanan, termasuk komputasi, penyimpanan, jaringan, load balancing, CDN, middleware, kontrol akses, dan database.
Untuk menyiapkan provider Alibaba Cloud, lihat Instal dan konfigurasikan Terraform di PC lokal atau Gunakan Terraform di Cloud Shell.
Mengapa menggunakan Terraform untuk ACK
Terraform menawarkan beberapa keunggulan dibandingkan mengelola kluster ACK secara langsung melalui Konsol, CLI, atau API.
-
Penerapan multi-cloud — kelola infrastruktur di Alibaba Cloud, cloud lain, dan pusat data on-premises dengan satu rantai alat dan bahasa konfigurasi.
-
Provisioning otomatis dan dapat diulang — definisikan konfigurasi kluster sekali dan terapkan secara konsisten di lingkungan development, staging, dan production, sehingga menghilangkan deviasi konfigurasi.
-
Infrastructure as code — simpan konfigurasi kluster dalam sistem kontrol versi bersama kode aplikasi. Lacak perubahan, tinjau modifikasi melalui pull request, dan kembalikan ke versi sebelumnya bila diperlukan.
-
Pengurangan biaya — aktifkan lingkungan development dan pengujian sesuai kebutuhan dan hapus saat tidak digunakan. Evaluasi dampak biaya sebelum menerapkan perubahan.
Gunakan ACK dengan Terraform
ACK mendukung resource dan data source Terraform berikut.
Resources
| Resource | Deskripsi |
|---|---|
| alicloud_cs_managed_kubernetes | Mengelola kluster ACK yang dikelola |
| alicloud_cs_kubernetes | Mengelola cluster khusus ACK |
| alicloud_cs_serverless_kubernetes | Mengelola kluster ACK Serverless |
| alicloud_cs_edge_kubernetes | Mengelola kluster Tepi ACK |
| alicloud_cs_kubernetes_node_pool | Mengelola kelompok node |
| alicloud_cs_kubernetes_permissions | Mengelola izin Role-Based Access Control (RBAC) |
| alicloud_cs_kubernetes_addon | Mengelola add-on kluster |
Data sources
| Data source | Deskripsi |
|---|---|
| alicloud_ack_service | Mengaktifkan ACK |
| alicloud_cs_managed_kubernetes_clusters | Menampilkan daftar semua kluster ACK yang dikelola |
| alicloud_cs_kubernetes_clusters | Menampilkan daftar semua kluster khusus ACK |
| alicloud_cs_serverless_kubernetes_clusters | Menampilkan daftar semua kluster ACK Serverless |
| alicloud_cs_edge_kubernetes_clusters | Menampilkan daftar semua kluster Tepi ACK |
| alicloud_cs_kubernetes_permissions | Menampilkan daftar izin untuk pengguna Resource Access Management (RAM) tertentu |
| alicloud_cs_kubernetes_addon_metadata | Menampilkan daftar metadata add-on kluster |
| alicloud_cs_kubernetes_addons | Menampilkan daftar add-on kluster yang tersedia |
| alicloud_cs_kubernetes_version | Menampilkan daftar versi Kubernetes yang tersedia |
Pisahkan infrastruktur kluster (VPC, kelompok node, RBAC) ke proyek Terraform yang terpisah dari beban kerja Kubernetes (Deployments, Services). Keduanya memiliki siklus perubahan yang berbeda dan biasanya dikelola oleh tim yang berbeda.