Mulai cepat: Menyebarkan kluster Azure Kubernetes Service (AKS) menggunakan portal Azure
Azure Kubernetes Service (AKS) merupakan layanan Kube terkelola yang memungkinkan Anda menyebarkan dan mengelola kluster dengan cepat. Dalam mulai cepat ini, Anda akan:
- Menyebarkan kluster AKS dengan menggunakan portal Microsoft Azure.
- Jalankan contoh aplikasi multi-kontainer dengan sekelompok layanan mikro dan ujung depan web yang mensimulasikan skenario ritel.
Catatan
Untuk memulai provisi kluster AKS dengan cepat, artikel ini menyertakan langkah-langkah untuk menyebarkan kluster dengan pengaturan default hanya untuk tujuan evaluasi. Sebelum menyebarkan kluster siap produksi, kami sarankan Anda membiasakan diri dengan arsitektur referensi dasar kami untuk mempertimbangkan bagaimana kluster tersebut selaras dengan kebutuhan bisnis Anda.
Sebelum Anda mulai
Mulai cepat ini mengasumsikan pemahaman dasar tentang konsep Kube. Untuk informasi lebih, lihat konsep inti Kubernetes untuk Azure Kubernetes Service (AKS).
- Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
- Jika Anda tidak terbiasa dengan Azure Cloud Shell, tinjau Gambaran Umum Azure Cloud Shell.
- Pastikan bahwa 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
Kumpulan simpul Azure Linux sekarang tersedia secara umum (GA). Untuk mempelajari tentang manfaat dan langkah-langkah penyebaran, lihat Pengantar Host Kontainer Azure Linux untuk AKS.
Membuat kluster AKS
Masuk ke portal Azure.
Pada beranda portal Microsoft Azure, pilih Membuat sumber daya.
Di bagian Kategori , pilih Kontainer>Azure Kubernetes Service (AKS).
Di tab Dasar, konfigurasikan pengaturan berikut:
- Di bawah Detail proyek:
- Pilih Langganan Azure.
- Buat grup Sumber Daya Azure, seperti myResourceGroup. Meskipun Anda dapat memilih grup sumber daya yang ada, untuk tujuan pengujian atau evaluasi, sebaiknya buat grup sumber daya untuk menghosting sumber daya ini untuk sementara waktu dan menghindari dampak beban kerja produksi atau pengembangan Anda.
- Di bawah Detail kluster:
Atur konfigurasi prasetel Kluster ke Dev/Test. Untuk detail selengkapnya tentang konfigurasi pra-setel, lihat Preset konfigurasi klaster di portal Microsoft Azure.
Masukkan nama kluster Kubernetes,seperti myAKSCluster.
Pilih Wilayah untuk kluster AKS.
Atur pengaturan Zona ketersediaan ke Tidak Ada.
Atur tingkat harga AKS ke Gratis.
Biarkan nilai default dipilih untuk versi Kubernetes.
Biarkan pengaturan Peningkatan otomatis diatur ke nilai yang direkomendasikan, yang Diaktifkan dengan patch.
Biarkan pengaturan Autentikasi dan otorisasi diatur ke Akun lokal dengan Kubernetes RBAC.
- Di bawah Detail proyek:
Pilih Selanjutnya. Pada tab Kumpulan simpul, tambahkan kumpulan simpul baru:
Pilih Tambahkan kumpulan simpul.
Masukkan nama kumpulan Simpul, seperti nplinux.
Untuk Mode, pilih Pengguna.
Untuk OS SKU, pilih Ubuntu Linux.
Atur pengaturan Zona ketersediaan ke Tidak Ada.
Biarkan kotak centang Aktifkan instans Azure Spot tidak dicentang.
Untuk Ukuran simpul, pilih Pilih ukuran. Pada halaman Pilih ukuran VM, pilih D2s_v3, lalu pilih tombol Pilih .
Biarkan pengaturan Metode skala diatur ke Skala Otomatis.
Biarkan jumlah simpul minimum dan Bidang jumlah simpul maksimum diatur ke pengaturan defaultnya.
Biarkan semua pengaturan pada tab lain diatur ke defaultnya, kecuali untuk pengaturan pada tab Pemantauan . Secara default, Azure Monitor menampilkan wawasan Kontainer, layanan terkelola Azure Monitor untuk Prometheus, dan Azure Managed Grafana diaktifkan. Anda dapat menghemat biaya dengan menonaktifkannya.
Pilih Tinjau + buat untuk menjalankan validasi pada konfigurasi kluster. Setelah validasi selesai, pilih Buat untuk membuat kluster AKS.
Perlu waktu beberapa menit untuk membuat kluster AKS. Saat penyebaran Anda selesai, navigasikan ke sumber daya Anda dengan:
- Memilih Buka sumber daya, atau
- Menjelajah ke grup sumber daya kluster AKS dan memilih sumber daya AKS. Dalam contoh ini, Anda menelusuri myResourceGroup dan memilih sumber daya myAKSCluster.
Menyambungkan ke kluster
Untuk mengelola kluster Kube, gunakan klien baris perintah Kube, kubectl. kubectl
sudah diinstal jika Anda menggunakan Azure Cloud Shell. Jika Anda tidak terbiasa dengan Cloud Shell, tinjau Gambaran Umum Azure Cloud Shell.
Jika Anda menggunakan Cloud Shell, buka dengan tombol >_
di bagian atas portal Azure. Jika Anda menggunakan PowerShell secara lokal, sambungkan Connect-AzAccount
ke Azure melalui perintah . Jika Anda menggunakan Azure CLI secara lokal, sambungkan az login
ke Azure melalui perintah .
Konfigurasikan
kubectl
untuk terhubung ke kluster Kubernetes menggunakan perintah az aks get-credentials. Perintah ini mengunduh informasi masuk dan mengonfigurasi CLI Kube untuk menggunakannya.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Verifikasi koneksi ke kluster Anda menggunakan
kubectl get
untuk mengembalikan daftar node kluster.kubectl get nodes
Contoh output berikut menunjukkan satu simpul yang dibuat pada langkah sebelumnya. Pastikan status simpul Siap.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31718369-0 Ready agent 6m44s v1.15.10
Menyebarkan aplikasi
Untuk menyebarkan aplikasi, Anda menggunakan file manifes untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi AKS Store. File manifes Kube menentukan status kluster yang diinginkan, seperti gambar kontainer mana yang akan dijalankan. Manifes mencakup penyebaran dan layanan Kubernetes berikut:
- Simpan depan: Aplikasi web bagi pelanggan untuk melihat produk dan melakukan pemesanan.
- Layanan produk: Menampilkan informasi produk.
- Layanan pesanan: Menempatkan pesanan.
- Rabbit MQ: Antrean pesan untuk antrean pesanan.
Catatan
Kami tidak menyarankan untuk menjalankan kontainer stateful, seperti Rabbit MQ, tanpa penyimpanan persisten untuk produksi. Ini digunakan di sini untuk kesederhanaan, tetapi sebaiknya gunakan layanan terkelola, seperti Azure CosmosDB atau Azure Bus Layanan.
Di Cloud Shell, buka editor dan buat file bernama
aks-store-quickstart.yaml
.Tempel manifes 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
Untuk perincian file manifes YAML, lihat Manifes Penyebaran dan YAML.
Jika Anda membuat dan menyimpan file YAML secara lokal, maka Anda dapat mengunggah file manifes ke direktori default Anda di CloudShell dengan memilih tombol Unggah/Unduh file dan memilih file dari sistem file lokal Anda.
Sebarkan aplikasi menggunakan perintah
kubectl apply
dan tentukan nama manifes YAML Anda:kubectl apply -f aks-store-quickstart.yaml
Contoh output berikut menunjukkan penyebaran dan layanan:
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Uji aplikasi
Ketika aplikasi berjalan, layanan Kubernetes mengekspos front end aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini.
Periksa status pod yang disebarkan menggunakan perintah kubectl get pods . Pastikan semua pod sebelum
Running
melanjutkan.kubectl get pods
Periksa alamat IP publik untuk aplikasi store-front. Pantau kemajuan menggunakan perintah kubectl get service dengan argumen
--watch
.kubectl get service store-front --watch
Output EXTERNAL-IP untuk layanan awalnya
store-front
ditampilkan sebagai tertunda:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
Saat alamat IP EKSTERNAL berubah dari tertunda menjadi alamat IP publik yang sebenarnya, gunakan
CTRL-C
untuk menghentikan proses pemantauankubectl
.Output contoh berikut menunjukkan alamat IP publik yang valid yang ditetapkan ke layanan:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Buka browser web ke alamat IP eksternal layanan Anda untuk melihat aplikasi Azure Store beraksi.
Menghapus kluster
Jika Anda tidak berencana untuk melalui tutorial AKS, bersihkan sumber daya yang tidak perlu untuk menghindari biaya Azure.
Di portal Azure, navigasikan ke grup sumber daya kluster AKS Anda.
Pilih Hapus grup sumber daya.
Masukkan nama grup sumber daya yang akan dihapus, lalu pilih Hapus>Hapus.
Catatan
Kluster AKS dibuat dengan identitas terkelola yang ditetapkan sistem. Identitas ini dikelola oleh platform dan tidak memerlukan penghapusan.
Langkah berikutnya
Dalam panduan mulai cepat ini, Anda menerapkan kluster Kubernetes dan kemudian menerapkan aplikasi multi-kontainer sederhana ke dalamnya. Aplikasi sampel ini hanya untuk tujuan demo dan tidak mewakili semua praktik terbaik untuk aplikasi Kubernetes. Untuk panduan tentang membuat solusi lengkap dengan AKS untuk produksi, lihat panduan solusi AKS.
Untuk mempelajari lebih lanjut tentang AKS dan menelusuri contoh kode-ke-penyebaran lengkap, lanjutkan ke tutorial kluster Kubernetes.
Azure Kubernetes Service
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk