Aracılığıyla paylaş


Azure Stack Hub'da AKS altyapısı ile Kubernetes kümesi dağıtma

AZURE Stack Hub'da AKS altyapısını çalıştıran bir istemci VM'den Kubernetes kümesi dağıtabilirsiniz. Bu makalede, bir küme belirtimi yazmaya, apimodel.json dosyasıyla küme dağıtmaya ve Helm ile MySQL dağıtarak kümenizi denetlemeye bakacağız.

Küme belirtimi tanımlama

API modeli olarak adlandırılan JSON biçimini kullanarak bir belge dosyasında küme belirtimi belirtebilirsiniz. AKS altyapısı, kümenizi oluşturmak için API modelinde bir küme belirtimi kullanır.

SON sürümler için işletim sisteminiz ve AKS altyapısı sürüm numaranız için API modelinin örneklerini AKS altyapısında ve ilgili görüntü eşlemede bulabilirsiniz.

  1. AKS altyapısı sürüm numaranızı (örneğin, v.0.63.0) tabloda bulabilirsiniz.
  2. API Modeli örnekleri tablosunda işletim sisteminizin bağlantısını seçin ve açın.
  3. Ham'ı seçin. URL'yi aşağıdaki yönergelerde kullanabilirsiniz.

API modelinin URL'si şöyle görünebilir:

https://raw.githubusercontent.com/Azure/aks-engine-azurestack/master/examples/azure-stack/kubernetes-azurestack.json

Aşağıdaki örneklerin her biri için url ile değiştirin <URL for the API Model> .

API modelini güncelleştirme

Bu bölümde kümeniz için bir API modeli oluşturma konusuna bakılmaktadır.

  1. Linux veya Windows için bir Azure Stack Hub API Modeli dosyası kullanarak başlayın. Makineden AKS altyapısını yüklediyseniz şunu çalıştırın:

    curl -o kubernetes-azurestack.json <URL for the API Model>
    

    Not

    Bağlantınız kesilirse, dosyayı indirebilir ve el ile düzenlemeyi planladığınız bağlantısı kesilmiş makineye kopyalayabilirsiniz. PuTTY veya WinSCP gibi araçları kullanarak dosyayı Linux makinenize kopyalayabilirsiniz.

  2. API modelini bir düzenleyicide açmak için nano kullanabilirsiniz:

    nano ./kubernetes-azurestack.json
    

    Not

    Nano yüklü değilse, Ubuntu'ya nano yükleyebilirsiniz: sudo apt-get install nano.

  3. kubernetes-azurestack.json dosyasında orchestratorRelease ve orchestratorVersion'ı bulun. Desteklenen Kubernetes sürümlerinden birini seçin; sürüm tablosunu sürüm notlarında bulabilirsiniz. orchestratorRelease değerini x.xx ve orchestratorVersion değerini x.xx.x olarak belirtin. Geçerli sürümlerin listesi için bkz . Desteklenen AKS altyapısı Sürümleri

  4. Kiracı portalının URL'sini bulun customCloudProfile ve sağlayın. Örneğin, https://portal.local.azurestack.external.

  5. AD FS kullanıyorsanız ekleyin "identitySystem":"adfs" . Örneğin,

        "customCloudProfile": {
            "portalURL": "https://portal.local.azurestack.external",
            "identitySystem": "adfs"
        },
    

    Not

    Kimlik sisteminiz için Microsoft Entra Id kullanıyorsanız identitySystem alanını eklemeniz gerekmez.

  6. içinde masterProfileaşağıdaki alanları ayarlayın:

    Alan Açıklama
    dnsPrefix VM'lerin konak adını tanımlamak için kullanılacak benzersiz bir dize girin. Örneğin, kaynak grubu adını temel alan bir ad.
    count Dağıtımınız için istediğiniz ana öğe sayısını girin. HA dağıtımı için en düşük değer 3'dür, ancak HA dışı dağıtımlar için 1'e izin verilir.
    vmSize Azure Stack Hub tarafından desteklenen bir boyut girin, örneğinStandard_D2_v2.
    dağıtım veya aks-ubuntu-20.04girinaks-ubuntu-18.04.
  7. Güncelleştirmede agentPoolProfiles :

    Alan Açıklama
    count Dağıtımınız için istediğiniz aracı sayısını girin. Abonelik başına kullanılacak düğüm sayısı üst sınırı 50'dir. Abonelik başına birden fazla küme dağıtıyorsanız, toplam aracı sayısının 50'den fazla olmadığından emin olun. Örnek API modeli JSON dosyasında belirtilen yapılandırma öğelerini kullandığınızdan emin olun.
    vmSize Azure Stack Hub tarafından desteklenen bir boyut girin, örneğinStandard_D2_v2.
    dağıtım veya aks-ubuntu-20.04 Windowsgirinaks-ubuntu-18.04.
    Windows üzerinde çalışacak aracılar için kullanın Windows . Örneğin, bkz. kubernetes-windows.json
  8. Güncelleştirmede linuxProfile :

    Alan Açıklama
    adminUsername VM yöneticisi kullanıcı adını girin.
    ssh VM'lerle SSH kimlik doğrulaması için kullanılacak ortak anahtarı girin. ve ardından anahtarı kullanın ssh-rsa . Ortak anahtar oluşturma yönergeleri için bkz . Linux için SSH anahtarı oluşturma.

    Özel bir sanal ağa dağıtıyorsanız, Kubernetes kümesini özel bir sanal ağa dağıtma başlığı altında API Modelinde gerekli anahtarı ve değerleri bulma ve uygun dizilere ekleme yönergelerini bulabilirsiniz.

    Not

    Azure Stack Hub için AKS altyapısı, kümenin oluşturulması için kendi sertifikalarınızı sağlamanıza izin vermez.

  9. Windows kullanıyorsanız ve windowsProfile adminPassworddeğerlerini adminUsername: güncelleştirin:

    "windowsProfile": {
    "adminUsername": "azureuser",
    "adminPassword": "",
    "sshEnabled": true
    }
    

API modeli hakkında daha fazla bilgi

ASDK kullanırken sertifika ekleme

Azure Stack Geliştirme Seti'ne (ASDK) bir küme dağıtıyorsanız ve Linux kullanıyorsanız, kök sertifikayı AKS altyapısı çalıştıran istemci VM'nin güvenilen sertifika deposuna eklemeniz gerekir.

  1. Vm'de kök sertifikayı şu dizinde bulabilirsiniz: /var/lib/waagent/Certificates.pem.
  2. Sertifika dosyasını kopyalayın:
    sudo cp /var/lib/waagent/Certificates.pem /usr/local/share/ca-certificates/azurestacka.crt
    sudo update-ca-certificates
    

Bir Kubernetes kümesi dağıtın

API modelinizdeki tüm gerekli değerleri topladıktan sonra kümenizi oluşturabilirsiniz. Bu noktada:

Azure Stack Hub operatörünüzden şunu yapmasını isteyin:

  • Sistemin durumunu doğrulayın, çalıştırmayı Test-AzureStack ve OEM satıcınızın donanım izleme aracını önerin.
  • Bellek, depolama ve genel IP'ler gibi kaynaklar dahil olmak üzere sistem kapasitesini doğrulayın.
  • Kullanmayı planladığınız VM sayısı için hala yeterli alan olduğunu doğrulayabilmeniz için aboneliğinizle ilişkili kotanın ayrıntılarını sağlayın.

Küme dağıtmaya devam edin:

  1. Azure Stack Hub CLI bayraklarında AKS altyapısı için kullanılabilir parametreleri gözden geçirin.

    Parametre Örnek Açıklama
    azure-env AzureStackCloud AKS altyapısına hedef platformunuzun Azure Stack Hub olduğunu belirtmek için kullanın AzureStackCloud.
    kimlik sistemi adfs isteğe bağlı. Active Directory Federasyon Hizmetleri (AD FS) kullanıyorsanız kimlik yönetimi çözümünüzü belirtin.
    konum yerel Azure Stack Hub'ınızın bölge adı. ASDK için bölge olarak localayarlanır.
    resource-group kube-rg Yeni bir kaynak grubunun adını girin veya var olan bir kaynak grubunu seçin. Kaynak adının alfasayısal ve küçük harf olması gerekir.
    api-model ./kubernetes-azurestack.json Küme yapılandırma dosyasının veya API modelinin yolu.
    output-directory kube-rg Çıkış dosyasını apimodel.json ve oluşturulan diğer dosyaları içerecek dizinin adını girin.
    istemci kimliği xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Hizmet sorumlusu GUID'sini girin. Azure Stack Hub yöneticiniz hizmet sorumlusunu oluşturduğunda Uygulama Kimliği olarak tanımlanan İstemci Kimliği.
    client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Hizmet sorumlusu gizli dizisini girin. Hizmetinizi oluştururken istemci gizli dizisini ayarlarsınız.
    subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Abonelik Kimliğinizi girin. Kiracı için bir abonelik sağlamanız gerekir. Yönetim aboneliğine dağıtım desteklenmez. Daha fazla bilgi için bkz. Teklife abone olma

    Örnek aşağıda verilmiştir:

    Not

    AKSe sürüm 0.75.3 ve üzeri için AKS altyapısı kümesi dağıtma komutudur aks-engine-azurestack deploy.

    aks-engine deploy \
    --azure-env AzureStackCloud \
    --location <for asdk is local> \
    --resource-group kube-rg \
    --api-model ./kubernetes-azurestack.json \
    --output-directory kube-rg \
    --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --identity-system adfs # required if using AD FS
    
  2. Çıkış dizini oluşturulduktan sonra yürütme bir nedenden dolayı başarısız olursa, sorunu düzeltebilir ve komutu yeniden çalıştırabilirsiniz. Dağıtımı yeniden çalıştırıyorsanız ve daha önce aynı çıkış dizinini kullandıysanız AKS altyapısı dizinin zaten var olduğunu belirten bir hata döndürür. Bayrağını kullanarak mevcut dizinin üzerine yazabilirsiniz: --force-overwrite.

  3. AKS altyapısı küme yapılandırmasını güvenli, şifrelenmiş bir konuma kaydedin.

    dosya apimodel.json bulun. Güvenli bir konuma kaydedin. Bu dosya, diğer tüm AKS altyapısı işlemlerinizde giriş olarak kullanılır.

    Oluşturulan apimodel.json dosyası, giriş API'sinde kullandığınız hizmet sorumlusunu, gizli diziyi ve SSH ortak anahtarını içerir. Dosya ayrıca AKS altyapısının diğer tüm işlemleri gerçekleştirmek için ihtiyaç duyduğu diğer tüm meta verileri içerir. Dosyayı kaybederseniz AKS altyapısı kümeyi yapılandıramaz.

    Gizli diziler şifrelenmemiş. Dosyayı şifrelenmiş ve güvenli bir yerde tutun.

Kümenizi doğrulama

adresine bağlanarak kubectlkümenizi denetleyin, bilgileri alın ve düğümlerinizin durumlarını alın.

  1. kubeconfig Kontrol düzlemine bağlanmak için dosyayı alın.

    • Zaten kubectl yüklediyseniz, bu dizin yolunda /kubeconfig/kubeconfig.jsonyeni oluşturulan kümenin dosyasını denetleyinkubeconfig. dizinine .kube öğesini ekleyebilir /kubeconfig.json ve yeni kümenize erişmek için "config" olarak yeniden adlandırabilirsiniz.
      yüklemediyseniz kubectlKubernetes komut satırı aracını yüklemek için Araçları Yükle'yi ziyaret edin. Aksi takdirde, denetim düzlemi düğümlerinden birinden kümeye erişmek için aşağıdaki yönergeleri izleyin.
  2. Azure Stack Hub portalını kullanarak denetim düzlemi düğümlerinizden birinin genel IP adresini alın.

  3. Azure Stack Hub örneğine erişimi olan bir makineden PuTTY veya MobaXterm gibi bir istemci kullanarak SSH aracılığıyla yeni denetim düzlemi düğümüne bağlanın.

  4. SSH kullanıcı adı için "azureuser" ve kümenin dağıtımı için sağladığınız anahtar çiftinin özel anahtar dosyasını kullanın.

  5. Küme uç noktalarının çalışıp çalışmadığını denetleyin:

    kubectl cluster-info
    

    Çıkış aşağıdakine benzer görünmelidir:

    Kubernetes master is running at https://democluster01.location.domain.com
    CoreDNS is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
    Metrics-server is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy
    
  6. Ardından düğüm durumlarını gözden geçirin:

    kubectl get nodes
    

    Çıktının aşağıdakine benzer olması gerekir:

    k8s-linuxpool-29969128-0   Ready      agent    9d    v1.15.5
    k8s-linuxpool-29969128-1   Ready      agent    9d    v1.15.5
    k8s-linuxpool-29969128-2   Ready      agent    9d    v1.15.5
    k8s-master-29969128-0      Ready      master   9d    v1.15.5
    k8s-master-29969128-1      Ready      master   9d    v1.15.5
    k8s-master-29969128-2      Ready      master   9d    v1.15.5
    

Küme dağıtımı sorunlarını giderme

AKS altyapısını kullanarak kubernetes kümesi dağıtırken hatalarla karşılaştığınızda şunları denetleyebilirsiniz:

  1. Doğru Hizmet Sorumlusu kimlik bilgilerini (SPN) kullanıyor musunuz?
  2. SPN'nin Azure Stack Hub aboneliğinde "Katkıda Bulunanlar" rolü var mı?
  3. Azure Stack Hub planınızda yeterince büyük bir kotanız var mı?
  4. Azure Stack Hub örneğinde bir düzeltme eki veya yükseltme uygulanıyor mu?

Daha fazla bilgi için Azure/aks-engine-azurestack GitHub deposundaki Sorun Giderme makalesine bakın.

Hizmet ilkesi gizli dizinizi döndürme

Aks altyapısı ile Kubernetes kümesinin dağıtımından sonra hizmet sorumlusu (SPN), Azure Stack Hub örneğinizdeki Azure Resource Manager ile etkileşimleri yönetmek için kullanılır. Bir noktada, hizmet sorumlusunun gizli dizisinin süresi dolabilir. Gizli dizinizin süresi dolarsa, kimlik bilgilerini şu şekilde yenileyebilirsiniz:

  • Her düğümü yeni hizmet sorumlusu gizli dizisiyle güncelleştirme.
  • Veya API modeli kimlik bilgilerini güncelleştirip yükseltmeyi çalıştırabilirsiniz.

Her düğümü el ile güncelleştirme

  1. Bulut operatörünüzden hizmet sorumlunuz için yeni bir gizli dizi alın. Azure Stack Hub yönergeleri için bkz . Azure Stack Hub kaynaklarına erişmek için uygulama kimliği kullanma.
  2. Her düğümde /etc/kubernetes/azure.json güncelleştirmek için bulut operatörünüz tarafından sağlanan yeni kimlik bilgilerini kullanın. Güncelleştirmeyi yaptıktan sonra hem hem kube-controller-managerde kubele 'yi yeniden başlatın.

Kümeyi aks-engine güncelleştirmesi ile güncelleştirme

Alternatif olarak, apimodel.json kimlik bilgilerini değiştirebilir ve güncelleştirilmiş .json dosyasını aynı veya daha yeni Kubernetes sürümüne kullanarak yükseltmeyi çalıştırabilirsiniz. Modeli yükseltme yönergeleri için bkz. Azure Stack Hub'da Kubernetes kümesini yükseltme

Sonraki adımlar