Aracılığıyla paylaş


Azure portalını kullanarak Kubernetes kaynaklarına erişme

Bu makalede, Azure portalını kullanarak Azure Kubernetes Service (AKS) kaynaklarınıza erişmeyi ve bunları yönetmeyi öğreneceksiniz.

Başlamadan önce

Azure portalında Kubernetes kaynaklarını görüntülemek için bir AKS kümesine ihtiyacınız vardır. Tüm kümeler desteklenir, ancak Microsoft Entra tümleştirmesi kullanıyorsanız kümenizin AKS tarafından yönetilen Microsoft Entra tümleştirmesini kullanması gerekir. Kümeniz eski Microsoft Entra Kimliğini kullanıyorsa, kümenizi portalda veya Azure CLI ile yükseltebilirsiniz. Yeni bir AKS kümesi oluşturmak için Azure portalını da kullanabilirsiniz.

Kubernetes kaynaklarını görüntüleme

  1. Azure portalında AKS küme kaynağınıza gidin.

  2. Sol taraftaki menüde Kubernetes kaynakları'nı seçin. Kubernetes kaynakları listesinde aşağıdaki kategoriler görüntülenir:

    • Ad alanları , kümenizin ad alanları hakkındaki bilgileri gösterir.
    • İş yükleri , kümenize dağıtılan dağıtımlar, podlar, çoğaltma kümeleri, durum bilgisi olan kümeler, daemon kümeleri, işler ve cron işleri hakkındaki bilgileri gösterir.
    • Hizmetler ve girişler , kümenizin tüm hizmet ve giriş kaynaklarını gösterir.
    • Depolama , Azure depolama sınıflarınızı ve kalıcı birim bilgilerinizi gösterir.
    • Yapılandırma , kümenizin yapılandırma haritalarını ve gizli dizilerini gösterir.
    • Özel kaynaklar , kümenize dağıtılan tüm özel kaynakları gösterir.
    • Olaylar , kümenizle ilgili tüm olayları gösterir.
    • Çalıştır komutu, kümeye doğrudan bağlanmadan Azure API aracılığıyla kümenizde ve helmgibi kubectl komutları uzaktan çağırmanıza olanak tanır.

    Azure portalında görüntülenen Kubernetes kaynaklarını gösteren ekran görüntüsü.

Örnek uygulama dağıtma

Bu bölümde AKS hızlı başlangıcından Azure Store uygulamasını dağıtacağız.

Kümenize bağlanma

Azure Store uygulamasını dağıtmak için AKS kümenize bağlanmanız gerekir. Azure portalını kullanarak kümenize bağlanmak için şu adımları izleyin:

  1. AKS kümenizin Genel Bakış sayfasında Bağlan'ı seçin.
  2. Cloud Shell, Azure CLI veya Çalıştır komutunu kullanarak kümenize bağlanmak için yönergeleri izleyin.

Azure Store uygulamasını dağıtma

  1. Kubernetes kaynakları listesinde Hizmetler ve girişler'i seçin.

  2. YAML Uygula Oluştur'u>seçin.

  3. Aşağıdaki YAML'yi kopyalayıp düzenleyiciye yapıştırın:

    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. Ekle'yi seçin.

    Uygulamanın dağıtımı tamamlandıktan sonra Hizmetler listesinde aşağıdaki hizmetleri görürsünüz:

    • order-service
    • ürün hizmeti
    • rabbitmq
    • mağaza ön

    Azure portalında görüntülenen Azure Mağazası uygulama hizmetlerinin ekran görüntüsü.

Dağıtım içgörülerini izleme

AKS kümenizde izleme eklentisini etkinleştirme

Container Insights'ın etkinleştirildiği AKS kümeleri, Azure portalında çeşitli dağıtım içgörülerine erişebilir. Kümenizde izleme etkinleştirilmediyse, aşağıdaki adımları kullanarak etkinleştirebilirsiniz:

  1. AKS küme kaynağınızın sol tarafındaki menüde İzleme>İçgörüleri>İzlemeyi yapılandır'ı seçin.

  2. Container Insights'ı Yapılandır sayfasında Yapılandır'ı seçin.

    İzleme çözümünün dağıtılması ve veri toplamaya başlaması birkaç dakika sürebilir.

Dağıtım içgörülerini görüntüleme

  1. AKS kümesi kaynağınızın sol tarafındaki menüde İş yükleri'ni seçin.
  2. CPU ve bellek kullanımı gibi dağıtım içgörülerini görüntülemek için listeden bir dağıtım seçin.

Not

Belirli düğümler ve kapsayıcılar hakkında daha ayrıntılı bilgi görüntülemek için İzleme>İçgörüleri'ne de tıklayabilirsiniz.

Kaynakları temizleme

Azure Store uygulamasına artık ihtiyacınız yoksa, Azure maliyetlerinin oluşmasını önlemek için hizmetleri silebilirsiniz.

  1. Kubernetes kaynakları listesinde Hizmetler ve girişler'i seçin.
  2. Silmek istediğiniz hizmetleri seçin ve ardından Sil'i seçin.

Sorun giderme

Yetkisiz erişim

Kubernetes kaynaklarına erişmek için AKS kümesine, Kubernetes API'sine ve Kubernetes nesnelerine erişmeniz gerekir. Aks kümesine erişmek için uygun izinlere sahip bir küme yöneticisi veya kullanıcı olduğunuzdan emin olun. Daha fazla bilgi için bkz . AKS için erişim ve kimlik seçenekleri.

Kaynak görünümünü etkinleştirme

Mevcut kümeler için Kubernetes kaynak görünümünü etkinleştirmeniz gerekebilir.

İpucu

API sunucusu erişimini yalnızca güvenlik duvarının genel uç noktasıyla sınırlamak için API sunucusu yetkili IP aralıkları için AKS özelliğini ekleyebilirsiniz. Bir diğer seçenek de yerel istemci bilgisayara veya Azure portalına göz atmakta olduğunuz IP adresi aralığına erişimi içerecek şekilde öğesini güncelleştirmektir --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange . Bu erişime izin vermek için bilgisayarın genel IPv4 adresine ihtiyacınız vardır. Bu adresi aşağıdaki Azure CLI veya Azure PowerShell komutlarını kullanarak bulabilir veya tarayıcınızda "IP adresim nedir" araması yapabilirsiniz.

  1. Aşağıdaki komutu kullanarak IP adresinizi alın:

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. parametresiyle --api-server-authorized-ip-ranges komutunu kullanarak az aks update IP adresinizi AKS onaylı listesine ekleyin.

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

Sonraki adımlar

Bu makalede, Azure portalından Kubernetes kaynaklarına nasıl erişirsiniz? AKS hakkında daha fazla bilgi için Azure Kubernetes Service (AKS) için temel kavramlar.