Kubernetes

OpenShift Origin (OKD) pada Linux Ubuntu


OKD on Ubuntu 18.04

Selamat datang teman teman, pernah mendengar Kubernetes? Yup tools besar besutan Google tentang orkrestrasi container sudah sangat marak digunakan pada production pada zaman ini. Tidak kalah menarik dan besar pula tools yang satu ini, yang disebut sebagai OpenShift Origin (OKD) yang akan kita coba pada Ubuntu 18.04 dan mencoba untuk deploy satu service menggunakan nginx ingress seperti pada umumnya. Tanpa berlama lama langsung saja kita pergi ke cara instalasi OKD.


Environment :

1. Ubuntu 18.04

2. OpenShift Origin OKD


Praktik :

1. Update Dependencies Ubuntu :

$ apt update -y && apt-get full-upgrade -y

2. Instalasi Docker :

Kita perlu siapkan komponen komponen Docker untuk melakukan provisioning OKD.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
$ sudo apt update && sudo apt -y install docker-ce
$ sudo usermod -aG docker $USER

3. Unduh Paket OKD :

$ wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
$ tar xvf openshift-origin-client-tools*.tar.gz
$ cd openshift-origin-client*/
$ sudo mv oc kubectl /usr/local/bin/

Silahkan cek versi OKD yang sudah terinstall :

$ oc version

4. Beberapa tambahan konfigurasi pada Docker :

$ cat << EOF | sudo tee /etc/docker/daemon.json
{
"insecure-registries" : [ "172.30.0.0/16" ]
}
EOF
$ sudo systemctl restart docker

5. Nyalakan Kluster :

Command untuk instalasi otomatis :

$ oc cluster up

Command untuk pendefinisian endpoint kluster :

$ oc cluster up — public-hostname=192.168.0.135

6. Akses Dashboard :

OKD menyediakan Dashboard yang cukup ciamik, kalian bisa mengaksesnya dengan mengunjungi http://ip_kluster:8443, Saya menggunakan ip 192.168.0.135 sebagai IP Kluster maka saya akan akses pada http://192.168.0.135:8443

Dashboard sudah bisa diakses, untuk mengetahui password dan username kalian bisa menggunakan credential default :

Username : developer
Password : developer

7. Percobaan Deploy suatu service :

Setelah kita dapat masuk ke dalam dashboard yang sudah diberikkan, kita bisa langsung deploy service seperti K8s pada umumnya, yaitu menggunakan file yaml ataupun langsung menggunakan search image yang ada pada DockerHub. Disini saya akan mencoba untuk deploy menggunakan file Yaml.

Silahkan pergi ke Project kalian lalu Overview :

Gunakan Import YAML / JSON :

Copy paste YAML yang sudah kalian desain dan klik create. Disini saya menggunakan template HelloWorld.yaml .

Deploy Berhasil :

Kita akan mencoba mengakses dengan bantuan Nginx sebagai ingress seperti pada K8s. Untuk mencobanya, pertama tama pastikan kita sudah membuat service (cluster ip,dsb) lalu kita expose clusterip ke Route Service.


Untuk Expose, kita gunakan CLI :

a. Login :

$ oc login -u developer

b. Expose service :

Disini karena aplikasi berlum memiliki service sama sekali, maka saya akan membuat service clusterIP lalu saya akan mengekspose dengan teknik Route (NginxIngress).

$ oc get deploy
$ oc expose deploy/hello-world
$ oc expose service/hello-world

Dalam hal ini, aplikasi sudah terekspose menggunakan teknik Route. Kalian bisa melihat endpoint route menggunakan GUI ataupun CLI :

a. Menggunakan CLI :

$ oc get route

b. Menggunakan GUI :

Silahkan pergi ke Dashboard > Your_Project > Applications > Routes

Didapatkan endpoint hello-world-devops.192.168.0.135.nip.io dan kita akan coba akses.


8. Akses Aplikasi :

Endpoint yang didapatkan hello-world-devops.192.168.0.135.nip.io

Taraaa, kita sudah berhasil ekspose aplikasi pada OKD kluster. Silahkan untuk explore explore lebih lanjut pada OKD kluster ini.


Beberapa command penting

$ oc login -u username #untuk login pada CLI
$ oc get svc #untuk lihat Service
$ oc get pods #untuk lihat Pod
$ oc get deploy #untuk lihat Deployment
$ oc get route $untuk lihat Route
$ oc exspose service/nama_service #untuk ekspose Service
$ oc expose deploy/nama_deployment #untuk ekspose Deployment
Silahkan baca baca lebih lanjut pada
$ oc --help

Kendala yang sering terjadi

Dashboard tidak bisa diakses, redirect ke endpoint 127.0.0.1 . Hal ini bisa diatasi dengan :

$ oc cluster down
$ rm -rf openshift.local.clusterup
$ rm -rf .kube/
Silahkan definisikan sesuai dengan IP Public/Private network kalian.
Disini menggunakan contoh IP 192.168.0.135
$ oc cluster up --public-hostname=192.168.0.135
Jika masih gagal :
$ oc cluster down
$ nano ./openshift.local.clusterup/openshift-controller-manager/openshift-master.kubeconfig
Ubah Server ke endpoint IP kalian, lalu nyalakan kembali kluster.
$ oc cluster up --public-hostname=192.168.0.135


Terima kasih sudah mampir dan membaca.