(INAKTUELL) Snabbstart – Distribuera Kubernetes-kluster för Linux-containrar
Dricks
Den uppdaterade versionen av den här snabbstarten som använder Azure Kubernetes Service finns i Snabbstart: Distribuera ett AKS-kluster (Azure Kubernetes Service).
Varning
Azure Container Service (ACS) är inaktuell. Inga nya funktioner läggs till i ACS. Alla API:er, portalen, CLI-kommandon och dokumentationen är markerade som inaktuella.
2017 införde vi Azure Kubernetes Service (AKS) för att förenkla hanteringen, distributionen och åtgärderna för Kubernetes. Om du använder Kubernetes-initieraren bör du migrera till AKS senast den 31 januari 2020. Kom igång genom att läsa om att migrera till Azure Kubernetes Service.
Mer information finns i utfasningsmeddelandet för Azure Container Service på Azure.com.
I den här snabbstarten distribueras ett Kubernetes-kluster med hjälp av Azure CLI. Därefter distribuerar vi och kör ett flercontainerprogram som består av en webbklientdel och en Redis-instans i klustret. När vi har gjort det kan programmet nås via Internet.
Exempelprogrammet som används i det här dokumentet är skrivet i Python. Begreppen och anvisningarna här kan användas för att distribuera valfri containeravbildning till ett Kubernetes-kluster. Koden, Dockerfile, och befintliga Kubernetes-manifestfiler som hör till projektet, finns på GitHub.
I den här snabbstarten förutsätter vi att du har grundläggande kunskaper om vanliga Kubernetes-begrepp. Detaljerad information om Kubernetes finns i Kubernetes-dokumentationen.
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
Alternativ | Exempel/länk |
---|---|
Välj Prova i det övre högra hörnet i en kod eller ett kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. | |
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. | |
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
Så här använder du Azure Cloud Shell:
Starta Cloud Shell.
Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.
Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.
Välj Retur för att köra koden eller kommandot.
Om du väljer att installera och använda CLI lokalt måste du köra Azure CLI version 2.0.4 eller senare. Kör az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa informationen i Installera Azure CLI.
Skapa en resursgrupp
Skapa en resursgrupp med kommandot az group create. En Azure-resursgrupp är en logisk grupp där Azure-resurser distribueras och hanteras.
I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen westeurope.
az group create --name myResourceGroup --location westeurope
Utdata:
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
"location": "westeurope",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Skapa Kubernetes-kluster
Skapa ett Kubernetes-kluster i Azure Container Service med kommandot az acs create. I följande exempel skapas ett kluster med namnet myK8sCluster med en Linux-huvudnod och tre Linux-agentnoder.
az acs create --orchestrator-type kubernetes --resource-group myResourceGroup --name myK8sCluster --generate-ssh-keys
I vissa fall, som vid en begränsad utvärderingsversion, har en Azure-prenumeration begränsad åtkomst till Azure-resurser. Om distributionen misslyckas på grund av begränsade tillgängliga kärnor minskar du antalet standardagenter genom att lägga till --agent-count 1
till kommandot az acs create.
Efter en stund slutförs kommandot och returnerar json-formaterad information om klustret.
Anslut till klustret
Hantera Kubernetes-kluster med kubectl, Kubernetes kommandoradsklient.
Om du använder Azure Cloud Shell är kubectl redan installerat. Om du vill installera det lokalt, kan du använda kommandot az acs kubernetes install-cli.
Du konfigurerar kubectl att ansluta till ditt Kubernetes-kluster genom att köra kommandot az acs kubernetes get-credentials. I det här steget laddar vi ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.
az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster
Du kan kontrollera anslutningen till klustret genom att köra kommandot kubectl get för att returnera en lista över klusternoderna.
kubectl get nodes
Utdata:
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
Kör appen
En Kubernetes-manifestfil definierar ett önskat tillstånd för klustret, till exempel vilka containeravbildningar som ska köras. I det här exemplet används ett manifest för att skapa alla objekt som behövs för att köra Azure Vote-programmet.
Skapa en fil med namnet azure-vote.yml
och kopiera följande YAML till den. Om du arbetar i Azure Cloud Shell, kan du skapa filen med vi eller Nano som i ett virtuellt eller fysiskt system.
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
Använd kommandot kubectl create för att köra programmet.
kubectl create -f azure-vote.yml
Utdata:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Testa programmet
När programmet körs skapas en Kubernetes-tjänst som exponerar programmets klientdel mot Internet. Den här processen kan ta ett par minuter att slutföra.
Du kan övervaka förloppet genom att använda kommandot kubectl get service med argumentet --watch
.
kubectl get service azure-vote-front --watch
Till en början visas EXTERNAL-IP för azure-vote-front-tjänsten som pending (väntande). När EXTERNAL-IP-adressen har ändrats från pending till en IP-adress använder du CTRL-C
för att stoppa kubectl-övervakningsprocessen.
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
Nu kan du bläddra till den externa IP-adressen för att se Azure Vote-appen.
Ta bort klustret
När klustret inte längre behövs du använda kommandot az group delete för att ta bort resursgruppen, containertjänsten och alla relaterade resurser.
az group delete --name myResourceGroup --yes --no-wait
Hämta koden
I den här snabbstarten har fördefinierade containeravbildningar använts för att skapa en Kubernetes-distribution. Den tillhörande programkoden, Dockerfile och Kubernetes-manifestfilen finns på GitHub.
https://github.com/Azure-Samples/azure-voting-app-redis
Nästa steg
I den här snabbstartsguiden distribuerade du ett Kubernetes-kluster och distribuerade sedan ett flercontainerprogram till det.
Om du vill lära dig mer om Azure Container Service, och gå igenom ett exempel med fullständig distributionskod, fortsätter du till självstudiekursen om Kubernetes-kluster.