Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kom igång med Azure Linux Container Host med hjälp av Azure PowerShell för att distribuera en Azure Linux Container Host för ett AKS-kluster. När du har installerat förhandskraven skapar du en resursgrupp, skapar ett AKS-kluster, ansluter till klustret och kör ett exempelprogram med flera containrar i klustret.
Viktigt!
Från och med den 30 november 2025 kommer AKS inte längre att stödja eller tillhandahålla säkerhetsuppdateringar för Azure Linux 2.0. Från och med den 31 mars 2026 tas nodbilder bort och du kan inte skala dina nodpooler. Migrera till en Azure Linux-version som stöds genom att uppgradera dina nodpooler till en Kubernetes-version som stöds eller migrera till osSku AzureLinux3. Mer information finns i [Pensionering] Azure Linux 2.0-nodpooler på AKS.
Förutsättningar
- Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
- Använd PowerShell-miljön i Azure Cloud Shell. Mer information finns i Azure Cloud Shell Snabbstart.
- Om du kör PowerShell lokalt installerar du modulen
Az PowerShelloch ansluter till ditt Azure-konto med hjälp av cmdletenConnect-AzAccount. Mer information om hur du installerar Az PowerShell-modulen finns i Installera Azure PowerShell. - Den identitet som du använder för att skapa klustret har lämpliga minimibehörigheter. Mer information om åtkomst och identitet för AKS finns i Åtkomst- och identitetsalternativ för Azure Kubernetes Service (AKS).
Skapa en resursgrupp
En Azure-resursgrupp är en logisk grupp där Azure-resurser distribueras och hanteras. När du skapar en resursgrupp måste du ange en plats. Den här platsen är lagringsplatsen för dina resursgruppsmetadata och där dina resurser körs i Azure om du inte anger en annan region när du skapar resurser.
I följande exempel skapas resursgruppen testAzureLinuxResourceGroup i regionen eastus.
Skapa en resursgrupp med hjälp av cmdleten
New-AzResourceGroup.New-AzResourceGroup -Name testAzureLinuxResourceGroup -Location eastusFöljande exempelutdata liknar skapandet av resursgruppen:
ResourceGroupName : testAzureLinuxResourceGroup Location : eastus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testAzureLinuxResourceGroupKommentar
I exemplet ovan används eastus, men Azure Linux Container Host-kluster är tillgängliga i alla regioner.
Skapa ett Azure Linux Container Host-kluster
I följande exempel skapas ett kluster med namnet testAzureLinuxCluster med en nod.
Skapa ett AKS-kluster med hjälp av cmdleten
New-AzAksClustermed flaggan inställd på-NodeOsSKUAzureLinux.New-AzAksCluster -ResourceGroupName testAzureLinuxResourceGroup -Name testAzureLinuxCluster -NodeOsSKU AzureLinuxEfter några minuter slutförs kommandot och returnerar JSON-formaterad information om klustret.
Anslut till klustret
Om du vill hantera ett Kubernetes-kluster använder du Kubernetes-kommandoradsklienten kubectl.
kubectl är redan installerat om du använder Azure Cloud Shell.
Installera
kubectllokalt med hjälp av cmdletenInstall-AzAksCliTool.Install-AzAksCliToolKonfigurera
kubectlför att ansluta till ditt Kubernetes-kluster med hjälp av cmdletenImport-AzAksCredential. Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.Import-AzAksCredential -ResourceGroupName testAzureLinuxResourceGroup -Name testAzureLinuxClusterKontrollera anslutningen till klustret med hjälp av
kubectl getkommandot . Det här kommandot returnerar en lista över klusterpoddarna.kubectl get pods --all-namespaces
Distribuera programmet
För att distribuera programmet använder du en manifestfil för att skapa alla objekt som krävs för att köra AKS Store-programmet. En Kubernetes-manifestfil definierar ett klusters önskade tillstånd, till exempel vilka containeravbildningar som ska köras. Manifestet innehåller följande Kubernetes-distributioner och -tjänster:
- Butiksfront: Webbprogram där kunder kan visa produkter och göra beställningar.
- Produkttjänst: Visar produktinformation.
- Ordertjänst: Gör beställningar.
- Rabbit MQ: Meddelandekö för en orderkö.
Kommentar
Vi rekommenderar inte att du kör tillståndskänsliga containrar, till exempel Rabbit MQ, utan beständig lagring för produktion. Dessa används här för enkelhetens skull, men vi rekommenderar att du använder hanterade tjänster, till exempel Azure Cosmos DB eller Azure Service Bus.
Skapa en fil med namnet
aks-store-quickstart.yamloch kopiera i följande 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: LoadBalancerOm du skapar och sparar YAML-filen lokalt kan du ladda upp manifestfilen till standardkatalogen i CloudShell genom att välja knappen Ladda upp/ladda ned filer och välja filen från det lokala filsystemet.
Distribuera programmet med kommandot kubectl apply och ange namnet på YAML-manifestet.
kubectl apply -f aks-store-quickstart.yamlFöljande exempelutdata visar distributioner och tjänster:
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
Testa programmet
När programmet körs så exponerar en Kubernetes-tjänst programmets klientdel mot Internet. Den här processen kan ta ett par minuter att slutföra.
Kontrollera statusen för de distribuerade poddarna med kommandot kubectl get pods . Kontrollera att alla poddar är
Runninginnan du fortsätter.kubectl get podsSök efter en offentlig IP-adress för programmet store-front. Övervaka förloppet med hjälp av kommandot kubectl get service med
--watchargumentet .kubectl get service store-front --watchEXTERNA IP-utdata för
store-fronttjänsten visas inledningsvis som väntande:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4mNär DEN EXTERNA IP-adressen ändras från väntande till en faktisk offentlig IP-adress använder du
CTRL-Cför att stoppakubectlbevakningsprocessen.Följande exempelutdata visar en giltig offentlig IP-adress som har tilldelats tjänsten:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5mÖppna en webbläsare till tjänstens externa IP-adress för att se hur Azure Store-appen fungerar.
Ta bort klustret
Om du inte planerar att fortsätta med följande självstudier tar du bort de skapade resurserna för att undvika azure-avgifter.
Ta bort resursgruppen och alla relaterade resurser med hjälp av cmdleten
RemoveAzResourceGroup.Remove-AzResourceGroup -Name testAzureLinuxResourceGroup
Nästa steg
I den här snabbstarten distribuerade du ett Azure Linux Container Host AKS-kluster. Om du vill veta mer om Azure Linux Container Host och gå igenom ett komplett exempel på klusterdistribution och hantering kan du fortsätta till självstudien Azure Linux Container Host.