Contents

Quick Install OKD 4 di AWS

OKD 4 memiliki installer yang menawarkan fleksibilitas dan kemudahan bagi pengguna. Proses instalasi hanya akan memakan waktu sekitar 40 menit hingga cluster OKD sudah dapat berjalan dan siap untuk dikelola.

OKD 4

OKD adalah distribusi dari Kubernetes yang menjadi upstream dari pengembangan OpenShift. OKD merupakan versi community dari OpenShift, yang dapat digunakan tanpa biaya subscription. Kode sumbernya dipublikasikan pada repositori Github, dan semua orang dapat berkontribusi untuk mengembangkannya. Silahkan lihat perbandingan antara OKD 4 dengan OKD 3 pada dokumentasi resmi OKD.

Jenis Instalasi

Pada umumnya terdapat 2 macam instalasi OKD 4 seperti berikut.

  1. IPI (Installer-Provisioned Infrastructure). Dengan metode IPI, installer akan bertindak sepenuhnya dalam proses instalasi cluster. Setiap machine harus mampu mengakses internet untuk menarik images yang diperlukan untuk inisialisasi ketika deployment cluster. IPI merupakan cara paling cepat untuk membangun cluster OKD yang dapat kita implementasikan pada AWS (Amazon Web Service), GCP (Google Cloud Platform), Azure, hingga baremetal. Dalam artikel ini saya akan menggunakan IPI sebagai metode instalasi.

  2. UPI (User-Provisioned Infrastructure). Mirip dengan IPI, namun lebih advanced, di mana kita dapat menggunakan metode UPI jika benar-benar concern terhadap keamanan. Biasanya cluster akan membutuhkan sebuah proxy dan akses ke internet akan lebih dibatasi. Karena akses ke internet yang lebih ketat, maka cluster juga memerlukan mirror registry yang lebih spesifik. UPI cenderung lebih rumit, namun memiliki pilihan konfigurasi yang sangat beragam dibandingkan metode IPI, misalnya seperti mengganti sistem operasi machine dengan RHCOS (Red Hat Enterprise Linux CoreOS).


Installation Workflow

OKD menggunakan sebuah bootstrap machine temporer pada saat inisialisasi konfigurasi guna menyediakan informasi yang diperlukan bagi control plane. Bootstrap machine dihidupkan dengan sebuah file konfigurasi bernama Ignition yang mendeskripsikan bagaimana proses pembangunan cluster akan dilakukan. Bootstrap machine akan membuat sebuah master machine yang digunakan sebagai control plane. Dan control plane kemudian akan membuat compute machine atau yang biasa disebut sebagai worker machine.

/quick-install-okd-4-di-aws/proses-bootstraping.png
Proses Bootstraping

Setelah semua machine pada cluster di-inisialisasi, maka bootstrap machine akan di-destroy. Jika menggunakan metode UPI, kita perlu melakukan beberapa proses di atas secara manual.


Minimum Requirements

OKD 4 memiliki syarat minimum spesifikasi sistem yang cenderung mirip dengan OKD 3. Berikut ini adalah spesifikasi singkat sebagai gambarannya.

Host Specs
Masters 4 vCPUs dan 16 GB RAM
Nodes 1 vCPUs dan 8 GB RAM

Jika menggunakan AWS sebagai host, maka by-default OKD installer akan membuat instance dengan tipe m5.xlarge sebagai master dan tipe m5.large sebagai worker. Untuk lebih lengkapnya silahkan baca spesifikasi minimum di dokumentas resmi OKD dan jenis-jenis dari instance AWS EC2.


Prerequisites

Sebelum melakukan instalasi lebih lanjut, pastikan beberapa hal berikut sudah terpenuhi.

Akses AWS

Pasang paket aws-cli pada komputer lokal.

1
$ sudo pacman -Sy aws-cli
Perhatian
Dalam artikel ini saya akan menggunakan AWS Programmatic Access sebagai credentials untuk mengelola AWS menggunakan aws-cli. Untuk informasi lebih lanjut silahkan baca dokumentasi AWS CLI.

Saya memiliki AWS Programmatic Access yang terdiri dari aws_access_key_id dan aws_secret_access_key. Masukkan kedua key tersebut ke dalam konfigurasi aws cli.

1
2
$ mkdir -p ~/.aws
$ vim ~/.aws/credentials

Isi file credentials dengan kedua key yang kita meliki, sehingga kurang lebih akan manjadi seperti berikut.

1
2
3
[default]
aws_access_key_id=AKIA3ANXUSNAUAXXXXXX
aws_secret_access_key=+JDR1HWw4vrcFrLqbf+ewv/nJL/L6TlVAhXXXXXX

SSH Private Key

Kita perlu menambahkan SSH key ke agent dan installer untuk menampilkan informasi ketika proses instalasi berjalan, atau untuk melakukan pengelolaan lebih lanjut terhadap cluster menggunakan installer. Di sini saya sudah memiliki SSH key seperti berikut.

1
2
3
4
/home/pwn3r/.ssh
├── id_rsa
├── id_rsa.pub
└── known_hosts

Jika belum memiliki SSH key kita dapat membuatnya dengan ssh-keygen.

1
$ ssh-keygen -t rsa -b 4096 -N '' -f ~/.ssh/id_rsa 

Kemudian jalankan ssh-agent di background.

1
$ eval "$(ssh-agent -s)"

Lalu tambahkan SSH key ke ssh-agent.

1
$ ssh-add ~/.ssh/id_rsa

Unduh Installer

Program installer dapat diunduh dari https://github.com/openshift/okd/releases.

/quick-install-okd-4-di-aws/openshift-installer.png
Installer OKD 4

Untuk lebih mudahnya saya akan membuat sebuah direktori baru bernama okd pada home directory dan mengunduh installer ke dalam direktori tersebut.

1
2
3
$ mkdir ~/okd
$ cd ~/okd
$ wget https://github.com/openshift/okd/releases/download/4.6.0-0.okd-2020-12-12-135354/openshift-install-linux-4.6.0-0.okd-2020-12-12-135354.tar.gz
Perhatian
Pastikan URL installer untuk perintah wget di atas sesuai dengan versi yang benar. Pada saat artikel ini diterbitkan, OKD terbaru berada pada versi 4.6.

Ekstrak file tar.gz dengan perintah berikut.

1
$ tar -xvf openshift-install*.tar.gz

Kita akan memiliki sebuah file bernama openshift-install, jadikan file tersebut menjadi executable.

1
$ chmod +x openshift-install

Instalasi

Untuk melakukan instalasi kita cukup menjalankan satu perintah seperti berikut.

1
$ ./openshift-install create cluster --log-level=info 

Selanjutnya installer akan meminta beberapa informasi yang dibutuhkan, silahkan pilih atau isi sesuai dengan kebutuhan. Pull Secret bisa diperoleh dari situs Red Hat OpenShift Cluster Manager. Cukup tekan Copy pull secret dan paste pada terminal ketika installer memintanya.

/quick-install-okd-4-di-aws/pull-secret.png
Pull Secret

Hasil

Proses akan berlangsung sedemikian rupa secara otomatis. Pada umumnya intalasi cluster OKD dengan konfigurasi default akan berlangsung sekitar 40 menit. Jika berhasil kurang lebih akan muncul tampilan seperti berikut.

/quick-install-okd-4-di-aws/proses-instalasi.png
Proses Instalasi


Pengujian

Kita akan melakukan beberapa pemeriksaan terhadap cluster OKD 4. Selain lewat web browser, kita dapat menggunakan oc atau origin-client. Jika belum memilikinya maka lakukan pemasangan paket pada komputer lokal seperti berikut.

1
$ yay -Sy origin-client
Info
Pada distro Arch-based, origin-client tersedia pada AUR (Arch User Repository). Untuk melakukan instalasi paket dari AUR, saya menggunakan AUR Helper bernama yay.

Login sebagai System Admin

Untuk bertindak sebagai sistem admin melalui perintah oc, kita me-export variabel environment seperti berikut.

1
$ export KUBECONFIG=/home/pwn3r/okd/auth/kubeconfig

Kemudian jalankan periksa user yang sedang berjalan di sesi oc saat ini.

1
$ oc whoami

Harusnya akan muncuk tampilan seperti berikut.

1
system:admin

Periksa Nodes

Coba periksa apakah semua node sudah dalam keadaan berjalan dengan oc.

1
$ oc get nodes

Kurang lebih akan muncul tampilan seperti berikut.

1
2
3
4
5
6
7
NAME                                         STATUS   ROLES    AGE     VERSION
ip-10-0-130-52.us-west-1.compute.internal    Ready    master   5h41m   v1.19.2+7070803-1008
ip-10-0-132-253.us-west-1.compute.internal   Ready    master   5h41m   v1.19.2+7070803-1008
ip-10-0-155-103.us-west-1.compute.internal   Ready    worker   5h31m   v1.19.2+7070803-1008
ip-10-0-166-37.us-west-1.compute.internal    Ready    worker   5h32m   v1.19.2+7070803-1008
ip-10-0-225-80.us-west-1.compute.internal    Ready    master   5h41m   v1.19.2+7070803-1008
ip-10-0-240-130.us-west-1.compute.internal   Ready    worker   5h32m   v1.19.2+7070803-1008

Terlihat bahwa terdapat 3 node yang bertindak sebagai master, dan 3 node lain sebagai worker.

Scaling MachineSet

Periksa machineset yang ada dengan perintah berikut.

1
$ oc get machineset -n openshift-machine-api

Maka akan tampil machineset yang ada pada OKD.

1
2
3
NAME                             DESIRED   CURRENT   READY   AVAILABLE   AGE
itglab-f2l75-worker-us-west-1a   2         2         2       2           5h48m
itglab-f2l75-worker-us-west-1b   1         1         1       1           5h48m

Artinya machineset itglab-f2l75-worker-us-west-1a memiliki replika sebanyak 2 buah. Sedangkan itglab-f2l75-worker-us-west-1b hanya memiliki 1 replika. Sekarang coba lakukan scaling supaya machineset memiliki 2 buah replikasi.

1
$ oc scale --replicas=2 machinesets itglab-f2l75-worker-us-west-1b -n openshift-machine-api

Biasanya kita perlu menunggu beberapa saat supaya machine berjalan dan kemudian bergabung pada machineset itglab-f2l75-worker-us-west-1b. Lama durasi tergantung pada spesifikasi sistem yang kita gunakan di AWS. Periksa apakah scaling berhasil dilakukan dengan menjalankan kembali perintah berikut.

1
$ oc get machineset -n openshift-machine-api

Jika berhasil maka semua machineset akan menjadi seperti berikut.

1
2
3
NAME                             DESIRED   CURRENT   READY   AVAILABLE   AGE
itglab-f2l75-worker-us-west-1a   2         2         2       2           5h58m
itglab-f2l75-worker-us-west-1b   2         2         2       2           5h58m

Web Console OKD

Sekarang coba akses OKD Console melalui web browser dengan alamat dan kata sandi seperti yang terlihat sebelumnya menggunakan username kubeadmin.

/quick-install-okd-4-di-aws/okd-web-console.png
OKD Web Console

Destroy Cluster

Installer OKD 4 juga memiliki fitur untuk menghapus semua resource yang telah dibuat sehingga saya tidak perlu repot-repot membersihkan satu region di AWS Console. Destroy cluster dapat dijalankan dengan perintah seperti berikut.

1
$ ./openshift-install destroy cluster --log-level=info

Kesimpulan

OKD 4 memiliki installer yang tergolong mudah untuk diimplementasikan (pada AWS). Setiap node OKD 4 berjalan dengan sistem operasi FCOS (Fedora Core OS), namun jika kita menggunakan OpenShift maka yang digunakan adalah RHCOS (Red Hat Enterprise Linux CoreOS). OKD 4 menggunakan Prometheus untuk mendapatkan metric yang berguna untuk monitoring. Container Runtime yang dipakai oleh OKD 4 adalah CRI-O.


Referensi