Kubernetes di Microsoft Azure

DOCKERKUBERNETESAZUREVISUAL STUDIO CODECLOUDCLOUD NATIVE

kubernetes cluster

Gambar diambil dari kubernetes.io

Konsep dasar Kubernetes sebenarnya tidaklah rumit, seperti digambarkan pada gambar diatas, Kubernetes bertugas untuk menciptakan, memantau hidup & matinya Node yang isinya yaitu aplikasi-aplikasi yang ter-container (docker image).

Intinya keberadaan Kubernetes cluster adalah untuk menghindari zero down time dari layanan ke pengguna sehingga meskipun terjadi gangguan layanan, pengguna publik tidak akan pernah merasakan itu karena Kubernetes akan selalu menghidupkan layanan yang sama atau istilahnya membuat instance dari layanan dan selain itu Kubernetes juga memberikan kemudahan dalam penskalaan layanan dalam menghadapi naiknya jumlah pengguna yang mengakses layanan tersebut.

Lebih lanjut silahkan baca tentang Kubernetes.

Azure

Salah satu cloud computing selain Google, Amazon Web Service maupun Alibaba Cloud yaitu Microsoft yang membuat cloud computing platform yang bernama Azure.

Sebenarnya dokumentasi maupun tutorial dari Microsoft sudah sangat lengkap tentang infrastruktur cloud computation mereka seperti Azure Kubernetes Service, hanya saja karena memang platform Microsoft yang sangat besar seringkali menu-menu ataupun user interface dari portal cloud-nya pun sangat banyak sehingga diperlukan waktu untuk meng-eksplorasi dan membiasakan dalam memakai portal tersebut.

azure

Azure Portal

Pertanyaan Saya yang muncul pertama kali ketika melihat Azure Kubernetes Service adalah

"Bagaimana cara men-deploy aplikasi ke Kubernetes Cluster di Azure?"

Azure Kubernetes Service (AKS)

Percaya atau tidak Azure Kubernetes Service tidak dikenakan biaya apapun alias gratis, hanya saja untuk Node anda akan dikenakan biaya karena memang Node secar fitur seperti komputer biasa yang membutuhkan CPU, RAM dsb meskipun sebenarnya yang dipakai adalah mesin virtual.

Proses pembuatan kluster Kubernetes di Azure menjadi cukup mudah dengan bantuan wizard form, anda bisa mengatur jumlah Node yang mau dipakai berikut jenis Virtual Machine yang akan digunakan sebagai Node.

azure

Membuat kluster Kubernetes

Selanjutnya anda harus menentukan jenis Virtual Machine yang akan dipakai. Aturan umum-nya adalah untul pengembangan 1 Node saja sudah cukup tetapi untuk sistem yang siap produksi setidaknya anda membutuhkan 3 Node atau lebih.

azure

Pilihan VM yang digunakan sebagai Node

Jangan khawatir setelah kluster Kubernetes berhasil dibuat, anda bisa melakukan skala Node melalui menu Node pools.

azure

Penskalaan Node

Deployment Aplikasi

Melalui portal Azure, deployment aplikasi sangatlah mudah karena paltform AKS mendukung import langsung dari repositori seperti Github, Bitbucker, Git ataupun repo di Azure sendiri.

Import Docker

Import proyek dari repositori

yang menjadi catatan adalah pastikan aplikasi yang akan anda deploy di AKS merupakan aplikasi yang bisa di-docker artinya ada berkas Dockerfile didalam repositori tersebut.

Dockerfile

Dockerfile

Kemudian anda bisa meliat hasil deployment pada menu Deployment pada AKS yang telah anda buat (pada gambar dibawah AKS bernama junstone).

Azure secara default akan memberikan namespaces pada hasil deployment (pada gambar dibawah bernama junstonea072)

Namespace

Namespace

pada namespace tersebut akan terdapat pods yang namanya juga diberikan oleh AKS yaitu junstone-0b72

Pods

Pods (klik kanan open image in new tab :))

Akan percuma kalau deployment aplikasi tetapi tidak bisa diakses oleh pengguna, bukan?

Di AKS setelah anda men-deploy aplikasi pada Node kemudian sistem AKS akan memberikan IP eksternal pada aplikasi tersebut.

Anda bisa mengetahui IP eksternal ini pada menu Services and ingresses

service dan ingress

IP Eksternal aplikasi di AKS

Azure CLI

Mungkin cukup memusingkan bagi anda yang biasa bekerja di command line, untungnya Azure juga menyediakan yang namanya Azure CLI yaitu CLI tool untuk berinteraksi dengan cloud computing Azure.

AKS juga menyediakan petunjuk untuk menghubungkan Azure CLI dan kubectl ke Azure Cloud Computing

Azure CLI

Petunjuk untuk koneksi ke AKS melalui Azure CLI

Anda juga bisa menarik query dari kubectl entah itu untuk mengetahui nama Node, jumlah pods, informasi Deployments dsb.

Azure CLI

Visual Studio Code + Kubernetes

Kalau anda memakai Visual Studio Code untuk pengembangan perangkat lunak dan men-deploy aplikasi di Kubernetes anda bisa memakai ekstensi Kubernetes untuk Visual Studio Code.

vsc + kubernetes

Dari VSC anda bisa mengetahui informasi dari kluster seperti nama kluster,namespaces, nodes, pods dll.


Komentar