Udostępnij za pośrednictwem


Uzyskiwanie dostępu do zasobów platformy Kubernetes przy użyciu witryny Azure Portal

Z tego artykułu dowiesz się, jak uzyskiwać dostęp do zasobów usługi Azure Kubernetes Service (AKS) i zarządzać nimi przy użyciu witryny Azure Portal.

Zanim rozpoczniesz

Aby wyświetlić zasoby platformy Kubernetes w witrynie Azure Portal, potrzebny jest klaster usługi AKS. Każdy klaster jest obsługiwany, ale jeśli korzystasz z integracji z firmą Microsoft Entra, klaster musi korzystać z integracji firmy Microsoft Entra zarządzanej przez usługę AKS. Jeśli klaster używa starszego identyfikatora Microsoft Entra ID, możesz uaktualnić klaster w portalu lub za pomocą interfejsu wiersza polecenia platformy Azure. Możesz również użyć witryny Azure Portal do utworzenia nowego klastra usługi AKS.

Wyświetlanie zasobów platformy Kubernetes

  1. W witrynie Azure Portal przejdź do zasobu klastra usługi AKS.

  2. Z menu usługi wybierz pozycję Zasoby kubernetes. Lista zasobów platformy Kubernetes zawiera następujące kategorie:

    • Przestrzenie nazw zawierają informacje o przestrzeniach nazw klastra.
    • Obciążenia zawierają informacje o wdrożeniach, zasobnikach, zestawach replik, zestawach stanowych, zestawach demonów, zadaniach i zadaniach cron wdrożonych w klastrze.
    • Usługi i ruch przychodzący pokazują wszystkie zasoby usługi i ruchu przychodzącego klastra.
    • Usługa Storage przedstawia klasy magazynu platformy Azure i trwałe informacje o woluminie.
    • Konfiguracja przedstawia mapy konfiguracji klastra i wpisy tajne.
    • Zasoby niestandardowe zawierają wszystkie zasoby niestandardowe wdrożone w klastrze.
    • Zdarzenia pokazują wszystkie zdarzenia związane z klastrem.
    • Uruchom polecenie umożliwia zdalne wywoływanie poleceń, takich jak kubectl i helm, w klastrze za pośrednictwem interfejsu API platformy Azure bez bezpośredniego nawiązywania połączenia z klastrem.

    Zrzut ekranu przedstawiający zasoby platformy Kubernetes wyświetlane w witrynie Azure Portal.

Wdrażanie przykładowej aplikacji

W tej sekcji wdrożymy aplikację ze Sklepu Azure z przewodnika Szybki start usługi AKS.

Nawiązywanie połączenia z klastrem

Aby wdrożyć aplikację sklepu Azure Store, musisz nawiązać połączenie z klastrem usługi AKS. Wykonaj następujące kroki, aby nawiązać połączenie z klastrem przy użyciu witryny Azure Portal:

  1. Na stronie Przegląd klastra usługi AKS wybierz pozycję Połącz.
  2. Postępuj zgodnie z instrukcjami, aby nawiązać połączenie z klastrem przy użyciu usługi Cloud Shell, interfejsu wiersza polecenia platformy Azure lub uruchom polecenie.

Wdrażanie aplikacji ze sklepu Azure Store

  1. Z listy Zasobów platformy Kubernetes wybierz pozycję Usługi i ruch przychodzący.

  2. Wybierz pozycję Utwórz>zastosuj plik YAML.

  3. Skopiuj i wklej następujący kod YAML do edytora:

    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. Wybierz Dodaj.

    Po zakończeniu wdrażania aplikacji na liście Usługi zostaną wyświetlone następujące usługi:

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

    Zrzut ekranu przedstawiający usługi aplikacji sklepu Azure Store wyświetlane w witrynie Azure Portal.

Monitorowanie szczegółowych informacji o wdrożeniu

Włączanie dodatku do monitorowania w klastrze usługi AKS

Klastry AKS z włączoną usługą Container Insights mogą uzyskiwać dostęp do różnych szczegółowych informacji dotyczących wdrażania w witrynie Azure Portal. Jeśli w klastrze nie włączono monitorowania, możesz ją włączyć, wykonując następujące czynności:

  1. Z menu usługi zasobu klastra usługi AKS wybierz pozycję Monitorowanie>szczegółowych informacji>Skonfiguruj monitorowanie.

  2. Na stronie Konfigurowanie usługi Container Insights wybierz pozycję Konfiguruj.

    Wdrożenie rozwiązania do monitorowania i rozpoczęcie zbierania danych może potrwać kilka minut.

Wyświetlanie szczegółowych informacji o wdrożeniu

  1. Z menu usługi zasobu klastra usługi AKS wybierz pozycję Obciążenia.
  2. Wybierz wdrożenie z listy, aby wyświetlić szczegółowe informacje dotyczące wdrażania, takie jak użycie procesora CPU i pamięci.

Uwaga

Możesz również wybrać pozycję Szczegółowe informacje dotyczące monitorowania>, aby wyświetlić bardziej szczegółowe informacje o określonych węzłach i kontenerach.

Czyszczenie zasobów

Jeśli nie potrzebujesz już aplikacji ze sklepu Azure Store, możesz usunąć usługi, aby uniknąć ponoszenia kosztów platformy Azure.

  1. Z listy Zasobów platformy Kubernetes wybierz pozycję Usługi i ruch przychodzący.
  2. Wybierz usługi, które chcesz usunąć, a następnie wybierz pozycję Usuń.

Rozwiązywanie problemów

Nieautoryzowany dostęp

Aby uzyskać dostęp do zasobów platformy Kubernetes, potrzebujesz dostępu do klastra AKS, interfejsu API Kubernetes i obiektów Kubernetes. Upewnij się, że jesteś administratorem klastra lub użytkownikiem z odpowiednimi uprawnieniami dostępu do klastra usługi AKS. Aby uzyskać więcej informacji, zobacz Opcje dostępu i tożsamości dla usługi AKS.

Włączanie widoku zasobów

Może być konieczne włączenie widoku zasobów kubernetes dla istniejących klastrów.

Napiwek

Możesz dodać funkcję AKS dla autoryzowanych zakresów adresów IP serwera interfejsu API, aby ograniczyć dostęp serwera interfejsu API tylko do publicznego punktu końcowego zapory. Inną opcją jest zaktualizowanie --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange elementu w celu uwzględnienia dostępu dla lokalnego komputera klienckiego lub zakresu adresów IP, z którego przeglądasz witrynę Azure Portal. Aby zezwolić na ten dostęp, potrzebny jest publiczny adres IPv4 komputera. Ten adres można znaleźć przy użyciu następujących poleceń interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell albo wyszukać "jaki jest mój adres IP" w przeglądarce.

  1. Pobierz swój adres IP przy użyciu następującego polecenia:

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. Dodaj swój adres IP do listy zatwierdzonych przez usługę AKS przy użyciu az aks update polecenia z parametrem --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
    

Następne kroki

W tym artykule pokazano, jak uzyskać dostęp do zasobów platformy Kubernetes z witryny Azure Portal. Aby uzyskać więcej informacji na temat usługi AKS, podstawowe pojęcia dotyczące usługi Azure Kubernetes Service (AKS).