Terraform, altyapınızı kod olarak tanımlamanızı sağlar. Bu sayede Container Service for Kubernetes (ACK) kümesi oluşturabilir, bunu Enterprise Distributed Application Service (EDAS) içine aktarabilir ve bir uygulamayı tek bir otomatik iş akışıyla dağıtabilirsiniz.
Nasıl çalışır?
Dağıtım işlemi üç Terraform kaynağını zincirleme şekilde kullanır:
alicloud_cs_managed_kubernetes-- ACK içinde yönetilen bir Kubernetes kümesi oluşturur.alicloud_edas_k8s_cluster-- ACK kümesini EDAS içine aktarır.alicloud_edas_k8s_application-- Uygulamayı EDAS tarafından yönetilen kümeye dağıtır.
Terraform arayüzleri
Veri kaynakları
| Veri kaynağı | Açıklama |
|---|---|
| alicloud_edas_applications | Hem Elastic Compute Service (ECS) hem de ACK uygulamaları dahil olmak üzere EDAS uygulamalarını sorgular |
| alicloud_edas_clusters | Hem ECS hem de ACK kümeleri dahil olmak üzere EDAS kümelerini sorgular |
Kaynaklar
| Kaynak | Açıklama |
|---|---|
| alicloud_edas_k8s_cluster | ACK kümesini EDAS içine aktarır |
| alicloud_edas_k8s_application | EDAS tarafından yönetilen bir ACK kümesinde uygulama oluşturur ve dağıtır |
Yapılandırma örneği
Bu örnek, ACK içinde yönetilen bir Kubernetes kümesi oluşturur, onu EDAS içine aktarır ve konteyner tabanlı bir uygulama dağıtır. Yapılandırma parametrelerini ihtiyacınıza göre değiştirin.
Terraform çeşitli ACK küme türlerini destekler. Bu örnekte yönetilen bir Kubernetes kümesi kullanılmıştır.
Bu örnek, yapılandırmanızda VPC ve vSwitch kaynaklarını (örneğin alicloud_vpc ve alicloud_vswitch) ile bir alicloud_instance_types veri kaynağını zaten tanımladığınızı varsayar. Ayrıntılar için Alibaba Cloud Terraform sağlayıcı belgelerine bakın.
Adım 1: Yönetilen bir Kubernetes kümesi oluşturun
resource "alicloud_cs_managed_kubernetes" "default" {
name = var.name
worker_instance_types = [data.alicloud_instance_types.default.instance_types.0.id]
worker_vswitch_ids = [alicloud_vswitch.default.id]
worker_number = "1"
password = "Test12345"
pod_cidr = "172.20.0.0/16"
service_cidr = "172.21.0.0/20"
worker_disk_size = "50"
worker_disk_category = "cloud_ssd"
worker_data_disk_size = "20"
worker_data_disk_category = "cloud_ssd"
worker_instance_charge_type = "PostPaid"
slb_internet_enabled = "true"
}
Aşağıdaki tabloda ana parametreler açıklanmıştır:
| Parametre | Açıklama | Örnek |
|---|---|---|
name |
Küme adı | Bir değişkenden başvurulur |
worker_instance_types |
Çalışan düğümler için ECS örnek türü | ecs.g6.large |
worker_vswitch_ids |
Çalışan düğümler için vSwitch ID'si | Bir alicloud_vswitch kaynağından başvurulur |
password |
Çalışan düğümler için SSH oturum açma parolası | Test12345 |
pod_cidr |
Pod IP adresleri için CIDR bloğu. VPC veya hizmet CIDR aralıklarıyla çakışmamalıdır. | 172.20.0.0/16 |
service_cidr |
Hizmet IP adresleri için CIDR bloğu. VPC veya pod CIDR aralıklarıyla çakışmamalıdır. | 172.21.0.0/20 |
Adım 2: Küme EDAS içine aktarın
resource "alicloud_edas_k8s_cluster" "default" {
cs_cluster_id = "xxxx-xxx-xxx"
}
Bu kaynak, 1. Adımda oluşturulan ACK kümesini EDAS içine aktarır. Aktarımdan sonra EDAS, bu kümedeki uygulama dağıtımlarını yönetebilir.
Adım 3: Uygulama dağıtın
resource "alicloud_edas_k8s_application" "default" {
application_name = "shesheng-test-k8s"
cluster_id = "45bc8232-3233-46be-ab20-6d4a9b506d5c"
replicas = 1
package_type = "Image"
image_url = "cr.registry.cloud.ste2.com/test/gw-provider:1028"
command = "/bin/sh"
command_args = ["-c", "while true; do echo hello; sleep 1000;done"]
}
Aşağıdaki tabloda ana parametreler açıklanmıştır:
| Parametre | Açıklama |
|---|---|
application_name |
EDAS'taki uygulamanın adı |
cluster_id |
2. Adımdaki EDAS tarafından yönetilen kümenin ID'si |
replicas |
Pod çoğaltma sayısı |
package_type |
Dağıtım paketi türü. Konteyner görüntüsü dağıtımları için Image olarak ayarlayın. |
image_url |
Konteyner görüntüsünün tam URL'si |
command |
Konteyner için giriş noktası komutu |
command_args |
Giriş noktası komutuna geçirilen bağımsız değişkenler |
Altyapıyı dağıtın
Terraform yapılandırmasını başlatmak ve uygulamak için aşağıdaki komutları çalıştırın:
-
Terraform çalışma dizinini başlatın.
terraform initBeklenen çıktı:
Initializing provider plugins... - Installing aliyun/alicloud... Terraform has been successfully initialized! -
Değişiklikleri önizleyin.
terraform plan -
Tüm kaynakları oluşturmak için yapılandırmayı uygulayın.
terraform applyİstendiğinde onaylamak için
yesyazın. Küme oluşturma işlemi genellikle 10 ila 15 dakika sürer.Beklenen çıktı:
Apply complete! Resources: X added, 0 changed, 0 destroyed.
Kaynakları temizleyin
Sürekli ücretlendirmeyi önlemek için, bu yapılandırma tarafından oluşturulan tüm kaynaklara artık ihtiyaç duymadığınızda bunları yok edin:
terraform destroy
İstendiğinde onaylamak için yes yazın. Bu işlem EDAS uygulamasını, EDAS küme aktarımını ve ACK kümesini kaldırır.
terraform destroy komutu, bu yapılandırma tarafından yönetilen tüm kaynakları kalıcı olarak siler. Bu komutu çalıştırmadan önce önemli verilerinizi yedekleyin.
İlgili bilgiler
Terraform Kayıt Defteri'ndeki EDAS K8s küme kaynağı referansı
Terraform Kayıt Defteri'ndeki EDAS K8s uygulama kaynağı referansı