Mulai Cepat - Menyebarkan kluster Azure Kubernetes Service menggunakan Azure CLI

Azure Kubernetes Service (AKS) adalah layanan Kube terkelola yang memungkinkan Anda menyebarkan dan mengelola kluster dengan cepat. Dalam mulai cepat ini, Anda akan:

  • Menyebarkan kluster AKS menggunakan Azure CLI.

  • Menjalankan aplikasi multikontainer dengan frontend web dan instans Redis di kluster.

  • Memantau kesehatan kluster dan pod yang menjalankan aplikasi Anda.

    Aplikasi pemungutan suara yang disebarkan di Azure Kubernetes Service

Mulai cepat ini mengasumsikan pemahaman dasar tentang konsep Kube. Untuk informasi selengkapnya, lihat Konsep inti Kube untuk Azure Kubernetes Service (AKS).

Jika Anda tidak memiliki langganan Azure, buatlah akun gratis sebelum Anda memulai.

Untuk mempelajari selengkapnya tentang pembuatan kumpulan simpul Windows Server, lihat Membuat kluster AKS yang mendukung kontainer Windows Server.

Prasyarat

  • Gunakan lingkungan Bash di Azure Cloud Shell.

    Luncurkan Cloud Shell di jendela baru

  • Jika mau, instal Azure CLI untuk menjalankan perintah referensi CLI.

    • Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk tambahan, lihat Masuk dengan Azure CLI.

    • Saat diminta, instal ekstensi saat pertama kali menggunakan Azure CLI. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.

    • Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk memutakhirkan ke versi terbaru, jalankan pemutakhiran az.

  • Artikel ini memerlukan Azure CLI versi 2.0.64 atau versi lebih baru. Jika ingin menggunakan Azure Cloud Shell, versi terbarunya sudah terinstal.
  • Identitas yang Anda gunakan untuk membuat kluster Anda memiliki izin minimum yang sesuai. Untuk informasi selengkapnya tentang akses dan identitas AKS, lihat Opsi akses dan identitas untuk Azure Kubernetes Service (AKS).

Catatan

Jalankan perintah sebagai admin jika Anda berencana menjalankan perintah dalam mulai cepat ini secara lokal, dan bukan di Azure Cloud Shell.

Membuat grup sumber daya

Grup sumber daya Azuremerupakan grup logis yang disebarkan dan dikelola sumber daya Azure. Saat Anda membuat grup sumber daya, Anda diminta untuk menentukan lokasi. Lokasi ini adalah:

  • Lokasi penyimpanan metadata grup sumber daya Anda.
  • Tempat sumber daya Anda akan berjalan di Azure jika Anda tidak menentukan wilayah lain selama pembuatan sumber daya.

Contoh berikut ini membuat grup sumber daya bernama myResourceGroup di lokasi eastus.

Membuat grup sumber daya menggunakan perintah az group create.

az group create --name myResourceGroup --location eastus

Output untuk sumber daya yang berhasil dibuat:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Mengaktifkan pemantauan kluster

Pastikan bahwa Microsoft.OperationsManagement dan Microsoft.OperationalInsights terdaftar di langganan Anda. Untuk memeriksa status pendaftaran:

az provider show -n Microsoft.OperationsManagement -o table
az provider show -n Microsoft.OperationalInsights -o table

Jika tidak terdaftar, daftarkan Microsoft.OperationsManagement dan Microsoft.OperationalInsights menggunakan:

az provider register --namespace Microsoft.OperationsManagement
az provider register --namespace Microsoft.OperationalInsights

Membuat kluster AKS

Membuat kluster AKS menggunakan perintah az aks create dengan parameter pemantauan --enable-addons untuk mengaktifkan Azure Monitor untuk kontainer. Contoh berikut membuat kluster bernama myAKSCluster dengan satu simpul:

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys

Setelah beberapa menit, perintah selesai dan mengembalikan informasi berformat JSON tentang kluster.

Catatan

Saat Anda membuat kluster AKS, grup sumber daya kedua secara otomatis dibuat untuk menyimpan sumber daya AKS. Selengkapnya, lihatMengapa dua grup sumber daya dibuat dengan AKS?

Menyambungkan ke kluster

Untuk mengelola kluster Kube, Anda menggunakan klien baris perintah Kube, kubectl. kubectl sudah diinstal jika Anda menggunakan Azure Cloud Shell.

  1. Instal kubectl secara lokal menggunakan perintah az aks install-cli:

    az aks install-cli
    
  2. Konfigurasikan kubectl untuk menyambungkan ke kluster Kube menggunakan perintah az aks get-credentials. Jalankan perintah berikut:

    • Unduh informasi masuk dan konfigurasikan Kube CLI untuk menggunakannya.
    • Gunakan ~/.kube/config, lokasi default untuk file konfigurasi Kube. Tentukan lokasi berbeda untuk file konfigurasi Kube Anda menggunakan --file.
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Verifikasi koneksi ke kluster Anda menggunakan perintah kubectl get. Perintah ini menampilkan daftar simpul kluster.

    kubectl get nodes
    

    Output menunjukkan simpul yang dibuat pada langkah sebelumnya. Pastikan status simpul Siap:

    NAME                       STATUS   ROLES   AGE     VERSION
    aks-nodepool1-31718369-0   Ready    agent   6m44s   v1.12.8
    

Menjalankan aplikasi

File manifes Kube menentukan status kluster yang diinginkan, seperti gambar kontainer mana yang akan dijalankan.

Dalam mulai cepat ini, gunakan manifes untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi Azure Vote. Manifes ini mencakup dua Penyebaran Kube:

  • Sampel aplikasi Azure Vote Python.
  • Instans Redis.

DuaLayanan Kubejuga dibuat:

  • Layanan internal untuk instans Redis.
  • Layanan eksternal untuk mengakses aplikasi Azure Vote dari internet.
  1. Buat file bernama azure-vote.yaml.

    • Jika Anda menggunakan Azure Cloud Shell, file ini dapat dibuat menggunakan code, vi, atau nano seolah-olah bekerja pada sistem virtual atau fisik
  2. Salin dalam definisi YAML berikut:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-back
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-back
      template:
        metadata:
          labels:
            app: azure-vote-back
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 6379
              name: redis
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-back
    spec:
      ports:
      - port: 6379
      selector:
        app: azure-vote-back
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-front
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-front
      template:
        metadata:
          labels:
            app: azure-vote-front
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 80
            env:
            - name: REDIS
              value: "azure-vote-back"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-front
    spec:
      type: LoadBalancer
      ports:
      - port: 80
      selector:
        app: azure-vote-front
    
  3. Sebarkan aplikasi menggunakan perintah kubectl applydan tentukan nama manifes YAML Anda:

    kubectl apply -f azure-vote.yaml
    

    Output menunjukkan penyebaran dan layanan yang berhasil dibuat:

    deployment "azure-vote-back" created
    service "azure-vote-back" created
    deployment "azure-vote-front" created
    service "azure-vote-front" created
    

Menguji aplikasi

Saat aplikasi berjalan, layanan Kube mengekspos ujung depan aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini.

Pantau kemajuan menggunakan perintah kubectl get service dengan argumen --watch.

kubectl get service azure-vote-front --watch

Output EXTERNAL-IP untuk layanan azure-vote-front awalnya akan ditampilkan sebagai tertunda.

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

Saat alamat EXTERNAL-IP berubah dari tertunda menjadi alamat IP publik yang sebenarnya, gunakanCTRL-C untuk menghentikan proses tontonankubectl. Output contoh berikut menunjukkan alamat IP publik valid yang ditetapkan ke layanan:

azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Untuk melihat aplikasi Azure Vote yang sedang berjalan, buka browser web ke alamat IP eksternal layanan Anda.

Aplikasi pemungutan suara yang disebarkan di Azure Kubernetes Service

Tampilkan metrik kesehatan node kluster dan pod yang diambil oleh Azure Monitor untuk kontainer di portal Microsoft Azure.

Menghapus kluster

Untuk menghindari biaya Azure, bersihkan sumber daya Anda yang tidak perlu. Gunakan perintah az group delete untuk menghapus grup sumber daya, layanan kontainer, dan semua sumber daya terkait.

az group delete --name myResourceGroup --yes --no-wait

Catatan

Saat Anda menghapus kluster, perwakilan layanan Azure Active Directory yang digunakan oleh kluster AKS tidak dihapus. Untuk langkah tentang cara menghapus perwakilan layanan, lihatPertimbangan dan penghapusan perwakilan layanan AKS.

Jika Anda menggunakan identitas terkelola, identitas dikelola oleh platform dan tidak memerlukan penghapusan.

Mendapatkan kode

Gambar kontainer yang sudah ada sebelumnya digunakan dalam mulai cepat ini untuk membuat penyebarkan Kube. Kode aplikasi terkait, Dockerfile, dan file manifes Kubetersedia di GitHub.

Langkah berikutnya

Pada mulai cepat ini, Anda menyebarkan kluster Kubernetes lalu menyebarkan aplikasi multikontainer ke dalamnya. Mengakses dasbor web Kube untuk kluster AKS Anda.

Untuk mempelajari lebih lanjut tentang AKS, dan mempelajari kode lengkap untuk contoh penyebaran, lanjutkan ke tutorial kluster Kube.