Delen via


Toegang tot Kubernetes-resources met behulp van Azure Portal

In dit artikel leert u hoe u uw AKS-resources (Azure Kubernetes Service) kunt openen en beheren met behulp van Azure Portal.

Voordat u begint

Als u Kubernetes-resources wilt weergeven in Azure Portal, hebt u een AKS-cluster nodig. Elk cluster wordt ondersteund, maar als u Microsoft Entra-integratie gebruikt, moet uw cluster gebruikmaken van door AKS beheerde Microsoft Entra-integratie. Als uw cluster gebruikmaakt van de verouderde Microsoft Entra-id, kunt u uw cluster upgraden in de portal of met de Azure CLI. U kunt azure Portal ook gebruiken om een nieuw AKS-cluster te maken.

Kubernetes-resources weergeven

  1. Navigeer in Azure Portal naar uw AKS-clusterresource.

  2. Selecteer Kubernetes-resources in het servicemenu. In de lijst met Kubernetes-resources worden de volgende categorieën weergegeven:

    • Naamruimten bevatten informatie over de naamruimten van uw cluster.
    • Workloads tonen informatie over implementaties, pods, replicasets, stateful sets, daemonsets, taken en cron-taken die zijn geïmplementeerd in uw cluster.
    • Services en ingresses tonen alle service- en toegangsbeheerbronnen van uw cluster.
    • Opslag toont uw Azure-opslagklassen en permanente volumegegevens.
    • Configuratie toont de configuratietoewijzingen en geheimen van uw cluster.
    • Aangepaste resources tonen aangepaste resources die zijn geïmplementeerd in uw cluster.
    • Gebeurtenissen geven alle gebeurtenissen weer die betrekking hebben op uw cluster.
    • Met de opdracht Uitvoeren kunt u opdrachten op afstand aanroepen, zoals kubectl en helm, op uw cluster via de Azure-API zonder rechtstreeks verbinding te maken met het cluster.

    Schermopname van de Kubernetes-resources die worden weergegeven in Azure Portal.

Een voorbeeldtoepassing implementeren

In deze sectie implementeren we de Azure Store-toepassing vanuit de AKS-quickstart.

Verbinding maken met uw cluster

Als u de Azure Store-toepassing wilt implementeren, moet u verbinding maken met uw AKS-cluster. Volg deze stappen om verbinding te maken met uw cluster met behulp van Azure Portal:

  1. Selecteer Verbinding maken op de pagina Overzicht van uw AKS-cluster.
  2. Volg de instructies om verbinding te maken met uw cluster met behulp van de opdracht Cloud Shell, Azure CLI of Uitvoeren.

De Azure Store-toepassing implementeren

  1. Selecteer Services en ingresses in de lijst met Kubernetes-resources.

  2. Selecteer Een YAML maken>.

  3. Kopieer en plak de volgende YAML in de editor:

    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. Selecteer Toevoegen.

    Zodra de toepassing is geïmplementeerd, ziet u de volgende services in de lijst Services :

    • orderservice
    • productservice
    • rabbitmq
    • winkel-front

    Schermopname van de Azure Store-toepassingsservices die worden weergegeven in Azure Portal.

Implementatie-inzichten bewaken

De bewakingsinvoegtoepassing inschakelen op uw AKS-cluster

AKS-clusters waarvoor Container Insights is ingeschakeld, hebben toegang tot verschillende implementatie-inzichten in Azure Portal. Als u bewaking niet hebt ingeschakeld voor uw cluster, kunt u deze inschakelen met behulp van de volgende stappen:

  1. Selecteer Bewakingsinzichten>>configureren in het servicemenu van uw AKS-clusterresource.

  2. Selecteer Configureren op de pagina Container Insights configureren.

    Het kan enkele minuten duren voordat de bewakingsoplossing gegevens heeft geïmplementeerd en begint te verzamelen.

Implementatie-inzichten weergeven

  1. Selecteer Workloads in het servicemenu van uw AKS-clusterresource.
  2. Selecteer een implementatie in de lijst om implementatie-inzichten weer te geven, zoals CPU- en geheugengebruik.

Notitie

U kunt ook Bewakingsinzichten> selecteren om gedetailleerdere informatie over specifieke knooppunten en containers weer te geven.

Resources opschonen

Als u de Azure Store-toepassing niet meer nodig hebt, kunt u de services verwijderen om te voorkomen dat Azure-kosten in rekening worden gebracht.

  1. Selecteer Services en ingresses in de lijst met Kubernetes-resources.
  2. Selecteer de services die u wilt verwijderen en selecteer vervolgens Verwijderen.

Probleemoplossing

Onbevoegde toegang

Voor toegang tot de Kubernetes-resources hebt u toegang nodig tot het AKS-cluster, de Kubernetes-API en de Kubernetes-objecten. Zorg ervoor dat u een clusterbeheerder of een gebruiker bent met de juiste machtigingen voor toegang tot het AKS-cluster. Zie Toegangs- en identiteitsopties voor AKS voor meer informatie.

Resourceweergave inschakelen

Mogelijk moet u de Kubernetes-resourceweergave inschakelen voor bestaande clusters.

Tip

U kunt de AKS-functie voor geautoriseerde IP-adresbereiken van de API-server toevoegen om de toegang tot de API-server te beperken tot alleen het openbare eindpunt van de firewall. Een andere optie is het bijwerken van de --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange toegang tot een lokale clientcomputer of het IP-adresbereik van waaruit u door de Azure-portal bladert. Als u deze toegang wilt toestaan, hebt u het openbare IPv4-adres van de computer nodig. U vindt dit adres met behulp van de volgende Azure CLI- of Azure PowerShell-opdrachten, of u kunt zoeken in 'wat is mijn IP-adres' in uw browser.

  1. Haal uw IP-adres op met behulp van de volgende opdracht:

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. Voeg uw IP-adres toe aan de goedgekeurde AKS-lijst met behulp van de az aks update opdracht met de --api-server-authorized-ip-ranges parameter.

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

Volgende stappen

In dit artikel hebt u geleerd hoe u toegang krijgt tot Kubernetes-resources vanuit Azure Portal. Voor meer informatie over AKS, kernconcepten voor Azure Kubernetes Service (AKS).