Få åtkomst till Kubernetes-resurser med hjälp av Azure-portalen

I den här artikeln lär du dig att komma åt och hantera dina Azure Kubernetes Service-resurser (AKS) med hjälp av Azure-portalen.

Innan du börjar

Om du vill visa Kubernetes-resurser i Azure-portalen behöver du ett AKS-kluster. Alla kluster stöds, men om du använder Microsoft Entra-integrering måste klustret använda AKS-hanterad Microsoft Entra-integrering. Om klustret använder äldre Microsoft Entra-ID kan du uppgradera klustret i portalen eller med Azure CLI. Du kan också använda Azure-portalen för att skapa ett nytt AKS-kluster.

Visa Kubernetes-resurser

  1. Gå till aks-klusterresursen i Azure-portalen.

  2. På tjänstmenyn väljer du Kubernetes-resurser. Listan över Kubernetes-resurser visar följande kategorier:

    • Namnområden visar information om namnrymderna i klustret.
    • Arbetsbelastningar visar information om distributioner, poddar, replikuppsättningar, tillståndskänsliga uppsättningar, daemonuppsättningar, jobb och cron-jobb som distribuerats till klustret.
    • Tjänster och ingresser visar alla klusters tjänst- och ingressresurser.
    • Lagring visar dina Azure-lagringsklasser och beständiga volyminformation.
    • Konfigurationen visar klustrets konfigurationskartor och hemligheter.
    • Anpassade resurser visar alla anpassade resurser som distribueras till klustret.
    • Händelser visar alla händelser som är relaterade till klustret.
    • Med körkommandot kan du fjärranropa kommandon, till exempel kubectl och helm, i klustret via Azure-API:et utan att ansluta direkt till klustret.

    Skärmbild som visar Kubernetes-resurserna som visas i Azure-portalen.

Distribuera ett exempelprogram

I det här avsnittet distribuerar vi Azure Store-programmet från AKS-snabbstarten.

Ansluta till klustret

Om du vill distribuera Azure Store-programmet måste du ansluta till ditt AKS-kluster. Följ de här stegen för att ansluta till klustret med hjälp av Azure-portalen:

  1. På sidan Översikt i ditt AKS-kluster väljer du Anslut.
  2. Följ anvisningarna för att ansluta till klustret med hjälp av kommandot Cloud Shell, Azure CLI eller Run.

Distribuera Azure Store-programmet

  1. I listan Kubernetes-resurser väljer du Tjänster och ingresser.

  2. Välj Skapa>Tillämpa en YAML.

  3. Kopiera och klistra in följande YAML i redigeraren:

    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
    
  4. Markera Lägga till.

    När programmet har distribuerats ser du följande tjänster i listan Tjänster :

    • order-service
    • product-service
    • rabbitmq
    • store-front

    Skärmbild av De Azure Store-programtjänster som visas i Azure-portalen.

Övervaka distributionsinsikter

Aktivera övervakningstillägget i AKS-klustret

AKS-kluster med Container Insights aktiverat kan komma åt olika distributionsinsikter i Azure-portalen. Om du inte har aktiverat övervakning i klustret kan du aktivera det med hjälp av följande steg:

  1. På tjänstmenyn för aks-klusterresursen väljer du Övervaka>insikter>Konfigurera övervakning.

  2. På sidan Konfigurera Container Insights väljer du Konfigurera.

    Det kan ta några minuter för övervakningslösningen att distribuera och börja samla in data.

Visa distributionsinsikter

  1. På tjänstmenyn för aks-klusterresursen väljer du Arbetsbelastningar.
  2. Välj en distribution i listan för att visa distributionsinsikter, till exempel cpu- och minnesanvändning.

Kommentar

Du kan också välja Övervakningsinsikter> för att visa mer detaljerad information om specifika noder och containrar.

Rensa resurser

Om du inte längre behöver Azure Store-programmet kan du ta bort tjänsterna för att undvika kostnader för Azure.

  1. I listan Kubernetes-resurser väljer du Tjänster och ingresser.
  2. Välj de tjänster som du vill ta bort och välj sedan Ta bort.

Felsökning

Obehörig åtkomst

För att få åtkomst till Kubernetes-resurserna behöver du åtkomst till AKS-klustret, Kubernetes-API:et och Kubernetes-objekten. Kontrollera att du antingen är klusteradministratör eller användare med rätt behörighet för att få åtkomst till AKS-klustret. Mer information finns i Åtkomst- och identitetsalternativ för AKS.

Aktivera resursvy

Du kan behöva aktivera Kubernetes-resursvyn för befintliga kluster.

Dricks

Du kan lägga till AKS-funktionen för API-serverauktoriserade IP-intervall för att begränsa API-serveråtkomsten till endast brandväggens offentliga slutpunkt. Ett annat alternativ är att uppdatera --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange till att inkludera åtkomst för en lokal klientdator eller IP-adressintervallet som du bläddrar i Azure-portalen från. För att tillåta den här åtkomsten behöver du datorns offentliga IPv4-adress. Du hittar den här adressen med hjälp av följande Azure CLI- eller Azure PowerShell-kommandon, eller så kan du söka efter "vad är min IP-adress" i webbläsaren.

  1. Hämta DIN IP-adress med hjälp av följande kommando:

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. Lägg till din IP-adress i listan över godkända AKS-adresser med hjälp av az aks update kommandot med parametern --api-server-authorized-ip-ranges .

    az aks update --resource-group <resource-group-name> --name <aks-cluster-name> --api-server-authorized-ip-ranges $CURRENT_IP/32
    

Nästa steg

Den här artikeln visar hur du får åtkomst till Kubernetes-resurser från Azure-portalen. Mer information om AKS, grundläggande begrepp för Azure Kubernetes Service (AKS).