Baca dalam bahasa Inggris

Bagikan melalui


Mengakses sumber daya Kubernetes menggunakan portal Azure

Dalam artikel ini, Anda mempelajari cara mengakses dan mengelola sumber daya Azure Kubernetes Service (AKS) menggunakan portal Azure.

Sebelum Anda mulai

Untuk menampilkan sumber daya Kube di portal Microsoft Azure, Anda memerlukan kluster AKS. Kluster apa pun didukung, tetapi jika Anda menggunakan integrasi Microsoft Entra, kluster Anda harus menggunakan integrasi Microsoft Entra yang dikelola AKS. Jika kluster Anda menggunakan ID Microsoft Entra warisan, Anda dapat meningkatkan kluster di portal atau dengan Azure CLI. Anda juga dapat menggunakan portal Microsoft Azure untuk membuat kluster AKS baru.

Menampilkan sumber daya Kube

  1. Di portal Azure, navigasikan ke sumber daya kluster AKS Anda.

  2. Dari menu layanan, pilih sumber daya Kubernetes. Daftar sumber daya Kubernetes menampilkan kategori berikut:

    • Namespace menampilkan informasi tentang namespace kluster Anda.
    • Beban kerja memperlihatkan informasi tentang penyebaran, pod, set replika, set stateful, set daemon, pekerjaan, dan pekerjaan cron yang disebarkan ke kluster Anda.
    • Layanan dan ingress memperlihatkan semua layanan dan sumber daya masuk kluster Anda.
    • Penyimpanan memperlihatkan kelas penyimpanan Azure dan informasi volume persisten Anda.
    • Konfigurasi memperlihatkan peta dan rahasia konfigurasi kluster Anda.
    • Sumber daya kustom menunjukkan sumber daya kustom apa pun yang disebarkan ke kluster Anda.
    • Peristiwa menunjukkan semua peristiwa yang terkait dengan kluster Anda.
    • Jalankan perintah memungkinkan Anda untuk memanggil perintah dari jarak jauh, seperti kubectl dan helm, pada kluster Anda melalui Azure API tanpa langsung terhubung ke kluster.

    Cuplikan layar memperlihatkan sumber daya Kubernetes yang ditampilkan di portal Azure.

Menyebarkan aplikasi sampel

Di bagian ini, kami menyebarkan aplikasi Azure Store dari mulai cepat AKS.

Menyambungkan ke kluster Anda

Untuk menyebarkan aplikasi Azure Store, Anda perlu menyambungkan ke kluster AKS Anda. Ikuti langkah-langkah ini untuk menyambungkan ke kluster Anda menggunakan portal Azure:

  1. Dari halaman Gambaran Umum kluster AKS Anda, pilih Sambungkan.
  2. Ikuti instruksi untuk menyambungkan ke kluster Anda menggunakan perintah Cloud Shell, Azure CLI, atau Jalankan.

Menyebarkan aplikasi Azure Store

  1. Dari daftar sumber daya Kubernetes, pilih Layanan dan ingress.

  2. Pilih Buat>Terapkan YAML.

  3. Salin dan tempel YAML berikut ke 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. Pilih Tambahkan.

    Setelah aplikasi selesai disebarkan, Anda akan melihat layanan berikut di daftar Layanan :

    • layanan pesanan
    • layanan produk
    • rabbitmq
    • store-front

    Cuplikan layar layanan aplikasi Azure Store yang ditampilkan di portal Azure.

Memantau wawasan penyebaran

Mengaktifkan add-on pemantauan pada kluster AKS Anda

Kluster AKS dengan Container Insights diaktifkan dapat mengakses berbagai wawasan penyebaran di portal Azure. Jika Anda tidak mengaktifkan pemantauan di kluster, Anda dapat mengaktifkannya menggunakan langkah-langkah berikut:

  1. Dari menu layanan sumber daya kluster AKS Anda, pilih Pemantauan>Wawasan>Mengonfigurasi pemantauan.

  2. Pada halaman Konfigurasikan Wawasan Kontainer, pilih Konfigurasikan.

    Mungkin perlu beberapa menit agar solusi pemantauan menyebarkan dan mulai mengumpulkan data.

Melihat wawasan penyebaran

  1. Dari menu layanan sumber daya kluster AKS Anda, pilih Beban Kerja.
  2. Pilih penyebaran dari daftar untuk melihat wawasan penyebaran, seperti penggunaan CPU dan memori.

Catatan

Anda juga dapat memilih Wawasan Pemantauan>untuk melihat informasi yang lebih mendalam tentang simpul dan kontainer tertentu.

Membersihkan sumber daya

Jika Anda tidak lagi memerlukan aplikasi Azure Store, Anda dapat menghapus layanan untuk menghindari timbulnya biaya Azure.

  1. Dari daftar sumber daya Kubernetes, pilih Layanan dan ingress.
  2. Pilih layanan yang ingin Anda hapus, lalu pilih Hapus.

Pemecahan Masalah

Akses yang tidak sah

Untuk mengakses sumber daya Kubernetes, Anda memerlukan akses ke kluster AKS, API Kubernetes, dan objek Kubernetes. Pastikan Anda adalah administrator kluster atau pengguna dengan izin yang sesuai untuk mengakses kluster AKS. Untuk informasi selengkapnya, lihat Opsi akses dan identitas untuk AKS.

Mengaktifkan tampilan sumber daya

Anda mungkin perlu mengaktifkan tampilan sumber daya Kubernetes untuk kluster yang ada.

Tip

Anda dapat menambahkan fitur AKS untuk rentang IP resmi server API untuk membatasi akses server API hanya ke titik akhir publik firewall. Opsi lain adalah memperbarui --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange untuk menyertakan akses untuk komputer klien lokal atau rentang alamat IP tempat Anda menelusuri portal Azure. Untuk mengizinkan akses ini, Anda memerlukan alamat IPv4 publik komputer. Anda dapat menemukan alamat ini menggunakan perintah Azure CLI atau Azure PowerShell berikut, atau Anda dapat mencari "apa alamat IP saya" di browser Anda.

  1. Ambil alamat IP Anda menggunakan perintah berikut:

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. Tambahkan alamat IP Anda ke daftar yang disetujui AKS menggunakan az aks update perintah dengan --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
    

Langkah berikutnya

Artikel ini menunjukkan cara mengakses sumber daya Kubernetes dari portal Azure. Untuk informasi selengkapnya tentang AKS, konsep Core untuk Azure Kubernetes Service (AKS).