Nasazení clusteru Kubernetes s modulem AKS ve službě Azure Stack Hub
Cluster Kubernetes můžete nasadit ve službě Azure Stack Hub z klientského virtuálního počítače s modulem AKS. V tomto článku se podíváme na zápis specifikace clusteru, nasazení clusteru se souborem apimodel.json a kontrolu clusteru nasazením MySQL s Helmem.
Definování specifikace clusteru
Specifikaci clusteru můžete zadat v souboru dokumentu pomocí formátu JSON označovaného jako model rozhraní API. Modul AKS používá specifikaci clusteru v modelu rozhraní API k vytvoření clusteru.
Příklady modelu rozhraní API pro váš operační systém a číslo verze modulu AKS pro poslední verze najdete v modulu AKS a odpovídající mapování imagí.
- V tabulce najděte například
v.0.63.0
číslo verze modulu AKS. - V tabulce ukázek modelu rozhraní API vyberte a otevřete odkaz pro váš operační systém.
- Vyberte Nezpracovaný. Adresu URL můžete použít v následujících pokynech.
Adresa URL modelu rozhraní API může vypadat takto:
https://raw.githubusercontent.com/Azure/aks-engine-azurestack/master/examples/azure-stack/kubernetes-azurestack.json
Pro každou z následujících ukázek nahraďte <URL for the API Model>
adresou URL.
Aktualizace modelu rozhraní API
V této části se podíváme na vytvoření modelu rozhraní API pro váš cluster.
Začněte pomocí souboru modelu rozhraní API služby Azure Stack Hub pro Linux nebo Windows. Na počítači jste nainstalovali modul AKS a spusťte:
curl -o kubernetes-azurestack.json <URL for the API Model>
Poznámka:
Pokud jste odpojeni, můžete si soubor stáhnout a ručně ho zkopírovat do odpojeného počítače, kde ho plánujete upravit. Soubor můžete zkopírovat do počítače s Linuxem pomocí nástrojů, jako je PuTTY nebo WinSCP.
K otevření modelu rozhraní API v editoru můžete použít nano:
nano ./kubernetes-azurestack.json
Poznámka:
Pokud nemáte nano nainstalované, můžete nano nainstalovat na Ubuntu:
sudo apt-get install nano
.V souboru kubernetes-azurestack.json vyhledejte orchestratorRelease a orchestratorVersion. Vyberte jednu z podporovaných verzí Kubernetes. Tabulku verzí najdete v poznámkách k verzi.
orchestratorRelease
Zadejte hodnotu x.xx a orchestratorVersion jako x.xx.x. Seznam aktuálních verzí najdete v tématu Podporované verze modulu AKS.Vyhledejte
customCloudProfile
a zadejte adresu URL portálu tenanta. Napříkladhttps://portal.local.azurestack.external
.Přidejte
"identitySystem":"adfs"
, pokud používáte službu AD FS. Příklad:"customCloudProfile": { "portalURL": "https://portal.local.azurestack.external", "identitySystem": "adfs" },
Poznámka:
Pokud pro svůj systém identit používáte Microsoft Entra ID, nemusíte přidávat pole identitySystem .
Nastavte
masterProfile
následující pole:Pole Popis dnsPrefix Zadejte jedinečný řetězec, který bude sloužit k identifikaci názvu hostitele virtuálních počítačů. Například název založený na názvu skupiny prostředků. count Zadejte požadovaný počet hlavních serverů pro vaše nasazení. Minimální hodnota pro nasazení vysoké dostupnosti je 3, ale pro nasazení bez vysoké dostupnosti je povolená 1. vmSize Zadejte velikost podporovanou službou Azure Stack Hub, například Standard_D2_v2
.distribuce Zadejte aks-ubuntu-18.04
neboaks-ubuntu-20.04
.V
agentPoolProfiles
aktualizaci:Pole Popis count Zadejte požadovaný počet agentů pro vaše nasazení. Maximální početuzlůchch Pokud nasazujete více než jeden cluster na předplatné, ujistěte se, že celkový počet agentů nepřekračuje 50. Nezapomeňte použít položky konfigurace zadané v ukázkovém souboru JSON modelu rozhraní API. vmSize Zadejte velikost podporovanou službou Azure Stack Hub, například Standard_D2_v2
.distribuce Zadejte aks-ubuntu-18.04
neboaks-ubuntu-20.04
Windows
.
Používá seWindows
pro agenty, kteří budou spouštět ve Windows. Podívejte se například na kubernetes-windows.jsonV
linuxProfile
aktualizaci:Pole Popis adminUsername Zadejte uživatelské jméno správce virtuálního počítače. ssh Zadejte veřejný klíč, který se použije pro ověřování SSH s virtuálními počítači. Použijte ssh-rsa
a pak klíč. Pokyny k vytvoření veřejného klíče najdete v tématu Vytvoření klíče SSH pro Linux.Pokud nasazujete do vlastní virtuální sítě, najdete pokyny k vyhledání a přidání požadovaného klíče a hodnot do příslušných polí v modelu rozhraní API v nasazení clusteru Kubernetes do vlastní virtuální sítě.
Poznámka:
Modul AKS pro Azure Stack Hub neumožňuje poskytovat vlastní certifikáty pro vytvoření clusteru.
Pokud používáte Windows,
windowsProfile
aktualizujte hodnoty aadminUsername:
adminPassword
:"windowsProfile": { "adminUsername": "azureuser", "adminPassword": "", "sshEnabled": true }
Další informace o modelu rozhraní API
- Kompletní referenční informace o všech dostupných možnostech v modelu rozhraní API najdete v definicích clusteru.
- Hlavní informace o konkrétních možnostech služby Azure Stack Hub najdete v konkrétních specifikách definic clusteru Azure Stack Hub.
Přidání certifikátu při použití ASDK
Pokud nasazujete cluster do sady Azure Stack Development Kit (ASDK) a používáte Linux, budete muset přidat kořenový certifikát do důvěryhodného úložiště certifikátů klientského virtuálního počítače s modulem AKS.
- V tomto adresáři vyhledejte kořenový certifikát virtuálního počítače:
/var/lib/waagent/Certificates.pem.
- Zkopírujte soubor certifikátu:
sudo cp /var/lib/waagent/Certificates.pem /usr/local/share/ca-certificates/azurestacka.crt sudo update-ca-certificates
Nasazení clusteru Kubernetes
Po shromáždění všech požadovaných hodnot v modelu rozhraní API můžete vytvořit cluster. V tuto chvíli byste měli:
Požádejte operátora služby Azure Stack Hub, aby:
- Ověřte stav systému, navrhněte spuštění
Test-AzureStack
a nástroj pro monitorování hardwaru dodavatele OEM. - Ověřte systémovou kapacitu, včetně prostředků, jako jsou paměť, úložiště a veřejné IP adresy.
- Zadejte podrobnosti o kvótě přidružené k vašemu předplatnému, abyste mohli ověřit, jestli je stále dostatek místa pro počet virtuálních počítačů, které plánujete použít.
Pokračujte nasazením clusteru:
Projděte si dostupné parametry modulu AKS v příznakech rozhraní příkazového řádku služby Azure Stack Hub.
Parametr Příklad Popis azure-env AzureStackCloud Pokud chcete označit modul AKS, že vaše cílová platforma je azure Stack Hub, použijte AzureStackCloud
.identity-system adfs Nepovinné. Pokud používáte službu AD FS (Active Directory Federated Services), zadejte řešení správy identit. location local Název oblasti pro službu Azure Stack Hub. U sady ASDK je oblast nastavena na local
hodnotu .resource-group kube-rg Zadejte název nové skupiny prostředků nebo vyberte existující skupinu prostředků. Název prostředku musí být alfanumerický a malými písmeny. api-model ./kubernetes-azurestack.json Cesta ke konfiguračnímu souboru clusteru nebo k modelu rozhraní API output-directory kube-rg Zadejte název adresáře, který bude obsahovat výstupní soubor apimodel.json a další vygenerované soubory. id klienta xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Zadejte identifikátor GUID instančního objektu. ID klienta identifikované jako ID aplikace, když správce služby Azure Stack Hub vytvořil instanční objekt. client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Zadejte tajný klíč instančního objektu. Při vytváření služby jste nastavili tajný klíč klienta. id předplatného xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Zadejte ID předplatného. Musíte zadat předplatné pro tenanta. Nasazení do předplatného pro správu se nepodporuje. Další informace najdete v tématu Přihlášení k odběru nabídky. Zde je příklad:
Poznámka:
Pro AKSe verze 0.75.3 a vyšší je
aks-engine-azurestack deploy
příkaz pro nasazení clusteru modulu AKS .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
Pokud se spuštění z nějakého důvodu po vytvoření výstupního adresáře nezdaří, můžete problém opravit a spustit příkaz znovu. Pokud znovu spustíte nasazení a předtím jste použili stejný výstupní adresář, modul AKS vrátí chybu s informací, že adresář již existuje. Existující adresář můžete přepsat pomocí příznaku:
--force-overwrite
.Uložte konfiguraci clusteru modulu AKS do zabezpečeného šifrovaného umístění.
Vyhledejte soubor apimodel.json. Uložte ho do zabezpečeného umístění. Tento soubor se použije jako vstup ve všech ostatních operacích modulu AKS.
Vygenerovaný soubor apimodel.json obsahuje instanční objekt, tajný klíč a veřejný klíč SSH, který používáte ve vstupním modelu rozhraní API. Soubor má také všechna ostatní metadata potřebná modulem AKS k provádění všech ostatních operací. Pokud soubor ztratíte, modul AKS nebude moct cluster nakonfigurovat.
Tajné kódy jsou nešifrované. Zachovejte soubor na zašifrovaném zabezpečeném místě.
Ověření clusteru
Zkontrolujte cluster připojením, kubectl
získáním informací a získáním stavů uzlů.
kubeconfig
Získejte soubor pro připojení k řídicí rovině.- Pokud jste již nainstalovali
kubectl
, zkontrolujtekubeconfig
soubor nově vytvořeného clusteru v této cestě k/kubeconfig/kubeconfig.json
adresáři . Do adresáře můžete přidat/kubeconfig.json
.kube
adresář a přejmenovat ho na "config" pro přístup k novému clusteru.
Pokud jste nástroj příkazového řádku Kubernetes nenainstalovalikubectl
, přejděte do části Install Tools (Nainstalovat nástroje ) a nainstalujte nástroj příkazového řádku Kubernetes. V opačném případě postupujte podle následujících pokynů pro přístup ke clusteru z jednoho z uzlů řídicí roviny.
- Pokud jste již nainstalovali
Získejte veřejnou IP adresu jednoho z uzlů řídicí roviny pomocí portálu Azure Stack Hub.
Z počítače s přístupem k instanci služby Azure Stack Hub se připojte přes SSH k novému uzlu řídicí roviny pomocí klienta, jako je PuTTY nebo MobaXterm.
Pro uživatelské jméno SSH použijte azureuser a soubor privátního klíče páru klíčů, který jste zadali pro nasazení clusteru.
Zkontrolujte, že jsou spuštěné koncové body clusteru:
kubectl cluster-info
Výstup by měl vypadat zhruba takto:
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
Pak zkontrolujte stavy uzlů:
kubectl get nodes
Výstup by měl vypadat přibližně takto:
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
Řešení potíží s nasazením clusteru
Při výskytu chyb při nasazování clusteru Kubernetes pomocí modulu AKS můžete zkontrolovat:
- Používáte správné přihlašovací údaje instančního objektu (SPN)?
- Má hlavní název služby roli Přispěvatelé k předplatnému služby Azure Stack Hub?
- Máte v plánu služby Azure Stack Hub dostatečnou kvótu?
- Používá se instance služby Azure Stack Hub s opravou nebo upgradem?
Další informace najdete v článku o řešení potíží v úložišti Azure/aks-engine-azurestack Na GitHubu.
Obměna tajného klíče instance
Po nasazení clusteru Kubernetes s modulem AKS se instanční objekt (SPN) použije ke správě interakcí s Azure Resource Managerem ve vaší instanci služby Azure Stack Hub. V určitém okamžiku může platnost tajného kódu pro tento instanční objekt vypršet. Pokud platnost tajného kódu vyprší, můžete přihlašovací údaje aktualizovat pomocí následujících údajů:
- Aktualizace jednotlivých uzlů pomocí nového tajného klíče instančního objektu
- Nebo aktualizujte přihlašovací údaje modelu rozhraní API a spustíte upgrade.
Ruční aktualizace jednotlivých uzlů
- Získejte nový tajný kód pro instanční objekt od operátora cloudu. Pokyny pro Azure Stack Hub najdete v tématu Použití identity aplikace pro přístup k prostředkům služby Azure Stack Hub.
- Pomocí nových přihlašovacích údajů poskytovaných operátorem cloudu aktualizujte /etc/kubernetes/azure.json na každém uzlu. Po provedení aktualizace restartujte obě
kubele
akube-controller-manager
.
Aktualizace clusteru pomocí aktualizace modulu aks
Případně můžete nahradit přihlašovací údaje v apimodel.json a spustit upgrade pomocí aktualizovaného souboru .json na stejnou nebo novější verzi Kubernetes. Pokyny k upgradu modelu najdete v tématu Upgrade clusteru Kubernetes ve službě Azure Stack Hub.