Sebarkan aplikasi pada kluster Azure Kubernetes Service

Selesai

Perusahaan Anda sedang mencari cara untuk menerapkan layanan penyajian video berbasis cloud Anda. Anda memilih Azure Kubernetes Service (AKS) sebagai platform pengembangan cloud-native Anda. Dengan kluster terkonfigurasi, Anda siap untuk menggunakan salah satu komponen di aplikasi penyajian video Anda. Anda memutuskan untuk menyebarkan versi statis dari website perusahaan Anda, untuk mengeksplorasi proses penyebaran Kubernetes.

Sebelum kita membahas cara penyebaran Kubernetes, mari kita tinjau beberapa langkah yang akan diambil untuk menyebarkan aplikasi serupa ke lingkungan non-Kubernetes.

Misalnya Anda menggunakan komputer virtual (VM) Azure sebagai platform target Anda. Langkah pertama adalah menyiapkan perangkat lunak server untuk meng-host aplikasi. Anda akan:

  • Menginstal sistem operasi.
  • Memastikan untuk memperbarui OS ke patch keamanan dan perangkat lunak terbaru.
  • Menginstal dan mengonfigurasi perangkat lunak server web pada VM Anda.
  • Menyebarkan aplikasi web.

Ulangi proses ini untuk setiap VM baru ketika Anda memutuskan untuk menskalakan situs web untuk menangani peningkatan permintaan dari pelanggan.

Pendekatan alternatif adalah menjalankan situs web pada platform berbasis kontainer seperti Azure Container Instances. Anda tidak perlu khawatir tentang teknologi server yang mendasar, tetapi Anda harus mengonfigurasi dan mengelola beberapa kontainer untuk menggunakan strategi ini secara manual.

Kubernetes dan AKS membantu Anda dalam mengorkestrasi kontainer. Fitur orkestrasi kontainer Kubernetes memudahkan pengelolaan beban kerja pada kluster. Anda menerapkan beban kerja dengan menggunakan kontainer yang dibangun dari gambar kontainer untuk menjalankan aplikasi Anda dalam kluster AKS.

Di sini Anda dapat menjelajahi cara membuat beban kerja di kluster AKS Anda.

Apa itu registri kontainer?

Registri kontainer memungkinkan Anda menyimpan citra kontainer dengan aman di cloud untuk penyebaran di kemudian hari. Anda dapat menganggap registri kontainer sebagai arsip yang menyimpan beberapa versi citra kontainer Anda. Setiap citra yang disimpan memiliki tag yang ditetapkan untuk identifikasi.

Misalnya, Anda mungkin memiliki citra contoso-website:latest, yang akan menjadi versi citra yang berbeda dengan tag contoso-website:v1.0.0.

A diagram that shows how container images are downloaded from a container registry to a Kubernetes cluster by using a manifest file.

Registri kontainer dapat bersifat publik atau privat. Registri privat memerlukan kredensial untuk mengakses dan mengunduh gambar dan merupakan strategi yang Anda ikuti saat menyimpan gambar kontainer.

Kubernetes hanya memungkinkan Anda untuk menyebarkan citra yang dihosting dalam sebuah registri kontainer. Membuat registri kontainer privat biasanya merupakan bagian dari strategi penyebaran AKS standar Anda.

Apa itu pod Kubernetes?

Pod Kubernetes mengelompokkan kontainer dan aplikasi ke dalam struktur logis. Pod-pod ini tidak memiliki kecerdasan, dan terdiri dari satu atau beberapa kontainer aplikasi. Setiap pod memiliki alamat IP, aturan jaringan, dan port yang terbuka.

Misalnya, jika Anda ingin mencari semua beban kerja yang terkait dengan contoso-website, Anda akan mengkueri kluster untuk pod dengan label app dan nilai contoso-website.

Apa itu penyebaran Kubernetes?

A diagram that shows a Kubernetes deployment with a label and three pods.

Penyebaran Kubernetes adalah evolusi dari Pod. Penyebaran membungkus pod menjadi objek cerdas, yang memungkinkan pod untuk meningkatkan skala. Anda dapat dengan mudah menduplikasi dan menskalakan aplikasi Anda untuk mendukung lebih banyak beban tanpa harus mengonfigurasi aturan jaringan yang kompleks.

Penyebaran memungkinkan pengguna untuk memperbarui aplikasi hanya dengan mengubah tag citra tanpa waktu henti. Saat Anda memperbarui penyebaran, alih-alih menghapus semua aplikasi, penyebaran menonaktifkan aplikasi online satu per satu. Kemudian, ia menggantinya dengan versi terbaru. Aspek ini berarti setiap penyebaran dapat memperbarui pod di dalamnya tanpa berdampak pada ketersediaan.

File manifes Kubernetes

File manifes Kubernetes memungkinkan Anda untuk menjelaskan beban kerja dalam format YAML secara deklaratif, dan menyederhanakan manajemen objek Kubernetes.

Bayangkan Anda harus menyebarkan beban kerja secara manual. Anda perlu memikirkan dan mengelola beberapa aspek. Anda harus membuat kontainer, memilih simpul tertentu, membungkusnya dalam sebuah Pod, menjalankan Pod, memantau eksekusi, dan sebagainya.

File manifes berisi semua informasi yang Anda butuhkan untuk membuat dan mengelola beban kerja yang dijelaskan.

Apa itu label Kubernetes?

Label Kubernetes memungkinkan Anda untuk secara logis mengelompokkan objek Kubernetes. Label ini memungkinkan sistem untuk mengkueri kluster untuk objek yang cocok dengan label dengan nama tertentu.

Struktur file manifes

Struktur file manifes berbeda tergantung pada jenis sumber daya yang Anda buat. Namun, berbagi file manifes memiliki petunjuk umum. Petunjuk ini menentukan berbagai aspek, seperti API yang akan digunakan dan jenis beban kerja yang akan dibuat.

Dua entri pertama dalam semua file manifes memiliki dua kunci penting, yaitu apiVersion dan kind. Berikut ini contoh file penyebaran.

apiVersion: apps/v1 # Where in the API it resides
kind: Deployment # The kind of workload we're creating

Kunci apiVersion menentukan titik akhir server API yang mengelola objek yang Anda sebarkan.

Kunci kind menentukan beban kerja yang dibuat penyebaran ini.

Kunci umum lainnya untuk semua file adalah kunci metadata dan name. Semua sumber daya Kubernetes harus memiliki nama. Nama ini masuk ke dalam kunci metadata.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: contoso-website # This will be the name of the deployment

Mengelompokkan objek dalam penyebaran

Penyebaran memanfaatkan label untuk menemukan dan mengelompokkan Pod. Anda menentukan label sebagai bagian dari file manifes penyebaran Anda.

Berikut adalah contoh. Perhatikan bahwa matchLabels nilai yang ditentukan dalam definisi selector, ditambahkan ke definisi spec.

# deployment.yaml
# ...
spec:
  selector:
    matchLabels:
      app: contoso-website
# ...

Dari titik ini, semua file memiliki struktur yang berbeda berdasarkan jenis sumber daya yang ingin dibuat oleh Kubernetes.

Menerapkan file penyebaran

Anda menyebarkan file manifes penyebaran Kubernetes dengan menggunakan kubectl. Berikut ini adalah contoh perintahnya.

kubectl apply -f ./deployment.yaml

Uji pengetahuan Anda

1.

Apa itu registri kontainer?

2.

Apa itu file manifes?