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.

Önkoşullar

  • Var olan bir AKS kümesi. Tüm kümeler desteklenir, ancak Microsoft Entra tümleştirmesi kullanıyorsanız kümenizin 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

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.
  • Ağ ilkeleri , kümenizdeki podlar arasındaki trafik akışını denetleen ağ ilkesi 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 kubectlgibi helm 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ü.

AKS 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

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

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

  2. Oluştur>Bir YAML Uygula seçin.

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

    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. seçin, sonra daUygula'yı seçin.

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

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

    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 hizmet menüsünde İzleme

  2. "Container Insights'i 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 hizmet menüsünden İş 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.

İpucu

Belirli düğümler ve kapsayıcılar hakkında daha ayrıntılı bilgi görüntülemek için İzleme

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. Küme Yöneticisi veya AKS kümesine erişmek için uygun izinlere sahip bir kullanıcı olduğunuzdan emin olun. Daha fazla bilgi için bkz . AKS için erişim ve kimlik seçenekleri.

Kubernetes kaynaklarını görüntülemek erişilemez

Mevcut kümeler için Kubernetes kaynak görünümünü etkinleştirmek için yetkili IP aralıklarını yapılandırmanız 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 bulabilirsiniz.

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

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

    az aks update --resource-group <resource-group-name> --name <cluster-name> --api-server-authorized-ip-ranges $CURRENT_IP/32
    
  3. Kümenizin yetkili IP aralıklarını güncelleştirdikten sonra kubeconfig'inizi güncelleştirmek ve birleştirmek için aşağıdaki komutu çalıştırın:

    az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
    

    Beklenen çıkış bu güncelleştirmeyi size bildirir:

    Merged "<cluster-name>" as current context ...
    

AKS kümeniz özel küme olarak yapılandırılmışsa, Azure portalına AKS kümenizin bulunduğu alt ağa ulaşabilen bir ağdan erişmeniz gerekir. Aksi takdirde, ağ bağlantısı sorunları nedeniyle AKS kaynaklarına portalda erişilemez. Daha fazla bilgi edinmek için bkz. AKS özel kümesine erişme.

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