(ZASTARALÉ) Nasazení clusteru Kubernetes pro kontejnery Linuxu
Tip
Aktualizovanou verzi tohoto rychlého startu, která používá službu Azure Kubernetes Service, najdete v tématu Rychlý start: Nasazení clusteru Azure Kubernetes Service (AKS).
Upozorňující
Služba Azure Container Service (ACS) je zastaralá. Do služby ACS se nepřidávají žádné nové funkce. Všechna rozhraní API, prostředí portálu, příkazy rozhraní příkazového řádku a dokumentace jsou označená jako zastaralá.
V roce 2017 jsme představili Azure Kubernetes Service (AKS) pro zjednodušení správy, nasazení a operací Kubernetes. Pokud používáte orchestrátor Kubernetes, migrujte nejpozději do 31. ledna 2020 na AKS. Začněte tím, že si prohlédnete migraci do služby Azure Kubernetes Service.
Další informace najdete v oznámení o vyřazení služby Azure Container Service v Azure.com.
V tomto rychlém startu se cluster Kubernetes nasadí pomocí Azure CLI. Následně se na tomto clusteru nasadí a spustí vícekontejnerová aplikace skládající se z webu front-end a instance Redis. Po dokončení bude aplikace přístupná přes internet.
Ukázková aplikace použitá v tomto dokumentu je napsaná v Pythonu. Pomocí zde podrobně popsaných konceptů a postupů je možné do clusteru Kubernetes nasadit jakoukoli image kontejneru. Kód, soubor Dockerfile a předem vytvořené soubory manifestu Kubernetes související s tímto projektem jsou k dispozici na GitHubu.
V tomto rychlém startu se předpokládá základní znalost konceptů Kubernetes. Podrobné informace o Kubernetes najdete v dokumentaci ke Kubernetes.
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Azure Cloud Shell
Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.
Spuštění služby Azure Cloud Shell:
Možnost | Příklad nebo odkaz |
---|---|
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. | ![]() |
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. | ![]() |
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. | ![]() |
Použití Azure Cloud Shellu:
Spusťte Cloud Shell.
Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.
Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.
Stisknutím klávesy Enter spusťte kód nebo příkaz.
Pokud se rozhodnete nainstalovat a používat rozhraní příkazového řádku místně, musíte mít rozhraní příkazového řádku Azure ve verzi 2.0.4 nebo novější. Verzi zjistíte spuštěním příkazu az --version
. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace rozhraní příkazového řádku Azure CLI.
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logická skupina, ve které se nasazují a spravují prostředky Azure.
Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění westeurope.
az group create --name myResourceGroup --location westeurope
Výstup:
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
"location": "westeurope",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Vytvoření clusteru Kubernetes
Vytvořte cluster Kubernetes ve službě Azure Container Service pomocí příkazu az acs create. Následující příklad vytvoří cluster s názvem myK8sCluster s jedním hlavním linuxovým uzlem a třemi agentskými linuxovými uzly.
az acs create --orchestrator-type kubernetes --resource-group myResourceGroup --name myK8sCluster --generate-ssh-keys
V některých případech, například s omezenou zkušební verzí, má předplatné Azure omezený přístup k prostředkům Azure. Pokud se nasazení nezdaří kvůli omezenému počtu dostupných jader, snižte výchozí počet agentů přidáním možnosti --agent-count 1
do příkazu az acs create.
Po několika minutách se příkaz dokončí a vrátí informace o clusteru ve formátu JSON.
Připojení ke clusteru
Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl.
Pokud používáte Azure Cloud Shell, kubectl je už nainstalován. Pokud ho chcete nainstalovat místně, můžete použít příkaz az acs kubernetes install-cli.
Abyste nakonfigurovali kubectl pro připojení ke svému clusteru Kubernetes, spusťte příkaz az acs kubernetes get-credentials. Tímto krokem se stáhnou přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes pro jejich použití.
az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster
Pokud chcete ověřit připojení ke clusteru, použijte příkaz kubectl get, který vrátí seznam uzlů clusteru.
kubectl get nodes
Výstup:
NAME STATUS AGE VERSION
k8s-agent-14ad53a1-0 Ready 10m v1.6.6
k8s-agent-14ad53a1-1 Ready 10m v1.6.6
k8s-agent-14ad53a1-2 Ready 10m v1.6.6
k8s-master-14ad53a1-0 Ready,SchedulingDisabled 10m v1.6.6
Spuštění aplikace
Soubor manifestu Kubernetes definuje požadovaný stav clusteru, včetně toho, jaké image kontejnerů mají být spuštěné. V tomto příkladu manifest slouží k vytvoření všech objektů potřebných ke spuštění aplikace Azure Vote.
Vytvořte soubor azure-vote.yml
a zkopírujte do něj následující kód YAML. Pokud pracujete ve službě Azure Cloud Shell, můžete tento soubor vytvořit pomocí editoru vi nebo Nano stejně, jako kdybyste pracovali na virtuálním nebo fyzickém systému.
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-back
spec:
containers:
- name: azure-vote-back
image: redis
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-front
spec:
containers:
- name: azure-vote-front
image: microsoft/azure-vote-front:v1
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Pomocí příkazu kubectl create spusťte aplikaci.
kubectl create -f azure-vote.yml
Výstup:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Testování aplikace
Při spuštění aplikace se vytvoří služba Kubernetes, která zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.
Pomocí příkazu kubectl get service s argumentem --watch
můžete sledovat průběh.
kubectl get service azure-vote-front --watch
Zpočátku se EXTERNAL-IP (Externí IP adresa) pro službu azure-vote-front bude zobrazovat ve stavu probíhá. Jakmile se adresa EXTERNAL-IP změní ze stavu probíhá na IP adresu, pomocí klávesové zkratky CTRL-C
zastavte sledovací proces kubectl.
azure-vote-front 10.0.34.242 <pending> 80:30676/TCP 7s
azure-vote-front 10.0.34.242 52.179.23.131 80:30676/TCP 2m
Teď můžete přejít na externí IP adresu a zobrazit aplikaci Azure Vote.
Odstranění clusteru
Pokud už cluster nepotřebujete, můžete k odebrání skupiny prostředků, služby kontejneru a všech souvisejících prostředků použít příkaz az group delete.
az group delete --name myResourceGroup --yes --no-wait
Získání kódu
V tomto rychlém startu se k vytvoření nasazení Kubernetes použily předem vytvořené image kontejnerů. Související kód aplikace, soubor Dockerfile a soubor manifestu Kubernetes jsou k dispozici na GitHubu.
https://github.com/Azure-Samples/azure-voting-app-redis
Další kroky
V tomto rychlém startu jste nasadili cluster Kubernetes a do něj jste nasadili vícekontejnerovou aplikaci.
Další informace o službě Azure Container Service a podrobné vysvětlení kompletního příkladu od kódu až po nasazení najdete v kurzu clusteru Kubernetes.