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ó megírását, egy fürt apimodel.json fájllal történő üzembe helyezését és a fürt ellenőrzését tekintjük át a MySQL Helm használatával történő üzembe helyezésével.

Fürtspecifikáció meghatározása

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

Az operációs rendszer API-modelljére és az AKS-motor verziószámára vonatkozó példákat az AKS-motor legutóbbi kiadásaihoz és a megfelelő képleképezéshez talál.

  1. Keresse meg az AKS-motor verziószámát, például v.0.63.0a táblában.
  2. Az API-modell mintái táblá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 mindegyikéhez 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. Kezdje egy Azure Stack Hub API-modellfájllal Linux vagy Windows rendszeren. A gépen telepítette az AKS-motort, majd futtassa a következőt:

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

    Megjegyzés

    Ha megszakadt a kapcsolat, letöltheti a fájlt, és manuálisan átmásolhatja arra a leválasztott gépre, ahol szerkeszteni szeretné. A fájlt átmásolhatja a 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 nano:

    nano ./kubernetes-azurestack.json
    

    Megjegyzé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álassza ki a támogatott Kubernetes-verziók egyikét; A verziótáblát a kibocsátási megjegyzésekben találja. Adja meg az x.xx és az orchestratorRelease orchestratorVersion értéket x.xx.x formátumban. Az aktuális verziók listájáért 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élda:

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

    Megjegyzés

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

  6. A fájlban masterProfileállítsa be 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.
    count Adja meg az üzembe helyezéshez használni kívánt mesterpéldányok számát. A magas rendelkezésreállású üzemelő példányok minimális értéke 3, a nem magas rendelkezésreállású üzemelő példányok esetében azonban 1.
    vmSize Adja meg az Azure Stack Hub által támogatott méretet, például Standard_D2_v2: .
    Disztribúció Adja meg aks-ubuntu-18.04 a vagy a értéket aks-ubuntu-20.04.
  7. Frissítéskor agentPoolProfiles :

    Mező Leírás
    count 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 összes ügynökszám 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 az Azure Stack Hub által támogatott méretet, például Standard_D2_v2: .
    Disztribúció Írja be a aks-ubuntu-18.04vagy a értéket aks-ubuntu-20.04Windows.
    Windows rendszeren futó ügynökökhöz használható Windows . Lásd például a kubernetes-windows.json fájlt
  8. Frissítéskor 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 történő SSH-hitelesítéshez használni kívánt nyilvános kulcsot. Használja ssh-rsa a kulcsot, 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, a Kubernetes-fürt üzembe helyezése egyéni virtuális hálózaton című témakörben talál utasításokat a szükséges kulcs és értékek megkeresésére és a megfelelő tömbökhöz való hozzáadására.

    Megjegyzé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 és adminPasswordaz értékeitadminUsername::

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

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

Tanúsítvány hozzáadása ASDK használata esetén

Ha fürtöt helyez üzembe az Azure Stack Development Kiten (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 API-modellben szükséges összes értéket, létrehozhatja a fürtöt. Ezen a ponton a következőket kell tenni:

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

  • Ellenőrizze a rendszer állapotát, javasolja a futtatás és az OEM-gyártó hardvermonitorozási eszközének használatát Test-AzureStack .
  • 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éshez társított kvóta részleteit, így ellenőrizheti, hogy van-e még elegendő hely a használni kívánt virtuális gépek számára.

Fürt üzembe helyezésének folytatása:

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

    Paraméter Példa Leírás
    azure-env AzureStackCloud Ha azt szeretné jelezni az AKS-motornak, hogy a célplatformja az Azure Stack Hub, használja a következőt AzureStackCloud: .
    identitásrendszer Adfs Választható. Adja meg az identitáskezelési megoldást, ha az Active Directory összevont szolgáltatásokat (AD FS) használja.
    location 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 az apimodel.json kimeneti fájlt és az egyéb 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 Ügyfélazonosító alkalmazásazonosítóként van azonosítva, amikor az Azure Stack Hub rendszergazdája létrehozta a szolgáltatásnevet.
    titkos ügyfélkód xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Adja meg a szolgáltatásnév titkos kódjának értékét. A szolgáltatás létrehozásakor beállítja 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

    Például:

    Megjegyzés

    Az AKSe 0.75.3-as és újabb verziói esetén 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 problémát, és újrafuttathatja a parancsot. Ha újrafuttatja az üzembe helyezést, és korábban ugyanazt a kimeneti könyvtárat használta, az AKS-motor hibaüzenetet ad vissza, amely szerint a könyvtár már létezik. A meglévő könyvtárat a következő jelölővel írhatja felül: --force-overwrite.

  3. Mentse az AKS-motor fürtkonfigurációját biztonságos, titkosított helyre.

    Keresse meg az 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. Tartsa 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 kubectl telepítette, ellenőrizze az újonnan létrehozott fürt fájlját ebben a kubeconfig könyvtár elérési útjában /kubeconfig/kubeconfig.json. Az új fürt eléréséhez hozzáadhatja a /kubeconfig.json.kube könyvtárat a könyvtárhoz.
      Ha még nincs telepítve kubectl, a Kubernetes parancssori eszköz telepítéséhez keresse fel az Eszközök telepítése című témakört. 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épekről csatlakozzon SSH-n keresztül az új vezérlősík-csomóponthoz egy ügyféllel, például PuTTY vagy 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ákat tapasztal 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. Van elég nagy kvótája 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 elvének titkos kulcsának elforgatása

A Kubernetes-fürt AKS-motorral való üzembe helyezése után a rendszer a szolgáltatásnevet (SPN) használja az Azure-Resource Manager az Azure Stack Hub-példányon való kezeléséhez. 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 egyszerű szolgáltatáskó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. Szerezzen be egy új titkos kulcsot a szolgáltatásnévhez a felhőszolgáltatótól. Az Azure Stack Hubra vonatkozó utasításokért lásd: Alkalmazás-identitás használata az Azure Stack Hub-erőforrások eléréséhez.
  2. A felhőszolgáltató által biztosított új hitelesítő adatok használatával frissítse az /etc/kubernetes/azure.json fájlt az egyes csomópontokon. A frissítés elvégzése után indítsa újra a és kube-controller-managera elemet iskubele.

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

Másik lehetőségként lecserélheti az apimodel.json hitelesítő adatait, é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