Kubernetes di Microsoft Azure
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.
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.
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.
Jangan khawatir setelah kluster Kubernetes berhasil dibuat, anda bisa melakukan skala Node melalui menu Node pools.
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.
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.
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)
pada namespace tersebut akan terdapat pods yang namanya juga diberikan oleh AKS yaitu junstone-0b72
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
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
Anda juga bisa menarik query dari kubectl
entah itu untuk mengetahui nama Node, jumlah pods, informasi Deployments dsb.
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.
Dari VSC anda bisa mengetahui informasi dari kluster seperti nama kluster,namespaces, nodes, pods dll.