Прочитать на английском

Поделиться через


Получайте доступ к ресурсам Kubernetes через портал Azure

В этой статье вы узнаете, как получить доступ к ресурсам службы Azure Kubernetes Service (AKS) и управлять ими с помощью портала Azure.

Прежде чем начать

Чтобы просмотреть ресурсы Kubernetes в портале Azure, вам необходим кластер AKS. Поддерживается любой кластер, но если вы используете интеграцию Microsoft Entra, ваш кластер должен использовать управляемую AKS интеграцию Microsoft Entra. Если ваш кластер использует устаревший Microsoft Entra ID, вы можете обновить его в портале или с помощью Azure CLI. Вы также можете использовать портал Azure для создания нового кластера AKS.

Просмотр ресурсов Kubernetes

  1. In the Azure portal, navigate to your AKS cluster resource.

  2. В меню сервиса выберите ресурсы Kubernetes. Список ресурсов Kubernetes отображает следующие категории:

    • Именованные пространства показывают информацию о пространстах имен вашего кластера.
    • Рабочие нагрузки показывают информацию о развертываниях, подах, наборах реплик, состояниях, наборах демонов, заданиях и кроновых заданиях, развернутых в вашем кластере.
    • Сервисы и входы отображает все ресурсы сервисов и входов вашего кластера.
    • Хранилище показывает ваши классы хранилища Azure и информацию о постоянных объемах.
    • Configuration показывает карты конфигурации и секреты вашего кластера.
    • Пользовательские ресурсы показывают любые пользовательские ресурсы, развернутые в вашем кластере.
    • События отображает все события, связанные с вашим кластером.
    • Run command позволяет вам удаленно запускать команды, такие как kubectl и helm, на вашем кластере через Azure API без прямого подключения к кластеру.

    Снимок экрана, показывающий ресурсы Kubernetes, отображаемые в портале Azure.

Развернуть примерное приложение

В этом разделе мы развернем приложение Azure Store из быстрого старта AKS.

Подключитесь к вашему кластеру

Чтобы развернуть приложение Azure Store, необходимо подключиться к вашему кластеру AKS. Следуйте этим шагам, чтобы подключиться к вашему кластеру через портал Azure:

  1. На странице Обзор вашего кластера AKS выберите Подключить.
  2. Следуйте инструкциям для подключения к вашему кластеру с помощью Cloud Shell, Azure CLI или Run command.

Развернуть приложение Azure Store

  1. Из списка ресурсов Kubernetes выберите Сервисы и Ingress.

  2. Выберите Создать>Применить YAML.

  3. Скопируйте и вставьте следующий YAML в редактор.

    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. Select Add.

    Как только приложение завершит развертывание, вы увидите в списке Services следующие службы:

    • order-service
    • product-service
    • rabbitmq
    • витрина магазина

    Снимок экрана служб приложений Azure Store, отображенных в портале Azure.

Monitor deployment insights

Включите дополнение для мониторинга в вашем кластере AKS.

Кластеры AKS с включённым Container Insights могут получить доступ к различным сведениям о развёртывании в портале Azure. Если в вашем кластере не включено мониторинг, вы можете его включить, следуя следующим шагам:

  1. В меню сервиса вашего ресурса кластера AKS выберите Мониторинг>Аналитика>Настроить мониторинг.

  2. На странице Настроить Container Insights выберите Настроить.

    Возможно, потребуется несколько минут, чтобы решение для мониторинга развернулось и начало собирать данные.

Просмотр аналитики развертывания

  1. В меню сервиса вашего ресурса кластера AKS выберите Рабочие нагрузки.
  2. Выберите развертывание из списка, чтобы просмотреть информацию о развертывании, такую как использование CPU и памяти.

Примечание

Вы также можете выбрать Мониторинг>Аналитика, чтобы просмотреть более подробную информацию о конкретных узлах и контейнерах.

Очистите ресурсы

Если вам больше не нужно приложение Azure Store, вы можете удалить службы, чтобы избежать затрат на Azure.

  1. В списке Kubernetes resources выберите Services and ingresses.
  2. Выберите службы, которые вы хотите удалить, затем выберите Удалить.

Устранение неполадок

Неавторизованный доступ

Чтобы получить доступ к ресурсам Kubernetes, вам нужен доступ к кластеру AKS, API Kubernetes и объектам Kubernetes. Убедитесь, что вы являетесь либо администратором кластера, либо пользователем с соответствующими правами доступа к кластеру AKS. Для получения дополнительной информации см. Варианты доступа и идентификации для AKS.

Включить просмотр ресурсов

Возможно, вам нужно будет включить просмотр ресурсов Kubernetes для существующих кластеров.

Совет

Вы можете добавить функцию AKS для разрешенных диапазонов IP адресов сервера API, чтобы ограничить доступ к серверу API только публичной точкой подключения межсетевого экрана. Другой вариант — обновить --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange таким образом, чтобы разрешить доступ с локального клиентского компьютера или из диапазона IP-адресов, с которого вы просматриваете портал Azure. Чтобы разрешить этот доступ, вам нужен публичный IPv4-адрес компьютера. Вы можете найти этот адрес, используя следующие команды Azure CLI или Azure PowerShell, или вы можете выполнить поиск "какой у меня IP-адрес" в вашем браузере.

  1. Получите свой IP-адрес, используя следующую команду:

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. Add your IP address to the AKS approved list using the az aks update command with the --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
    

Next steps

В этой статье показано, как получить доступ к ресурсам Kubernetes через портал Azure. Для получения дополнительной информации об AKS см. Основные концепции для Azure Kubernetes Service (AKS).


Дополнительные ресурсы

Обучение

Схема обучения

Общие сведения о Kubernetes в Azure - Training

Сведения об основах контейнеров Docker, оркестрации контейнеров с помощью Kubernetes и управляемых кластеров в службе Azure Kubernetes.

Сертификация

Сертифицировано майкрософт: помощник администратора Azure - Certifications

Демонстрация ключевых навыков для настройки, управления, защиты и администрирования ключевых профессиональных функций в Microsoft Azure.