Sdílet prostřednictvím


Použijte automatizovaná nasazení Azure Kubernetes Fleet Manager k řízení umístění prostředků napříč více clustery (Preview)

Automatizovaná nasazení Azure Kubernetes Fleet Manageru se dají použít k sestavení a nasazení aplikace z úložiště kódu do jednoho nebo více clusterů AKS ve flotile. Automatizovaná nasazení zjednodušují proces nastavení pracovního postupu GitHub Action pro sestavení a nasazení kódu. Po připojení se pipeline spustí při každém novém commitu.

Automatizovaná nasazení jsou založená na draft.sh. Při vytváření nového pracovního postupu nasazení můžete použít existující soubor Dockerfile, vygenerovat soubor Dockerfile, použít existující manifesty Kubernetes nebo vygenerovat manifesty Kubernetes. Vygenerované manifesty se vytvářejí s ohledem na osvědčené postupy zabezpečení a odolnosti.

Důležité

Funkce Azure Kubernetes Fleet Manageru ve verzi Preview jsou dostupné na samoobslužné bázi s výslovným souhlasem. Ukázky jsou poskytovány "jak jsou" a "podle aktuální dostupnosti" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview Azure Kubernetes Fleet Manageru jsou částečně pokryty zákaznickou podporou s vynaložením maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití.

Požadavky

Přenesení zdrojového kódu aplikace

Vyhledejte Správce vozového parku Azure Kubernetes a spusťte konfiguraci automatizovaného nasazení.

  1. Na webu Azure Portal na horním panelu hledání vyhledejte Kubernetes Fleet Manager .
  2. Ve výsledcích hledání vyberte správce flotily Kubernetes.
  3. V seznamu prostředků vyberte správce flotily pro Azure Kubernetes.
  4. V nabídce služby Fleet Manager v části Prostředky flotily vyberte Automatizovaná nasazení.
  5. V horní nabídce vyberte + Vytvořit . Pokud je toto nasazení vaše první, můžete také vybrat Vytvořit v oblasti seznamu nasazení.

Snímek obrazovky znázorňující možnosti vytvoření pro automatizovaná nasazení Fleet Manageru

Připojení k úložišti zdrojového kódu

Vytvořte pracovní postup a autorizujete ho pro připojení k požadovanému úložišti a větvi zdrojového kódu. Na kartě Úložiště vyplňte následující podrobnosti.

  1. Do pole Název pracovního postupu zadejte smysluplný název pracovního postupu.
  2. Potom výběrem možnosti Autorizovat přístup k autorizaci uživatele na GitHubu získáte seznam úložišť.
  3. Pro zdroj úložiště vyberte jednu z těchto:
    1. Moje úložiště pro úložiště, která aktuálně autorizovaný uživatel GitHubu vlastní, nebo;
    2. Všechna úložiště pro úložiště, ke které má aktuálně autorizovaný uživatel GitHubu přístup. Musíte vybrat organizaci , která vlastní úložiště.
  4. Zvolte úložiště a větev.
  5. Vyberte tlačítko Další.

Snímek obrazovky znázorňující výběr úložiště správy zdrojového kódu při nastavování automatizovaných nasazení Fleet Manageru

Specifikujte image aplikace a konfiguraci nasazení

Pokud chcete připravit aplikaci pro spuštění v Kubernetes, musíte ji sestavit do image kontejneru, kterou uložíte v registru kontejneru. Soubor Dockerfile obsahuje pokyny k sestavení image kontejneru. Pokud úložiště zdrojového kódu ještě nemá soubor Dockerfile, můžou ho automatizovaná nasazení vygenerovat za vás.

Pokud už vaše úložiště kódu obsahuje soubor Dockerfile, můžete ho použít k sestavení image aplikace.

  1. Vyberte Existující soubor Dockerfile pro konfiguraci kontejneru.
  2. Vyberte z úložiště soubor Dockerfile.
  3. Zadejte kontext sestavení Dockerfile pro předání sady souborů a adresářů procesu sestavení (obvykle stejná složka jako Dockerfile). Tyto soubory se používají k sestavení image a jsou zahrnuté do konečné image, pokud nejsou ignorovány zahrnutím do .dockerignore souboru.
  4. Vyberte existující službu Azure Container Registry. Tento registr se používá k ukládání image sestavené aplikace. Každému clusteru AKS, který může aplikaci přijmout, musí mít udělená AcrPull oprávnění k registru.
  5. Nastavte název obrazu Azure Container Registry. Tento název image musíte použít v manifestech nasazení Kubernetes.

Snímek obrazovky znázorňující výběr existujícího souboru Dockerfile při nastavování automatizovaných nasazení Fleet Manageru

Volba konfigurace manifestu Kubernetes

Aplikace spuštěná v Kubernetes se skládá z mnoha primitivních komponent Kubernetes. Tyto komponenty popisují, jakou image kontejneru použít, kolik replik se má spustit, pokud je k zveřejnění aplikace nutná veřejná IP adresa atd. Další informace najdete v oficiální dokumentaci k Kubernetes. Pokud úložiště zdrojového kódu ještě nemá manifesty Kubernetes, Automatizovaná Nasazení je mohou vygenerovat za vás. Můžete také zvolit existující chart Helm.

Výstraha

Nevybírejte fleet-system ani žádné obory fleet-member názvů, protože se jedná o interní obory názvů používané správcem Fleet Manageru a nedá se použít k umístění aplikace.

Pokud už úložiště kódu obsahuje manifest Kubernetes, můžete jej zvolit k určení, které úlohy budou nasazeny a nakonfigurovány pomocí umístění prostředků clusteru.

  1. Pro možnosti nasazení vyberte Existující soubory manifestu Kubernetes pro nasazení.
  2. V úložišti vyberte soubor manifestu Kubernetes nebo složku .
  3. Vyberte existující obor názvů Fleet Manageru, ve které chcete úlohu rozfázovat.
  4. Vyberte tlačítko Další.

Snímek obrazovky znázorňující výběr existujícího manifestu Kubernetes při nastavování automatizovaných nasazení Fleet Manageru

Kontrola konfigurace

Zkontrolujte konfiguraci úložiště, image a konfigurace nasazení.

Snímek obrazovky znázorňující konfiguraci automatizovaného nasazení, aby bylo možné ho před odesláním zkontrolovat

Výběrem možnosti Další spustíte proces, který provede tyto akce:

  1. Vytvořte federované přihlašovací údaje, které umožní akci GitHubu:
    1. Nasdílení image sestaveného kontejneru do služby Azure Container Registry
    2. Umístěte manifesty Kubernetes do vybraného oboru názvů v hlavním clusteru Fleet Manageru.
  2. Vytvořte pull request v úložišti kódu se všemi vygenerovanými soubory a pracovním postupem.

Instalace trvá několik minut, takže neodchávejte ze stránky Nasazení.

Snímek obrazovky znázorňující dokončení konfigurace automatizovaného nasazení s tlačítkem pro schválení pull requestu

Kontrola a sloučení žádosti o přijetí změn

Po dokončení fáze nasazení vyberte tlačítko Schválit žádost o přijetí změn a otevřete vygenerovanou žádost o přijetí změn v úložišti kódu.

Poznámka:

Existuje známý problém s pojmenováním vygenerovaného pull requestu, který tvrdí, že se nasazuje do AKS. I přes nesprávný název tento pracovní postup nasadí vaši úlohu na klastru hubu Fleet Manageru v zvoleném oboru názvů.

Snímek obrazovky s žádostí o přijetí změn na GitHubu

  1. Zkontrolujte změny v části Soubory a proveďte požadované úpravy.
  2. Výběrem Sloučit žádost o přijetí sloučíte změny do svého úložiště kódu.

Sloučením této změny se spustí pracovní postup GitHub Actions, který vaši aplikaci sestaví do image kontejneru a uloží ji do vybrané služby Azure Container Registry.

Snímek obrazovky s probíhajícím pracovním postupem GitHub Actions

Kontrola vygenerovaných prostředků

Po dokončení pipeline můžete zkontrolovat vytvořený kontejnerový obraz na portálu Azure vyhledáním instance Azure Container Registry, kterou jste nakonfigurovali, a otevřením úložiště obrazů.

Snímek obrazovky kontejnerového obrazu sestaveného a hostovaného v úložišti Azure Container Registry.

Můžete také zobrazit konfiguraci automatizovaného nasazení Správce flotily. Výběrem názvu workflow se GitHub otevře na stránce GitHub Action.

Snímek obrazovky s nakonfigurovaným automatizovaným nasazením Správce flotily, včetně odkazu na akci GitHubu

Nakonec můžete potvrdit, že očekávané prostředky Kubernetes jsou připravené v clusteru centra Fleet Manager.

az fleet get-credentials \
    --resource-group ${GROUP} \
    --name ${FLEET}
kubectl describe deployments virtual-worker --namespace=contoso-store

Výstup vypadá podobně jako v následujícím příkladu. Očekává se 0 replik, protože úlohy nejsou plánovány na centrálním clusteru Fleet Manager. Ujistěte se, že vlastnost Image odkazuje na vytvořený obraz ve službě Azure Container Registry.

Name:                   virtual-worker
Namespace:              contoso-store
CreationTimestamp:      Thu, 24 Apr 2025 01:56:49 +0000
Labels:                 workflow=actions.github.com-k8s-deploy
                        workflowFriendlyName=contoso-store-deploy
Annotations:            <none>
Selector:               app=virtual-worker
Replicas:               1 desired | 0 updated | 0 total | 0 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=virtual-worker
  Containers:
   virtual-worker:
    Image:      contoso03.azurecr.io/virtual-worker:latest
    Port:       <none>
    Host Port:  <none>
    Limits:
      cpu:     2m
      memory:  20Mi
    Requests:
      cpu:     1m
      memory:  1Mi
    Environment:
      MAKELINE_SERVICE_URL:  http://makeline-service:3001
      ORDERS_PER_HOUR:       100
    Mounts:                  <none>
  Volumes:                   <none>
  Node-Selectors:            kubernetes.io/os=linux
  Tolerations:               <none>
Events:                      <none>

Definování umístění prostředků clusteru

Pokud chcete ve verzi Preview nakonfigurovat umístění fázované úlohy na členské clustery, můžete postupovat podle těchto kroků.

  1. V úložišti zdrojového kódu pro vaši aplikaci vytvořte složku v kořenovém adresáři úložiště s názvem fleet.

  2. Ve složce deploy-contoso-ns-two-regions.yaml vytvořte nový soubor a přidejte zobrazený obsah. Aby tato ukázka fungovala, musí být contoso-store obor názvů nasazen napříč dvěma clustery, které se nacházejí ve dvou různých Azure regionech.

    apiVersion: placement.kubernetes-fleet.io/v1
    kind: ClusterResourcePlacement
    metadata:
      name: distribute-virtual-worker-two-regions
    spec:
      resourceSelectors:
        - group: ""
          kind: Namespace
          version: v1          
          name: contoso-store
      policy:
        placementType: PickN
        numberOfClusters: 2
        topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: region
          whenUnsatisfiable: DoNotSchedule
    
  3. Upravte soubor pracovního postupu akce GitHubu a přidejte odkaz na soubor CRP.

    DEPLOYMENT_MANIFEST_PATH: |
      ./virtual-worker.yaml
      ./fleet/deploy-contoso-ns-two-regions.yaml
    
  4. Zkomitujte nový manifest CRP a zaktualizovaný soubor workflow GitHub Actions.

  5. Zkontrolujte, jestli je úloha umístěná podle zásad definovaných v definici CRP. Zkontrolujete buď pomocí webu Azure Portal, nebo kubectl na příkazovém řádku.

Snímek obrazovky umístění prostředků Správce flotily zobrazující úspěšně dokončené umístění

Další kroky