Implementasi Docker, Kubernetes, Kops di Binar Academy (Bagian 3)

Setelah bagian 1 dan bagian 2. Mari mbahas ke yang lebih serius.

Kubernetes

Kubernetes (selanjutnya ditulis k8s) adalah salah satu orchestration untuk docker. Sebelum ke k8s saya sempat menyicip docker swarm dengan dua mesin. Namun proses ini menurut saya kurang pas untuk implementasi di Binar Academy. Kubernetes merupakan tool bersumber terbuka yang awalnya didesain oleh Google dan kemudian dipelihara oleh Cloud Native Computing Foundation.

Saya pertama belajar menggunakan minikube dengan 2 mesin di Digital Ocean. Tantangan pertama saya gagal paham menggunakan k8s dashboard. Kalo ingat masa itu adalah lucu sekali. Dan masih bingung dengan istilah: pods, deployment. Kemudian juga gagal dalam konfigurasi network menggunakan cinder. Padahal runut mengikuti panduan resmi. Entahlah, mungkin ada langkah yang luput dan sebagainya.

K8s Cluster

Ilustrasi dari https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/

Minikube

Silahkan install minikube dan ikuti panduan hello-minikube.

Tautan berikut juga layak untuk dibaca:

Setelah membaca tautan diatas diharapkan sedikit paham apa itu k8s, bagaimana cara bekerjanya.

Konsep Kubernetes yang saya pahami

Untuk mencoba k8s minimal kita membutuhkan 2 mesin, 1 master, 1 node. Kemudian dilanjutkan memasang komponen k8s di tiap-tiap node. Kemudian di mesin yang kita pilih menjadi master, dijalankan inisiasi sebagai master. Selanjutnya di mesin yang kita pilih sebagai node, lakukan penggabungan cluster dengan memasukkan token hasil keluaran master. Jika ingin menambah node, silahkan install komponen k8s kemudian join cluster dengan token yang sama tadi. Ini adalah cara manualnya. Cara cepatnya, pakai Kops.

Tiga komponen k8s, yaitu:

  • kubeadm: the command to bootstrap the cluster.
  • kubelet: the component that runs on all of the machines in your cluster and does things like starting pods and containers.
  • kubectl: the command line util to talk to your cluster.

Dasar Menjalankan Aplikasi dalam K8s

Ini baru memasang pondasi. Selanjutnya adalah bagaimana menjalankan sebuah aplikasi di k8s. Ini menjelaskannya gmna ya?

Sederhananya ada 2 pernak-pernik. Pods dan Service

  • Pods secara sederhana adalah docker itu sendiri. Jadi pods merupakan satu intentitas container (yang isinya docker tadi).
  • Services (svc) adalah bagaimana pods tadi bisa diakses diluar baik local cluster maupun publik.

Selain 2 hal tadi, ada juga deployment. Yaitu bagaimana pods, service dan elemen lainnya digabung dalam sebuah configurasi. Bagiamana komponen-komponen diatas dirakit? Jawabannya menggunakan configurasi dalam sebuah file yml.

K8s dan Google

Binar masih menggunakan layanan AWS untuk platform awan. Sedangkan GCE sebagai penyedia layanan awan dari Google lebih banyak memberikan dukungan native ke k8s. Pernah goyah dan galau.

Akhirnya saya nyoba riset, membangun k8s cluster manual menggunakan EC2 AWS dengan 2 server. Dan g mulus-mulus amat. Kemudian nyoba dengan bantuan ansible, mulai dari pengaturan SG, type node, hingga AMI. Saya juga sempat ngulik untuk membangun AMI menggunakan packer dari HanshiCorp.

Kembali membaca buku-buku referensi, menemukan kata kunci KOPS dan AWS. Mengantarkan saya mencoba langsung di level lingkungan produksi.

Beberapa kesulitan saya memasang k8s di AWS adalah:

  • Masalah domain, karena AWS sebenarnya menyediakan layanan route53. Binar menggunakan Cloudflare di beberapa bagian. Kops membutuhkan DNS sendiri dalam berkomunikasi (etcd dst)
  • Export service, kata kunci ini adalah ELB dan Ingress-NGINX.
  • Manajemen SSL Wildcard
  • Dan masalah utama adalah memigrasikan service yang ada (under vps) untuk bisa jalan menggunakan docker. Ini pikir keri, yang penting k8s kepasang dulu.

Kops

Funny Fact: Riset K8s on Kops mahal. Biaya sewa server minimalnya lumayan bikin cc mengkerut. Wkkk

Apa itu Kops?

kops atau Kubernetes Operations adalah salah satu projek resmi dari Kubernetes untuk memanajemen cluster K8s di lingkungan produksi. Saat ini kops merupakan tool terbaik untuk membuat cluster k8s di Amazon Web Services.

Kops digunakan mulai dari deklarasi konfigurasi, hingga scaling cluster yang sudah ada. Berikut fitur utama dari Kops:

  • Deploy clusters to existing virtual private clouds (VPC) or create a new VPC from scratch
  • Supports public & private topologies
  • Provisions single or multiple master clusters
  • Configurable bastion machines for SSH access to individual cluster nodes
  • Built on a state-sync model for dry-runs and automatic idempotency
  • Direct infrastructure manipulation, or works with CloudFormation and Terraform
  • Rolling cluster updates
  • Supports heterogeneous clusters by creating multiple instance groups

Petikan diatas saya sadur dari cloudacademy dan github kops. Panduan memasang kops bisa mengacu ke wiki k8s berikut dan panduan dari halaman resmi AWS.

Silahkan ditonton demo kops dari short ASCII cast demo. Ini dulu untuk tulisan bagian ke tiga. Silanjutnya adalah instalasi kops dan pembuatan cluster k8s (yang sepertinya akan berbeda judul). Semoga belum mual baca tulisan ini.

Estu~

 

Iklan

3 tanggapan untuk “Implementasi Docker, Kubernetes, Kops di Binar Academy (Bagian 3)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.