Rychlý start: Nasazení clusteru Azure Kubernetes Service (AKS) pomocí webu Azure Portal
Azure Kubernetes Service (AKS) je spravovaná služba Kubernetes, která umožňuje rychle nasazovat a spravovat clustery. V tomto rychlém startu:
- Nasaďte cluster AKS pomocí webu Azure Portal.
- Spusťte ukázkovou vícekontenerovou aplikaci se skupinou mikroslužeb a webových front-endů simulujících scénář maloobchodního prodeje.
Poznámka:
Pokud chcete začít rychle zřizovat cluster AKS, najdete v tomto článku postup nasazení clusteru s výchozím nastavením pouze pro účely vyhodnocení. Před nasazením clusteru připraveného pro produkční prostředí doporučujeme seznámit se s naší referenční architekturou podle směrného plánu a zvážit, jak je v souladu s vašimi obchodními požadavky.
Než začnete
Tento rychlý start předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro Službu Azure Kubernetes Service (AKS).
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
- Pokud azure Cloud Shell neznáte, projděte si přehled služby Azure Cloud Shell.
- Ujistěte se, že identita, kterou používáte k vytvoření clusteru, má odpovídající minimální oprávnění. Další podrobnosti o přístupu a identitě pro AKS najdete v tématu Možnosti přístupu a identit pro Službu Azure Kubernetes Service (AKS).
Poznámka:
Fond uzlů Azure s Linuxem je teď obecně dostupný (GA). Další informace o výhodách a postupu nasazení najdete v tématu Úvod do služby Azure Linux Container Host for AKS.
Vytvoření clusteru AKS
Přihlaste se k portálu Azure.
Na domovské stránce webu Azure Portal vyberte Vytvořit prostředek.
V části Kategorie vyberte Kontejnery>Azure Kubernetes Service (AKS).
Na kartě Základy nakonfigurujte následující nastavení:
- V části Project details (Podrobnosti projektu):
- Předplatné: Vyberte předplatné Azure, které chcete použít pro tento cluster AKS.
- Skupina prostředků: Vyberte Vytvořit nový, zadejte název skupiny prostředků, například myResourceGroup, a pak vyberte OK. I když pro účely testování nebo vyhodnocení můžete vybrat existující skupinu prostředků, doporučujeme vytvořit skupinu prostředků pro dočasné hostování těchto prostředků a vyhnout se ovlivnění produkčních nebo vývojových úloh.
- V části Podrobnosti o clusteru:
Přednastavená konfigurace clusteru: Vyberte vývoj /testování. Další podrobnosti o přednastavených konfiguracích najdete v tématu Přednastavení konfigurace clusteru na webu Azure Portal.
Název clusteru Kubernetes: Zadejte název clusteru, například myAKSCluster.
Oblast: Vyberte oblast, například USA – východ 2.
Zóny dostupnosti: Vyberte Žádné.
Cenová úroveň AKS: Vyberte Free.
Ponechte výchozí hodnoty pro zbývající nastavení a vyberte Další.
- V části Project details (Podrobnosti projektu):
Na kartě Fondy uzlů nakonfigurujte následující nastavení:
Vyberte Přidat fond uzlů a zadejte název fondu uzlů, například nplinux.
Režim: Vyberte uživatele.
Skladová položka operačního systému: Vyberte Ubuntu Linux.
Zóny dostupnosti: Vyberte Žádné.
Políčko Povolit spotové instance Azure ponechte nezaškrtnuté.
Velikost uzlu: Vyberte velikost. Na stránce Vybrat velikost virtuálního počítače vyberte D2s_v3 a pak vyberte Vybrat.
Ponechte výchozí hodnoty pro zbývající nastavení a vyberte Přidat.
Výběrem možnosti Zkontrolovat a vytvořit spusťte ověřování v konfiguraci clusteru. Po dokončení ověření vyberte Vytvořit.
Vytvoření clusteru AKS bude trvat několik minut. Po dokončení nasazení přejděte k prostředku tak , že vyberete Přejít k prostředku nebo přejdete do skupiny prostředků clusteru AKS a vyberete prostředek AKS.
Připojení ke clusteru
Ke správě clusterů Kubernetes používáte klienta příkazového řádku Kubernetes kubectl. kubectl
je už nainstalovaný, pokud používáte Azure Cloud Shell. Pokud se službou Cloud Shell neznáte, projděte si přehled služby Azure Cloud Shell.
Pokud používáte Cloud Shell, otevřete ho tlačítkem >_
v horní části webu Azure Portal. Pokud používáte PowerShell místně, připojte se k Azure pomocí Connect-AzAccount
příkazu. Pokud používáte Azure CLI místně, připojte se k Azure pomocí az login
příkazu.
Pomocí příkazu nakonfigurujte
kubectl
připojení ke clusteruaz aks get-credentials
Kubernetes. Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je používalo.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Ověřte připojení ke clusteru pomocí
kubectl get
vrácení seznamu uzlů clusteru.kubectl get nodes
Následující příklad výstupu ukazuje jeden uzel vytvořený v předchozích krocích. Ujistěte se, že je stav uzlu Připravený.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31718369-0 Ready agent 6m44s v1.15.10
Nasazení aplikace
Pomocí souboru manifestu vytvoříte všechny objekty potřebné ke spuštění aplikace AKS Store. Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například které image kontejneru se mají spustit. Manifest zahrnuje následující nasazení a služby Kubernetes:
- Store front: Webová aplikace pro zákazníky k zobrazení produktů a objednávání.
- Produktová služba: Zobrazuje informace o produktu.
- Objednávka: Objednávky.
- Rabbit MQ: Fronta zpráv pro frontu objednávek.
Poznámka:
Nedoporučujeme spouštět stavové kontejnery, jako je Rabbit MQ, bez trvalého úložiště pro produkční prostředí. Tady se používají pro zjednodušení, ale doporučujeme používat spravované služby, jako je Azure CosmosDB nebo Azure Service Bus.
V Cloud Shellu otevřete editor a vytvořte soubor s názvem
aks-store-quickstart.yaml
.Do editoru vložte následující manifest:
apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq spec: replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 resources: requests: cpu: 1m memory: 1Mi limits: cpu: 1m memory: 7Mi --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancer
Rozpis souborů manifestu YAML najdete v tématu Nasazení a manifesty YAML.
Pokud soubor YAML vytvoříte a uložíte místně, můžete soubor manifestu nahrát do výchozího adresáře v CloudShellu tak , že vyberete tlačítko Nahrát/Stáhnout soubory a vyberete soubor z místního systému souborů.
Nasaďte aplikaci pomocí
kubectl apply
příkazu a zadejte název manifestu YAML:kubectl apply -f aks-store-quickstart.yaml
Následující příklad výstupu ukazuje nasazení a služby:
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Testování aplikace
Když se aplikace spustí, služba Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.
Pomocí příkazu zkontrolujte stav nasazených podů
kubectl get pods
. Než budete pokračovat, ujistěte se, že jsouRunning
všechny pody.kubectl get pods
Zkontrolujte veřejnou IP adresu aplikace
store-front
. Sledujte průběh pomocíkubectl get service
příkazu s argumentem--watch
.kubectl get service store-front --watch
Výstup EXTERNAL-IP pro
store-front
službu se zpočátku zobrazuje jako čekající:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
Jakmile se externí IP adresa změní z čekání na skutečnou
kubectl
veřejnou IP adresu, použijteCTRL-C
k zastavení procesu sledování.Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou službě:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Otevřete webový prohlížeč na externí IP adresu vaší služby, abyste viděli aplikaci Azure Store v akci.
Odstranění clusteru
Pokud nemáte v plánu projít řadu kurzů AKS, vyčistěte nepotřebné prostředky, abyste se vyhnuli poplatkům za Azure.
Na webu Azure Portal přejděte do skupiny prostředků clusteru AKS.
Vyberte Odstranit skupinu prostředků.
Zadejte název skupiny prostředků, která se má odstranit, a pak vyberte Odstranit>.
Poznámka:
Cluster AKS byl vytvořen se spravovanou identitou přiřazenou systémem. Tuto identitu spravuje platforma a nevyžaduje odebrání.
Další kroky
V tomto rychlém startu jste nasadili cluster Kubernetes a pak jste do něj nasadili jednoduchou vícekontenerovou aplikaci. Tato ukázková aplikace slouží jenom pro ukázkové účely a nepředstavuje všechny osvědčené postupy pro aplikace Kubernetes. Pokyny k vytváření úplných řešení pomocí AKS pro produkční prostředí najdete v pokynech k řešení AKS.
Pokud chcete získat další informace o AKS a projít si kompletní příklad nasazení kódu k nasazení, pokračujte řadou kurzů clusteru Kubernetes.
Azure Kubernetes Service