Dela via


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

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 Portal.

Innan du börjar

Om du vill visa Kubernetes-resurser i Azure Portal 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 Portal för att skapa ett nytt AKS-kluster.

Visa Kubernetes-resurser

  1. I Azure Portal navigerar du till din AKS-klusterresurs.

  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åndsbaserade uppsättningar, daemonuppsättningar, jobb och cronjobb som distribuerats till ditt kluster.
    • 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 Portal.

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 dessa steg för att ansluta till klustret med hjälp av Azure Portal:

  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: StatefulSet
    metadata:
      name: rabbitmq
    spec:
      serviceName: rabbitmq
      replicas: 1
      selector:
        matchLabels:
          app: rabbitmq
      template:
        metadata:
          labels:
            app: rabbitmq
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
            - name: rabbitmq
              image: mcr.microsoft.com/azurelinux/base/rabbitmq-server:3.13
              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: 100m
                  memory: 256Mi
          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: 100m
                  memory: 256Mi
    ---
    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: 2m
                  memory: 20Mi
    ---
    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
    • butiksfasad

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

Övervaka distributionsinsikter

Aktivera övervakningstillägget i AKS-klustret

AKS-kluster med Container Insights aktiverat kan komma åt olika distributionsinsikter i Azure Portal. 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>>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 Portal 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 kommer åt Kubernetes-resurser från Azure Portal. Mer information om AKS, grundläggande begrepp för Azure Kubernetes Service (AKS).