Acara
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarangBrowser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Azure Kubernetes Service (AKS) merupakan layanan Kube terkelola yang memungkinkan Anda menyebarkan dan mengelola kluster dengan cepat. Dalam mulai cepat ini, Anda akan:
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.
Artikel 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.
Untuk kemudahan penggunaan, coba lingkungan PowerShell di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Azure Cloud Shell.
Jika Anda ingin menggunakan PowerShell secara lokal, instal modul Az PowerShell dan sambungkan ke akun Azure Anda menggunakan cmdlet Connect-AzAccount . Pastikan Anda menjalankan perintah dengan hak istimewa administratif. Untuk informasi selengkapnya, lihat Memasang Azure PowerShell.
Pastikan 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).
Jika Anda memiliki lebih dari satu langganan Azure, atur langganan yang ingin Anda gunakan untuk mulai cepat dengan memanggil cmdlet Set-AzContext . Untuk informasi selengkapnya, lihat Mengelola langganan Azure dengan Azure PowerShell.
Grup sumber daya Azure adalah grup logis tempat sumber daya Azure disebarkan dan dikelola. Saat membuat grup sumber daya, Anda diminta untuk menentukan lokasi. Lokasi ini adalah lokasi penyimpanan metadata grup sumber daya Anda dan tempat sumber daya Anda berjalan di Azure jika Anda tidak menentukan wilayah lain selama pembuatan sumber daya.
Contoh berikut ini menampilkan cara membuat grup sumber daya bernama myResourceGroup di lokasi eastus.
Buat grup sumber daya menggunakan New-AzResourceGroup
cmdlet .
New-AzResourceGroup -Name myResourceGroup -Location eastus
Contoh output berikut menyerupai pembuatan grup sumber daya yang berhasil:
ResourceGroupName : myResourceGroup
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup
Untuk membuat kluster AKS, gunakan New-AzAksCluster
cmdlet . Contoh berikut membuat kluster bernama myAKSCluster dengan satu simpul dan mengaktifkan identitas terkelola yang ditetapkan sistem.
New-AzAksCluster -ResourceGroupName myResourceGroup `
-Name myAKSCluster `
-NodeCount 1 `
-EnableManagedIdentity `
-GenerateSshKey
Setelah beberapa menit, perintah selesai dan mengembalikan informasi tentang kluster.
Catatan
Saat Anda membuat kluster AKS, grup sumber daya kedua yang disebut grup sumber daya simpul secara otomatis dibuat untuk menyimpan sumber daya AKS. Untuk informasi selengkapnya, lihat Grup sumber daya simpul. Saat Anda menghapus grup sumber daya untuk kluster AKS, grup sumber daya simpul juga dihapus. Anda juga melihat grup sumber daya NetworkWatcherRG yang dibuat secara default. Grup sumber daya ini digunakan oleh Azure Network Watcher untuk menyimpan data pemantauan. Anda dapat mengabaikan grup sumber daya ini dengan aman. Untuk informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan Azure Network Watcher.
Untuk mengelola kluster Kube, gunakan klien baris perintah Kube, kubectl. kubectl
sudah diinstal jika Anda menggunakan Azure Cloud Shell. Untuk menginstal kubectl
secara lokal, panggil Install-AzAksCliTool
cmdlet.
Konfigurasikan kubectl
untuk terhubung ke kluster Kubernetes menggunakan Import-AzAksCredential
cmdlet. Perintah ini mengunduh informasi masuk dan mengonfigurasi CLI Kube untuk menggunakannya.
Import-AzAksCredential -ResourceGroupName myResourceGroup -Name myAKSCluster
Verifikasi koneksi ke kluster Anda menggunakan kubectl get
perintah . Perintah ini menampilkan 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-11853318-vmss000000 Ready agent 2m26s v1.27.7
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:
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.
Buat file bernama aks-store-quickstart.yaml
dan salin dalam manifes berikut:
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
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 . Buat 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 pemantauan kubectl
.
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.
Jika Anda tidak berencana untuk melalui tutorial AKS, bersihkan sumber daya yang tidak perlu untuk menghindari biaya Azure. Hapus grup sumber daya, layanan kontainer, dan semua sumber daya terkait dengan memanggil Remove-AzResourceGroup
cmdlet.
Remove-AzResourceGroup -Name myResourceGroup
Catatan
Kluster AKS dibuat dengan identitas terkelola yang ditetapkan sistem (opsi identitas default yang digunakan dalam mulai cepat ini), identitas dikelola oleh platform dan tidak memerlukan penghapusan.
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.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik:
Acara
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarangPelatihan
Modul
Proyek Terpandu - Menyebarkan aplikasi ke Azure Kubernetes Service - Training
Selamat datang di pengalaman validasi keterampilan interaktif ini. Menyelesaikan modul ini membantu mempersiapkan Anda untuk Menyebarkan dan mengelola kontainer dengan penilaian Azure Kubernetes Service.
Sertifikasi
Bersertifikat Microsoft: Azure Administrator Associate - Certifications
Menunjukkan keterampilan utama untuk mengonfigurasi, mengelola, mengamankan, dan mengelola fungsi profesional utama di Microsoft Azure.
Dokumentasi
Pelajari cara menyebarkan kluster Kubernetes dengan cepat dan menyebarkan aplikasi di Azure Kubernetes Service (AKS) menggunakan Azure Developer CLI.
Pelajari cara menyebarkan kluster Kubernetes dengan cepat dan menyebarkan aplikasi di Azure Kubernetes Service (AKS) menggunakan Azure CLI.
Pelajari cara menyebarkan kluster Kubernetes dengan cepat dan menyebarkan aplikasi di Azure Kubernetes Service (AKS) menggunakan portal Azure.