Megosztás a következőn keresztül:


Kubernetes-fürt üzembe helyezése AKS-motorral az Azure Stack Hubon

Kubernetes-fürtöt helyezhet üzembe az Azure Stack Hubon egy AKS-motort futtató ügyfél virtuális gépről. Ebben a cikkben egy fürtspecifikációt írunk, egy fürtöt helyezünk üzembe a apimodel.json fájllal, és ellenőrizzük a fürtöt a MySQL helmel való üzembe helyezésével.

Fürtspecifikáció definiálása

A fürt specifikációját egy dokumentumfájlban az API-modell nevű JSON-formátum használatával adhatja meg. Az AKS-motor az API-modell fürtspecifikációját használja a fürt létrehozásához.

Az operációs rendszer és az AKS-motor verziószámához tartozó API-modellre példákat találhat az AKS-motor legutóbbi kiadásaihoz és a megfelelő képleképezéshez.

  1. Keresse meg például az AKS-motor verziószámát v.0.63.0a táblázatban.
  2. Az API-modell mintatáblájában válassza ki és nyissa meg az operációs rendszer hivatkozását.
  3. Válassza a Nyers lehetőséget. Az URL-címet az alábbi utasításokban használhatja.

Az API-modell URL-címe a következőképpen nézhet ki:

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

Az alábbi minták mindegyike esetében cserélje le <URL for the API Model> az URL-címet.

Az API-modell frissítése

Ez a szakasz egy API-modell létrehozását ismerteti a fürthöz.

  1. Első lépésként használjon Egy Azure Stack Hub API-modellfájlt Linuxhoz vagy Windowshoz. A gépről telepítette az AKS-motort, futtassa a következőt:

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

    Feljegyzés

    Ha megszakadt a kapcsolat, letöltheti a fájlt, és manuálisan átmásolhatja a leválasztott gépre, ahol szerkeszteni szeretné. A fájlt átmásolhatja Linux rendszerű gépére olyan eszközökkel, mint a PuTTY vagy a WinSCP.

  2. Az API-modell szerkesztőben való megnyitásához használhatja a nanot:

    nano ./kubernetes-azurestack.json
    

    Feljegyzés

    Ha nincs telepítve a nano, telepítheti a nano-t az Ubuntu-on: sudo apt-get install nano.

  3. A kubernetes-azurestack.json fájlban keresse meg az orchestratorRelease és az orchestratorVersion fájlt. Válasszon egyet a támogatott Kubernetes-verziók közül; A verziótáblát a kibocsátási megjegyzésekben találja. Adja meg az orchestratorRelease x.xx és az orchestratorVersion értéket x.xx.x formátumban. Az aktuális verziók listáját lásd: Támogatott AKS-motorverziók

  4. Keresse meg customCloudProfile és adja meg a bérlői portál URL-címét. Például: https://portal.local.azurestack.external.

  5. Adja hozzá "identitySystem":"adfs" , ha AD FS-t használ. Például:

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

    Feljegyzés

    Ha Microsoft Entra-azonosítót használ az identitásrendszeréhez, nem kell hozzáadnia az identitySystem mezőt.

  6. Ebben masterProfilea mezőben adja meg a következő mezőket:

    Mező Leírás
    dnsPrefix Adjon meg egy egyedi sztringet, amely a virtuális gépek állomásnevének azonosítására szolgál. Például az erőforráscsoport neve alapján.
    darabszám Adja meg az üzembe helyezéshez használni kívánt főkiszolgálók számát. A havas telepítés minimális értéke 3, a nem HA üzemelő példányok esetében azonban 1.
    vmSize Adja meg például az Azure Stack HubStandard_D2_v2 által támogatott méretet.
    disztribúció Adja meg aks-ubuntu-18.04 vagy aks-ubuntu-20.04.
  7. Frissítés alatt agentPoolProfiles :

    Mező Leírás
    darabszám Adja meg az üzembe helyezéshez használni kívánt ügynökök számát. Az előfizetésenként használandó csomópontok maximális száma 50. Ha előfizetésenként több fürtöt helyez üzembe, győződjön meg arról, hogy az ügynökök teljes száma nem haladja meg az 50-et. Ügyeljen arra, hogy a minta API-modell JSON-fájljában megadott konfigurációelemeket használja.
    vmSize Adja meg például az Azure Stack HubStandard_D2_v2 által támogatott méretet.
    disztribúció Adja meg aks-ubuntu-18.04vagy Windowsaks-ubuntu-20.04 .
    Windows rendszeren futó ügynökökhöz használható Windows . Lásd például a kubernetes-windows.json
  8. Frissítés alatt linuxProfile :

    Mező Leírás
    adminUsername Adja meg a virtuális gép rendszergazdai felhasználónevét.
    ssh Adja meg a virtuális gépekkel való SSH-hitelesítéshez használt nyilvános kulcsot. Használja ssh-rsa , majd a kulcsot. A nyilvános kulcsok létrehozásával kapcsolatos utasításokért lásd : SSH-kulcs létrehozása Linuxhoz.

    Ha egyéni virtuális hálózaton helyezi üzembe az üzembe helyezést, útmutatást talál a szükséges kulcs és értékek megkeresésére és hozzáadására a kubernetes-fürt üzembe helyezése egyéni virtuális hálózaton az API-modell megfelelő tömbjeihez.

    Feljegyzés

    Az Azure Stack Hub AKS-motorja nem teszi lehetővé, hogy saját tanúsítványokat adjon meg a fürt létrehozásához.

  9. Ha Windowst használ, frissítse windowsProfile a következő adminPasswordértékeketadminUsername::

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

További információ az API-modellről

Tanúsítvány hozzáadása AZ ASDK használatakor

Ha fürtöt helyez üzembe az Azure Stack Development Kitben (ASDK), és Linuxot használ, hozzá kell adnia a főtanúsítványt az AKS-motort futtató ügyfél virtuális gép megbízható tanúsítványtárolójába.

  1. Keresse meg a főtanúsítványt a virtuális gépen ebben a könyvtárban: /var/lib/waagent/Certificates.pem.
  2. Másolja ki a tanúsítványfájlt:
    sudo cp /var/lib/waagent/Certificates.pem /usr/local/share/ca-certificates/azurestacka.crt
    sudo update-ca-certificates
    

Kubernetes-fürt üzembe helyezése

Miután összegyűjtötte az ÖSSZES szükséges értéket az API-modellben, létrehozhatja a fürtöt. Ezen a ponton a következőt kell tenni:

Kérje meg az Azure Stack Hub-operátort a következőre:

  • Ellenőrizze a rendszer állapotát, javasolja a futást Test-AzureStack és az OEM-gyártó hardvermonitorozási eszközét.
  • Ellenőrizze a rendszerkapacitást, beleértve az erőforrásokat, például a memóriát, a tárterületet és a nyilvános IP-címeket.
  • Adja meg az előfizetéséhez társított kvótát, hogy ellenőrizze, hogy van-e még elegendő hely a használni kívánt virtuális gépek számára.

Fürt üzembe helyezése:

  1. Tekintse át az AKS-motor elérhető paramétereit az Azure Stack Hub CLI-jelzőiben.

    Paraméter Példa Leírás
    azure-env AzureStackCloud Annak jelzése az AKS-motornak, hogy a célplatform az Azure Stack Hub.AzureStackCloud
    identitásrendszer adfs Opcionális. Adja meg az identitáskezelési megoldást, ha Active Directory összevont szolgáltatásokat (AD FS) használ.
    hely helyi Az Azure Stack Hub régióneve. Az ASDK esetében a régió értéke local.
    resource-group kube-rg Adja meg egy új erőforráscsoport nevét, vagy válasszon ki egy meglévő erőforráscsoportot. Az erőforrás nevének alfanumerikusnak és kisbetűsnek kell lennie.
    api-model ./kubernetes-azurestack.json A fürtkonfigurációs fájl vagy AZ API-modell elérési útja.
    output-directory kube-rg Adja meg annak a könyvtárnak a nevét, amely tartalmazza a kimeneti fájlt apimodel.json és más létrehozott fájlokat.
    ügyfél-azonosító xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg a szolgáltatásnév GUID azonosítót. Az Azure Stack Hub rendszergazdája által a szolgáltatásnév létrehozásakor az alkalmazásazonosítóként azonosított ügyfélazonosító.
    titkos ügyfélkód xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg a szolgáltatásnév titkos kódjának nevét. A szolgáltatás létrehozásakor be kell állítania az ügyfél titkos kódját.
    előfizetés-azonosító xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg az előfizetés azonosítóját. Meg kell adnia egy előfizetést a bérlő számára. A rendszergazdai előfizetésben való üzembe helyezés nem támogatott. További információ: Feliratkozás ajánlatra

    Egy példa:

    Feljegyzés

    Az AKSe 0.75.3-s és újabb verziói esetében az AKS-motorfürt üzembe helyezésének parancsa a következő 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. Ha a végrehajtás valamilyen okból meghiúsul a kimeneti könyvtár létrehozása után, kijavíthatja a hibát, és újrafuttathatja a parancsot. Ha újrafuttatta az üzembe helyezést, és korábban ugyanazt a kimeneti könyvtárat használta, az AKS-motor hibát fog visszaadni, amely szerint a címtár már létezik. A meglévő könyvtár felülírásához használja a következő jelölőt: --force-overwrite.

  3. Mentse az AKS-motorfürt konfigurációját biztonságos, titkosított helyen.

    Keresse meg a apimodel.json fájlt. Mentse biztonságos helyre. Ez a fájl lesz felhasználva az összes többi AKS-motorművelet bemeneteként.

    A létrehozott apimodel.json fájl tartalmazza a bemeneti API-modellben használt szolgáltatásnevet, titkos kulcsot és SSH nyilvános kulcsot. A fájl tartalmazza az AKS-motor által az összes többi művelet végrehajtásához szükséges összes többi metaadatot is. Ha elveszíti a fájlt, az AKS-motor nem fogja tudni konfigurálni a fürtöt.

    A titkos kódok titkosítatlanok. Tárolja a fájlt titkosított, biztonságos helyen.

A fürt ellenőrzése

Ellenőrizze a fürtöt a csatlakozással kubectl, az adatok lekérésével, majd a csomópontok állapotának lekérésével.

  1. Kérje le a fájlt a kubeconfig vezérlősíkhoz való csatlakozáshoz.

    • Ha már telepítette kubectl , ellenőrizze az kubeconfig újonnan létrehozott fürt fájljának helyét ebben a könyvtár elérési útjában /kubeconfig/kubeconfig.json. Hozzáadhatja a /kubeconfig.json .kube címtárhoz, és átnevezheti "konfigurációra" az új fürt eléréséhez.
      Ha még nincs telepítve kubectl, a Kubernetes parancssori eszköz telepítéséhez látogasson el az Eszközök telepítése elemre. Ellenkező esetben az alábbi utasításokat követve érheti el a fürtöt az egyik vezérlősík-csomópontról.
  2. Kérje le az egyik vezérlősík-csomópont nyilvános IP-címét az Azure Stack Hub portál használatával.

  3. Az Azure Stack Hub-példányhoz hozzáféréssel rendelkező gépről SSH-n keresztül kapcsolódjon az új vezérlősík-csomóponthoz egy ügyfél, például a PuTTY vagy a MobaXterm használatával.

  4. Az SSH-felhasználónévhez használja az "azureuser" nevet és a fürt üzembe helyezéséhez megadott kulcspár titkos kulcsfájlját.

  5. Ellenőrizze, hogy a fürtvégpontok futnak-e:

    kubectl cluster-info
    

    A kimenetnek a következőképpen kell kinéznie:

    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. Ezután tekintse át a csomópont állapotát:

    kubectl get nodes
    

    A kimenet az alábbihoz hasonló lesz:

    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
    

Fürt üzembe helyezésének hibaelhárítása

Ha hibákba ütközik egy Kubernetes-fürt AKS-motorral történő üzembe helyezése során, ellenőrizze a következőt:

  1. A megfelelő szolgáltatásnév-hitelesítő adatokat (SPN) használja?
  2. Az SPN rendelkezik "Közreműködők" szerepkörrel az Azure Stack Hub-előfizetéshez?
  3. Rendelkezik elég nagy kvótával az Azure Stack Hub-csomagban?
  4. Az Azure Stack Hub-példányon javítás vagy frissítés van alkalmazva?

További információ: Hibaelhárítási cikk az Azure/aks-engine-azurestack GitHub adattárban.

A szolgáltatás alapelvének titkos kulcsának elforgatása

A Kubernetes-fürt AKS-motorral történő üzembe helyezése után a szolgáltatásnév (SPN) az Azure Stack Hub-példányon az Azure Resource Managerrel való interakciók kezelésére szolgál. Egy bizonyos ponton a szolgáltatásnév titkos kódja lejárhat. Ha a titkos kód lejár, a hitelesítő adatokat a következőkkel frissítheti:

  • Az egyes csomópontok frissítése az új szolgáltatásnév-titkos kóddal.
  • Vagy frissítse az API-modell hitelesítő adatait, és futtassa a frissítést.

Az egyes csomópontok manuális frissítése

  1. Szerezze be a szolgáltatásnév új titkos kódját a felhőszolgáltatótól. Az Azure Stack Hubra vonatkozó utasításokért tekintse meg az Azure Stack Hub-erőforrások elérésére szolgáló alkalmazásidentitás használatát ismertető cikket.
  2. A felhőszolgáltató által biztosított új hitelesítő adatok használatával frissítse a /etc/kubernetes/azure.json az egyes csomópontokon. A frissítés elvégzése után indítsa újra mind kubele a kube-controller-manager.

A fürt frissítése aks-engine frissítéssel

Másik lehetőségként lecserélheti a hitelesítő adatokat a apimodel.json , és futtathatja a frissítést a frissített .json fájllal ugyanazon vagy újabb Kubernetes-verzióra. A modell frissítésével kapcsolatos utasításokért lásd : Kubernetes-fürt frissítése az Azure Stack Hubon

Következő lépések