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 AKS yang diaktifkan oleh Azure Arc.
Sebelum Anda mulai
Pastikan Anda memenuhi persyaratan berikut:
- Kluster Azure Kubernetes Service dengan setidaknya satu simpul pekerja Windows aktif dan berjalan.
- File kubeconfig untuk mengakses kluster.
- Modul AksHci PowerShell diinstal.
Saat Anda mengikuti prosedur:
- Jalankan perintah di jendela administrator 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
Uji aplikasi
Ketika aplikasi berjalan, layanan Kubernetes mengekspos front end 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 EKSTERNAL-IP berubah dari tertunda ke alamat IP publik aktual, gunakan CTRL-C
untuk menghentikankubectl
proses melihat. 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.
Jika waktu koneksi habis saat Anda mencoba memuat halaman, verifikasi apakah aplikasi sampel sudah 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 dibuat. Setelah sekitar satu menit, pod tambahan akan tersedia di kluster Anda:
kubectl get pods -n default