Sdílet prostřednictvím


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í.

  1. V tabulce najděte například v.0.63.0číslo verze modulu AKS.
  2. V tabulce ukázek modelu rozhraní API vyberte a otevřete odkaz pro váš operační systém.
  3. 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.

  1. 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.

  2. 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.

  3. 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.

  4. Vyhledejte customCloudProfile a zadejte adresu URL portálu tenanta. Například https://portal.local.azurestack.external.

  5. 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 .

  6. Nastavte masterProfilená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 nebo aks-ubuntu-20.04.
  7. 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.04nebo aks-ubuntu-20.04 Windows.
    Používá se Windows pro agenty, kteří budou spouštět ve Windows. Podívejte se například na kubernetes-windows.json
  8. V 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.

  9. Pokud používáte Windows, windowsProfile aktualizujte hodnoty a adminUsername: 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.

  1. V tomto adresáři vyhledejte kořenový certifikát virtuálního počítače: /var/lib/waagent/Certificates.pem.
  2. 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:

  1. 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 localhodnotu .
    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 deploypří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
    
  2. 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.

  3. 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, kubectlzískáním informací a získáním stavů uzlů.

  1. kubeconfig Získejte soubor pro připojení k řídicí rovině.

    • Pokud jste již nainstalovali kubectl , zkontrolujte kubeconfig soubor nově vytvořeného clusteru v této cestě k /kubeconfig/kubeconfig.jsonadresář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 nenainstalovali kubectl, 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.
  2. Získejte veřejnou IP adresu jednoho z uzlů řídicí roviny pomocí portálu Azure Stack Hub.

  3. 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.

  4. 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.

  5. 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
    
  6. 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:

  1. Používáte správné přihlašovací údaje instančního objektu (SPN)?
  2. Má hlavní název služby roli Přispěvatelé k předplatnému služby Azure Stack Hub?
  3. Máte v plánu služby Azure Stack Hub dostatečnou kvótu?
  4. 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ů

  1. 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.
  2. 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 a kube-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.

Další kroky