Menyebarkan aplikasi Windows

Berlaku untuk: AKS di Azure Stack HCI 22H2, AKS di Windows Server

Tutorial ini menjelaskan cara menyebarkan aplikasi sampel ASP.NET dalam kontainer Windows Server ke kluster Azure Kubernetes Service (AKS) di AKS yang diaktifkan oleh Arc, lalu menguji dan menskalakan aplikasi Anda. Anda juga mempelajari cara menggabungkan simpul Windows ke domain Direktori Aktif.

Tutorial ini mengasumsikan pemahaman dasar tentang konsep Kubernetes. Untuk informasi selengkapnya, lihat Konsep inti Kubernetes untuk hibrid AKS.

Sebelum Anda mulai

Pastikan Anda memenuhi persyaratan berikut:

Saat Anda mengikuti prosedur:

  • Jalankan perintah di jendela administratif PowerShell.
  • Pastikan beban kerja khusus OS mendarat di host kontainer yang sesuai. Jika kluster Kubernetes memiliki campuran simpul pekerja Linux dan Windows, Anda dapat menggunakan pemilih simpul atau taint dan toleransi. Untuk informasi selengkapnya, lihat menggunakan pemilih simpul serta noda dan toleransi.

Menyebarkan aplikasi

File manifes Kubernetes mendefinisikan status yang diinginkan untuk kluster, seperti gambar kontainer mana yang akan dijalankan. Dalam prosedur ini, manifes digunakan untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi sampel ASP.NET dalam kontainer Windows Server. Manifes ini mencakup penyebaran Kube untuk aplikasi contoh ASP.NET dan layanan Kube eksternal untuk mengakses aplikasi dari internet.

Aplikasi sampel ASP.NET disediakan sebagai bagian dari sampel .NET Framework dan berjalan dalam kontainer Windows Server. AKS Arc mengharuskan kontainer Windows Server didasarkan pada gambar Windows Server 2019.

File manifes Kubernetes juga harus menentukan pemilih simpul untuk memberi tahu kluster Anda untuk menjalankan pod aplikasi sampel ASP.NET pada simpul yang dapat menjalankan kontainer Windows Server.

Buat file bernama sample.yaml, dan salin/tempel definisi YAML berikut:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample
  labels:
    app: sample
spec:
  replicas: 1
  template:
    metadata:
      name: sample
      labels:
        app: sample
    spec:
      nodeSelector:
        "beta.kubernetes.io/os": windows
      containers:
      - name: sample
        image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
        resources:
          limits:
            cpu: 1
            memory: 800M
          requests:
            cpu: .1
            memory: 300M
        ports:
          - containerPort: 80
  selector:
    matchLabels:
      app: sample
---
apiVersion: v1
kind: Service
metadata:
  name: sample
spec:
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 80
  selector:
    app: sample

Sebarkan aplikasi menggunakan kubectl apply perintah , dan tentukan nama manifes YAML Anda:

kubectl apply -f sample.yaml

Contoh output berikut menunjukkan bahwa penyebaran dan layanan berhasil dibuat:

deployment.apps/sample created
service/sample created

Menguji aplikasi

Saat aplikasi berjalan, layanan Kube mengekspos ujung depan aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini. Terkadang layanan ini memerlukan waktu lebih lama untuk disediakan. Izinkan hingga 10 menit dalam kasus ini.

Untuk memantau kemajuan, gunakan kubectl get service perintah dengan --watch argumen :

kubectl get service sample --watch

Awalnya, EXTERNAL-IP untuk layanan sampel ditampilkan sebagai tertunda.

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

Ketika alamat IP_EKSTERNAL berubah dari tertunda ke alamat IP publik aktual, gunakan CTRL-C untuk menghentikan proses melihat kubectl. Output contoh berikut menunjukkan alamat IP publik yang valid yang ditetapkan ke layanan:

NAME    TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)        AGE
sample  LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Untuk melihat contoh aplikasi yang sedang berjalan, buka penelusur web ke alamat IP eksternal layanan Anda.

Cuplikan layar halaman beranda untuk aplikasi sampel ASP.NET untuk Windows yang disebarkan pada kluster AKS.

Jika waktu koneksi habis saat Anda mencoba memuat halaman, verifikasi apakah aplikasi sampel siap dengan menjalankan kubectl get pods --watch perintah. Terkadang, alamat IP eksternal tersedia sebelum kontainer Windows dimulai.

Skala pod aplikasi

Kami membuat satu replika front end aplikasi. Untuk melihat jumlah dan status pod di kluster Anda, gunakan perintah kubectl get sebagai berikut:

kubectl get pods -n default

Untuk mengubah jumlah pod dalam penerapan contoh, gunakan perintah kubectl scale. Contoh berikut menambah jumlah pod front-end menjadi 3:

kubectl scale --replicas=3 deployment/sample

Jalankan kubectl get pods lagi untuk memverifikasi bahwa pod telah dibuat. Setelah sekitar satu menit, pod tambahan akan tersedia di kluster Anda:

kubectl get pods -n default

Langkah berikutnya