Terraform kullanarak Kubernetes kümeleri oluşturma (önizleme)
Bu makalede Terraform ve Azure Doğrulanmış Modülü kullanılarak Azure Yerel'de Kubernetes kümelerinin nasıl oluşturulacağı açıklanır. İş akışı aşağıdaki gibidir:
- Bir SSH anahtar çifti oluşturun.
- Terraform kullanarak Azure Yerel 23H2'de bir Kubernetes kümesi oluşturun. Varsayılan olarak, küme Azure Arc bağlantılıdır.
- Dağıtımı doğrulayın ve kümeye bağlanın.
Önemli
Bu önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. Azure Arc önizlemeleri tarafından etkinleştirilen Azure Kubernetes Service, müşteri desteği kapsamındadır.
Başlamadan önce
Başlamadan önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
- Şirket içi altyapı yöneticinizden aşağıdaki ayrıntıları alın:
- Azure abonelik kimliği: Dağıtım ve kayıt için Azure Yerel'i kullanan Azure abonelik kimliği.
- Özel konum adı veya kimliği: Özel konumun Azure Resource Manager Kimliği. Özel konum, Azure Yerel küme dağıtımı sırasında yapılandırılır. Altyapı yöneticiniz size özel konumun Resource Manager kimliğini vermelidir. Kubernetes kümeleri oluşturmak için bu parametre gereklidir. Ayrıca, altyapı yöneticisi özel bir konum adı ve kaynak grubu adı sağlıyorsa Resource Manager kimliğini kullanarak
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
da alabilirsiniz. - Mantıksal ağ adı veya kimliği: Bu adımları izleyerek oluşturulan Azure Yerel mantıksal ağının Azure Resource Manager Kimliği. Yöneticiniz size mantıksal ağın kimliğini vermelidir. Kubernetes kümeleri oluşturmak için bu parametre gereklidir. Mantıksal ağın oluşturulduğu kaynak grubunu biliyorsanız kullanarak
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
Azure Resource Manager kimliğini de alabilirsiniz.
- Geliştirme makinenizde GitHub, Azure CLI'nın en son sürümü ve Terraform istemcisinin yüklü olduğundan emin olun.
- Geliştirme makinenize kubectl indirip yükleyin.
SSH anahtar çifti oluşturma
SSH anahtar çifti (Azure AKS ile aynı) oluşturmak için aşağıdaki yordamı kullanın:
az sshkey create komutunu, portaldan veya komutu kullanarak bir SSH anahtar çifti
ssh-keygen
oluşturun:az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
veya
ssh-keygen -t rsa -b 4096
Ortak anahtarınızın değerini Azure'dan veya /.ssh/id_rsa.pub altındaki yerel makinenizden alın.
Azure'da oturum açma
Terraform yalnızca az login
kullanarak Azure CLI ile Azure'da kimlik doğrulamayı destekler. Azure PowerShell kullanarak kimlik doğrulaması desteklenmez. Bu nedenle, Terraform çalışmanızı yaparken Azure PowerShell modülünü kullanabilirsiniz ancak önce Azure kimlik doğrulamasıgerekir:
az login
Terraform kodunu uygulama
Örnek Terraform kodunu test etmek için kullanabileceğiniz bir dizin oluşturun ve bunu geçerli dizininiz yapın.
Aynı dizinde providers.tf adlı bir dosya oluşturun ve aşağıdaki kodu yapıştırın:
terraform { required_version = "~> 1.5" required_providers { azapi = { source = "azure/azapi" version = "~> 1.13" } azurerm = { source = "hashicorp/azurerm" version = "~> 3.74" } } } provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = false } } }
En son AKS Arc AVM modülüne işaret eden main.tf adlı başka bir dosya oluşturun ve aşağıdaki kodu ekleyin. Modülün açıklamasını ve girişini okuyabilir ve gerektiğinde isteğe bağlı parametreler ekleyebilirsiniz. Yönetici grubu nesne kimliğini bulmak için bkz. Kubernetes kümeleri için Microsoft Entra kimlik doğrulamasını etkinleştirme. Bu kılavuzu izleyerek Azure ortamınızda bulabilirsiniz.
module "aks_arc" { # Make sure to use the latest AVM module version source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" version = "~>0.6" # Make sure to provide all required parameters resource_group_id = "<Resource_Group>" location = "<Region>" name = "<Cluster_Name>" logical_network_id = "<LNet_ID>" custom_location_id = "<CustomLocation_ID>" agent_pool_profiles = [{count=1}] ssh_public_key = "Your_SSH_Key" # Optional parameters, update them as needed enable_workload_identity = false enable_oidc_issuer = false rbac_admin_group_object_ids = ["<Admin_Group_Object_ID>"] }
Terraform'u başlatma
Terraform dağıtımını başlatmak için komutunu çalıştırın terraform init
. Gerekli sağlayıcı eklentilerini en son sürüme yükseltmek için bayrağını kullandığınızdan -upgrade
emin olun:
terraform init -upgrade
Terraform yürütme planı oluştur ve uygula
Bu adımdan önce az login
çalıştırdığınızdan ve Azure'da kimlik doğrulaması yaptığınızdan emin olun; aksi takdirde Terraform planını uygulama başarısız olur. Yürütme planı oluşturmak için terraform plan
çalıştırın, ardından çıkış dosyasını bulut altyapınıza uygulamak için terraform apply
çalıştırın:
terraform plan -out main.tfplan
terraform apply main.tfplan
Komut yürütülür ve kaynak başarıyla sağlandıktan sonra başarı döndürür.
Dağıtımı doğrulama ve kümeye bağlanma
Artık geliştirme makinenizden çalıştırarak az connectedk8s proxy
Kubernetes kümenize bağlanabilirsiniz. Düğüm ve pod durumunu görmek için kubectl de kullanabilirsiniz. Kubernetes kümesine bağlanma bölümünde açıklanan adımların aynısını izleyin.