Workshop DevOps Fundamental #1 Jogja

Poster_Devops2.pngHae Jogja.

Saya dan kawan-kawan Qatros akan mengadakan Workshop DevOps Fundamental di Jogja, 20-21 Juli.

Silahkan daftar bagi yang berminat. Slot sangat terbatas.

Workshop ini sangat cocok untuk programmer dan sysadmin yang baru ingin migrasi ke DevOps things.

Tabik.

Bila membutuhkan detail acara, silahkan kontak saya.

Iklan

Migrasi Metabase dari EBS ke Kubernetes

Setelah sukses mencoba Kubernetes di Binar Academy untuk semua service di aplikasi, kerjaan selanjutnya adalah memigrasikan service-service lain. Salah satunya adalah Metabase. Metabase di Binar Academy sebelumnya masih menggunakan AWS EBS (Elastic Beanstalk).

Bagaimana saya memigrasikan Metabase dari EBS ke K8S?

Berikut tahap yang saya lakukan.

  1. Hentikan layanan metabase di EBS.
  2. Catat credential database dari RBS (rds url, username, password, db_name)
  3. Buat YML K8s untuk Metabase.
    YML ini saya temukan di github zenyui | https://github.com/zenyui/metabase-gke. Thanks bro. Saya memodifikasi sesuai kebutuhan saya, K8s with kops on AWS.
  4. Lakukan deployment
    kubectl apply -f recipes/p-metabase.yml
  5. Atur domain ELB ke domain yang diinginkan pada dashboard (saya menggunakan cloudflare)
  6. Lakukan konfigurasi ulang Metabase.
  7. Hapus service Metabase dari AWS EBS.

Berikut YML Metabase:

Semoga membantu.
Estu~

Implementasi Ingress, ELB dan SSL (Bagian 6)

Membaca dari tulisan ini https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-ingress-guide-nginx-example.html untuk mengetahui perbedaan NodePort, LoadBalancer dan Ingress.

Apa itu Ingress?

Di Kubernetes, Ingress adalah objek yang memungkinkan akses ke layanan Kubernetes dari luar cluster Kubernetes. Konfigurasi ini diatur dengan membuat kumpulan peraturan (rules) yang menentukan koneksi masuk mana yang boleh menjangkau layanan apa.

Konfigurasi ini memungkinkan untuk menggabungkan aturan perutean menjadi satu pintu. Misalnya, untuk mengatur alamat example.com/api/v1/ ke layanan api-v1, dan mengatur alamat example.com/api/v2/ ke layanan api-v2. Dengan Ingress, kita dapat mengatur ini tanpa membuat banyak LoadBalancer atau mengekspos setiap layanan di Node. Karena kenaikan jumlah loadbalancer artinya menaikan biaya bulanan.

NGINX Ingress hanya merupakan salah satu implementasi Ingress Controller menggunakan NGINX. Selain NGINX, bisa juga menggunakan Traefik dan lainnya.

ELB (Elastic Load Balancing)

ELB di Kops AWS digunakan sebagai domain akhir yang digunakan user untuk mengakses service. Bentuknya berupa kombinasi acak angka dan huruf seperti berikut aa788cc64fc9911e7b8820e801320750-1559002290.ap-southeast-1.elb.amazonaws.com. Lanjutkan membaca “Implementasi Ingress, ELB dan SSL (Bagian 6)”

Deploy Aplikasi NodeJS di Kubernetes KOPS AWS (Bagian 5)

Sudah install-install, dilanjut mendeploy aplikasi sederhana di K8s. Panduan ini saya sadur dari tautan github ini. Pilih bagian 6 Kops. Pada bagian ini saya berasumsi docker, kubectl, kops sudah terpasang. Cluster k8s sudah dibuat. Dashboard k8s sudah bisa diakses.

image from https://github.com/nathanpeck/nodejs-aws-workshop/tree/master/6%20-%20Kubernetes%20(kops)

Step Ujicoba

Clone Repo

saya membuat garpu dari repo https://github.com/nathanpeck/nodejs-aws-workshop dan menyesuakan sedikit dengan kebutuhan saya.

git clone https://github.com/tuanpembual/nodejs-aws-workshop.git
cd nodejs-aws-workshop/cd 6\ -\ Kubernetes\ \(kops\)

Konsep

Konsepnya adalah ada dua aplikasi nodejs (locations dan characters) yang jalan di port 8081. Kemudian akan dimapping oleh nginx sebagai load balancer. Konfigurasi minimalnya akan seperti ini:

location /api/locations {
  proxy_pass http://locations-service:8081;
}
location /api/characters {
  proxy_pass http://characters-service:8081;
}

Selanjutnya kita akan membangun image dari 2 service tadi (locations dan characters) plus nginx. Kemudian image yang sudah dibangun akan kita unggah ke docker registry (Docker Hub). Selanjutnya kita akan memasang dua aplikasi itu ke cluster k8s. Dilanjutkan dengan mengekpos dua aplikasi itu sehingga bisa diakses publik. Lanjutkan membaca “Deploy Aplikasi NodeJS di Kubernetes KOPS AWS (Bagian 5)”

Merunut Tahun 2018

Sudah dipenghujung tahun 2018, sedikit mengulas balik. Kuucapkan syukur kepada Tuhan untuk semua perjalanan, ke pulau keberapa entah. Awal tahun 2018 merupakan fase lambat menurutku. Tak banyak yang aku lakukan. Masih banyak catatan yang lupa. Beberapa badai pikiran. Ku hampir limbung. Dan buku “Budak” itu masih akan menjadi mimpi yang akan ku tempuh. Ku mulai;

Agustus 2018

  • openSUSE Asia Summit 2018 digelar di Taiwan, ikut nimbrung sebagai pembicara.
  • Mengundurkan diri dari Peentar sebagai DevOps Engineer
  • Mengundurkan diri dari DevOps Master dan
  • Mencoba menjadi Talent Acquisition di Binar Career Hub

September 2018

Terbang ke Ambon, bersama Binar Terangi Bangsa dan Telkomsel. Binar Academy Batch Ambon dimulai. Dan menyelakan diri menapak tilas Pulau Buru (yang catatannya masih dalam draft kepalaku). Lanjutkan membaca “Merunut Tahun 2018”

Memasang Kops dan Membuat Kubernetes Cluster (Bagian 4)

Sudah sampe bagian 4 aja ini. Silahkan membaca bagian satu, dua, tiga dulu.

Di bagian ini saya akan menuliskan urutan pemasangan tools, pembuatan cluster k8s, dan pemasangan dashboard k8s. Di bagian ini belum akan membahas bagaimana menjalankan aplikasi di Kubernetes.

Tahap-tahap instalasi dibawah ini saya ambil dari dokumentasi kops di github:

0. https://github.com/kubernetes/kops/blob/master/docs/aws.md

Pengaturan Environment

Domain=kube.example.com
bucket_name=kube-state-store
KOPS_CLUSTER_NAME=kube.example.com
KOPS_STATE_STORE=s3://${bucket_name}

Menyiapkan Lingkungan Kerja

Perintah dibawah ini dilakukan di lapto/PC yang digunakan untuk memanajemen cluster k8s. Dalam kasus saya adalah Thinkpad x230 dengan OS openSUSE Leap 15.1.

  1. Lakukan installasi AWS CLI. Bisa mengambil dari dokumentasi aws dan lakukan konfigurasi dasar.
  2. Buat IAM khusus kops, bisa mengacu ke panduan diatas
  3. Install kops dan kubectl
    curl -LO https://github.com/kubernetes/kops/releases/download/1.10.0/kops-linux-amd64
    chmod +x kops-linux-amd64
    sudo mv kops-linux-amd64 /usr/local/bin/kops
    
    wget -O kubectl https://storage.googleapis.com/kubernetes-release/release/v1.11.3/bin/linux/amd64/kubectl
    chmod +x ./kubectl
    sudo mv ./kubectl /usr/local/bin/kubectl
    
  4. Atur router 53.
    ID=$(uuidgen) && aws route53 create-hosted-zone --name kube.example.com --caller-reference $ID | jq .DelegationSet.NameServers
    
  5. Lakukan update dns ke CloudFlare dari hasil output sebelumnya (dalam kasus saya).
  6. Atur env
    export bucket_name=kube-state-store
    export KOPS_CLUSTER_NAME=kube.example.com
    export KOPS_STATE_STORE=s3://${bucket_name}
    
  7. Silahkan buat bucket di s3 dengan nama kube-state-store, gunakan webconsole AWS saja.

Lanjutkan membaca “Memasang Kops dan Membuat Kubernetes Cluster (Bagian 4)”

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. Lanjutkan membaca “Implementasi Docker, Kubernetes, Kops di Binar Academy (Bagian 3)”