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.
- AKS altyapısı sürüm numaranızı (örneğin,
v.0.63.0
) tabloda bulabilirsiniz. - API Modeli örnekleri tablosunda işletim sisteminizin bağlantısını seçin ve açın.
- 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.
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.
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
.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ümleriKiracı portalının URL'sini bulun
customCloudProfile
ve sağlayın. Örneğin,https://portal.local.azurestack.external
.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.
içinde
masterProfile
aş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ğin Standard_D2_v2
.dağıtım veya aks-ubuntu-20.04
girinaks-ubuntu-18.04
.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ğin Standard_D2_v2
.dağıtım veya aks-ubuntu-20.04
Windows
girinaks-ubuntu-18.04
.
Windows üzerinde çalışacak aracılar için kullanınWindows
. Örneğin, bkz. kubernetes-windows.jsonGü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.
Windows kullanıyorsanız ve
windowsProfile
adminPassword
değerleriniadminUsername:
güncelleştirin:"windowsProfile": { "adminUsername": "azureuser", "adminPassword": "", "sshEnabled": true }
API modeli hakkında daha fazla bilgi
- API modelindeki tüm kullanılabilir seçeneklerin tam başvurusu için Küme tanımlarına bakın.
- Azure Stack Hub'a yönelik belirli seçeneklerle ilgili vurgular için Bkz . Azure Stack Hub küme tanımı özellikleri.
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.
- Vm'de kök sertifikayı şu dizinde bulabilirsiniz:
/var/lib/waagent/Certificates.pem.
- 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:
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 local
ayarlanı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
Çı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
.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 kubectl
kümenizi denetleyin, bilgileri alın ve düğümlerinizin durumlarını alın.
kubeconfig
Kontrol düzlemine bağlanmak için dosyayı alın.- Zaten
kubectl
yüklediyseniz, bu dizin yolunda/kubeconfig/kubeconfig.json
yeni 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üklemediysenizkubectl
Kubernetes 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.
- Zaten
Azure Stack Hub portalını kullanarak denetim düzlemi düğümlerinizden birinin genel IP adresini alın.
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.
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.
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
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:
- Doğru Hizmet Sorumlusu kimlik bilgilerini (SPN) kullanıyor musunuz?
- SPN'nin Azure Stack Hub aboneliğinde "Katkıda Bulunanlar" rolü var mı?
- Azure Stack Hub planınızda yeterince büyük bir kotanız var mı?
- 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
- 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.
- 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-manager
dekubele
'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