Mengganti Ukuran Hardisk ECS pada Kluster Kubernetes di Alibaba Cloud

Bacaan:

Langkah – Langkah:

Ada 4 langkah utama yang dilakukan untuk mengubah ukuran hardisk, yaitu:

  1. Keluarkan node dari kluster kubernetes
  2. Lakukan perubahan ukuran disk dari Console ECS Alibaba Cloud
  3. Lakukan perubahan partisi dari dalam sistem operasi.
  4. Kembalikan node ke kluster kubernetes
Lanjutkan membaca “Mengganti Ukuran Hardisk ECS pada Kluster Kubernetes di Alibaba Cloud”

High Availability Kubernetes Cluster di Alibaba Cloud

Catatan: Tidak semua yang saya tulis ini adalah hal benar, dan dapat diimplementasikan mentah-mentah. Saya baru sampai diposisi, “Ini Jalan”, tapi belum tau bagian mana yang belum baik dan butuh ditunning.

Estu

Hae, sudah lama g nulis teknikal. Karena beberapa pekan, bulan terakhir ini masih terhipnotis pada tulisan piknik. Jadi balik ke judul. dan ke kubernetes.

Setelah sebelumnya menggunakan Kubernetes di AWS dengan jumawanya. Pake kops loh. Jumawa sejak awal saya makai kubernetes untuk production, agustus 2018.
di saat kawan-kawan di jogja pada make k8s di GCP. Macam orang bingung kalo bertanya k8s di AWS dan kops saat itu.

Kemudian di pertengahan Agustus 2019, saya berpindah tempat ngetik. Tugas pertama. beres-beres mesin dan migrasi k8s. Saya bilang diawal, sanggup.
Di hari pertama masuk ada mantra ajaib.

Kita pake Alicloud bang :D.

Someone

Saya nyengir cukup lebar. Bagaimana masang kubernetes di AliCloud? Pikiran pertama, menggunakan kops di alicloud. Setelah mencari catatan-catatan di github kops https://github.com/kubernetes/kops/issues/4127 still on WIP but not know when will release.

Mencari patokan harga servise ACK, Kubernetes Service on Alicloud, sepertinya belum masuk. Sejujurnya saya belum terlalu paham cara menggunakan dashboard Alicloud. hanya ngasal klik klik. Berarti balik ke semi-semi kubernetes baremetal.

Mencari tulisan-tulisan lain, prove on concept tentang K8S HA mengantarkan saya ke beberapa tulisan:

Saya kemudian mengikuti panduan kedua dengan beberapa perubahan secukupnya.

Lanjutkan membaca “High Availability Kubernetes Cluster di Alibaba Cloud”

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)”

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)”