(Tidak digunakan lagi) Menyebarkan kluster Kubernetes untuk kontainer Linux
Tip
Untuk versi terbaru mulai cepat ini yang menggunakan Azure Kubernetes Service, lihat Mulai Cepat: Menyebarkan kluster Azure Kubernetes Service (AKS).
Peringatan
Azure Container Service (ACS) tidak digunakan lagi. Tidak ada fitur atau fungsionalitas baru yang ditambahkan ke ACS. Semua API, pengalaman portal, perintah CLI, dan dokumentasi ditandai sebagai tidak digunakan lagi.
Pada tahun 2017, kami memperkenalkan Azure Kubernetes Service (AKS) untuk menyederhanakan manajemen, penyebaran, dan operasi Kubernetes. Jika Anda menggunakan orkestrator Kubernetes, silakan migrasikan ke AKS pada 31 Januari 2020. Untuk memulai, lihat bermigrasi ke Azure Kubernetes Service.
Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Container Service di Azure.com.
Dalam mulai cepat ini, kluster Kubernetes disebarkan menggunakan Azure CLI. Aplikasi multi-kontainer yang terdiri dari front end web dan instans Redis kemudian disebarkan dan dijalankan pada kluster. Setelah selesai, aplikasi dapat diakses melalui internet.
Contoh aplikasi yang digunakan dalam dokumen ini ditulis dalam Python. Konsep dan langkah-langkah yang dirinci di sini dapat digunakan untuk menyebarkan gambar kontainer apa pun ke dalam kluster Kubernetes. Kode, Dockerfile, dan file manifes Kubernetes yang telah dibuat sebelumnya yang terkait dengan proyek ini tersedia di GitHub.
Mulai cepat ini mengasumsikan pemahaman dasar tentang konsep Kubernetes, untuk informasi terperinci tentang Kubernetes lihat dokumentasi Kubernetes.
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Azure Cloud Shell
Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.
Untuk memulai Azure Cloud Shell:
Opsi | Contoh/Tautan |
---|---|
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. | |
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. | |
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. |
Untuk menggunakan Azure Cloud Shell:
Mulai Cloud Shell.
Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.
Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.
Pilih Masukkan untuk menjalankan kode atau perintah.
Jika Anda memilih untuk menginstal dan menggunakan CLI secara lokal, mulai cepat ini mengharuskan Anda menjalankan Azure CLI versi 2.0.4 atau yang lebih baru. Jalankan az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, Pasang Azure CLI.
Buat grup sumber daya
Buat grup sumber daya dengan perintah az group create. Grup sumber daya Azure adalah grup logis tempat sumber daya Azure disebarkan dan dikelola.
Contoh berikut membuat grup sumber daya bernama myResourceGroup di lokasi westeurope .
az group create --name myResourceGroup --location westeurope
Output:
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
"location": "westeurope",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Membuat kluster Kube
Buat kluster Kubernetes di Azure Container Service dengan perintah az acs create . Contoh berikut membuat kluster bernama myK8sCluster dengan satu simpul master Linux dan tiga simpul agen Linux.
az acs create --orchestrator-type kubernetes --resource-group myResourceGroup --name myK8sCluster --generate-ssh-keys
Dalam beberapa kasus, seperti dengan uji coba terbatas, langganan Azure memiliki akses terbatas ke sumber daya Azure. Jika penyebaran gagal karena inti yang tersedia terbatas, kurangi jumlah agen default dengan menambahkan --agent-count 1
ke perintah az acs create .
Setelah beberapa menit, perintah menyelesaikan dan mengembalikan informasi berformat json tentang kluster.
Menyambungkan ke kluster
Untuk mengelola kluster Kubernetes, gunakan kubectl, klien baris-perintah Kubernetes.
Jika Anda menggunakan Azure Cloud Shell, kubectl sudah diinstal. Jika ingin menginstalnya secara lokal, anda dapat menggunakan perintah az acs kubernetes install-cli .
Untuk mengonfigurasi kubectl untuk terhubung ke kluster Kubernetes, jalankan perintah az acs kubernetes get-credentials . Langkah ini mengunduh kredensial dan mengonfigurasi Kubernetes CLI untuk menggunakannya.
az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster
Untuk memverifikasi sambungan ke kluster Anda, gunakan perintah kubectl get untuk mengembalikan daftar node kluster.
kubectl get nodes
Output:
NAME STATUS AGE VERSION
k8s-agent-14ad53a1-0 Ready 10m v1.6.6
k8s-agent-14ad53a1-1 Ready 10m v1.6.6
k8s-agent-14ad53a1-2 Ready 10m v1.6.6
k8s-master-14ad53a1-0 Ready,SchedulingDisabled 10m v1.6.6
Jalankan aplikasi
File manifes Kubernetes mendefinisikan status yang diinginkan untuk kluster, termasuk gambar kontainer apa yang harus dijalankan. Untuk contoh ini, manifes digunakan untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi Azure Vote.
Buat file bernama azure-vote.yml
dan salin ke dalamnya YAML berikut. Jika Anda bekerja di Azure Cloud Shell, file ini dapat dibuat menggunakan vi atau Nano seolah-olah bekerja pada sistem virtual atau fisik.
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-back
spec:
containers:
- name: azure-vote-back
image: redis
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/v1beta1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-front
spec:
containers:
- name: azure-vote-front
image: microsoft/azure-vote-front:v1
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
Gunakan perintah kubectl create untuk menjalankan aplikasi.
kubectl create -f azure-vote.yml
Output:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Uji aplikasi
Saat aplikasi dijalankan, layanan Kubernetes dibuat yang mengekspos front end aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini.
Untuk memantau kemajuan, gunakan perintah lkubectl get service dengan argumen --watch
.
kubectl get service azure-vote-front --watch
Awalnya EXTERNAL-IP untuk layanan azure-vote-front muncul sebagai tertunda. Setelah alamat EXTERNAL-IP berubah dari tertunda ke alamat IP, gunakan CTRL-C
untuk menghentikan proses kubectl watch.
azure-vote-front 10.0.34.242 <pending> 80:30676/TCP 7s
azure-vote-front 10.0.34.242 52.179.23.131 80:30676/TCP 2m
Sekarang Anda dapat menelusuri ke alamat IP eksternal untuk melihat Aplikasi Azure Vote.
Menghapus klaster
Ketika kluster tidak lagi diperlukan, Anda dapat menggunakan perintah az group delete untuk menghapus grup sumber daya, layanan kontainer, dan semua sumber daya terkait.
az group delete --name myResourceGroup --yes --no-wait
Mendapatkan kode
Dalam mulai cepat ini, gambar kontainer yang telah dibuat sebelumnya telah digunakan untuk membuat penyebaran Kubernetes. Kode aplikasi, Dockerfile, dan file manifes Kube terkait tersedia di GitHub.
https://github.com/Azure-Samples/azure-voting-app-redis
Langkah berikutnya
Dalam mulai cepat ini, Anda menyebarkan kluster Kubernetes dan menyebarkan aplikasi multi-kontainer ke dalamnya.
Untuk mempelajari lebih lanjut tentang Azure Container Service, dan menelusuri kode lengkap untuk contoh penyebaran, lanjutkan ke tutorial kluster Kubernetes.