PVC EBS di Kops Kubernetes AWS

Nitip catatan. PVC ini menggunakan abstraksi Dynamic Volume Provisioning. Sehingga tidak membutuhkan inisiasi volume-ID dan PV namun langsung ke PVC.

Berikut yaml untuk implementasi PVC EBS di Kubernetes AWS hasil kops.

p-slow-storageclass.yaml

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: slow
provisioner: kubernetes.io/aws-ebs
parameters:
  type: io1
  zones: ap-southeast-1a
  iopsPerGB: "10"
  fsType: ext4
Lanjutkan membaca “PVC EBS di Kops Kubernetes AWS”

Mengelola Beberapa Kluster Kubernetes dalam Satu Workspace

Bahan Bacaan:

Idealnya berapapun kluster kubernetes yang berhasil dibuat, tetap akan mudah dikelola hanya dalam satu workspace. Workspace yang saya maksud adalah satu tab terminal di satu user di sistem operasi yang berjalan di laptop yang biasa saya gunakan untuk bekerja.

Sejak beberapa minggu kemaren hingga beberapa bulan kedepan, sepertinya jumlah kluster Kubernetes yang tim saya kelola akan naik secara berkala. Kenaikan jumlah kluster akibat kebutuhan bisnis, pemisahan beberapa produk, migrasi dan lain lain.

Kenaikan ini menyebabkan tim saya sebagai penjaga lilin dihadapkan bagaimana sih mengelola beberapa kluster kubernetes dengan mudah.

Keyword: Kubectl, Config, Context

nobody

Dalam praktik ini, saya memiliki dua buah kluster. k8s-siak-cluster dan k8s-kampar-cluster. Masing masih memiliki file kube config bawaan.

Lanjutkan membaca “Mengelola Beberapa Kluster Kubernetes dalam Satu Workspace”

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