Implementasi Docker, Kubernetes, Kops di Binar Academy (Bagian 1)

Awal Cerita

Kali ini saya akan cerita (iya cerita, bukan tutorial). Bagaimana saya kenalan dengan docker, apa saja yg saya lakukan, dan bagaimana saya meracuni lingkungan pengembangan melalui docker. Saya sendiri masih merasa kesulitan untuk mengajarkan docker kepada orang lain. Bingung harus memulai dari mana.

Proses belajar docker ini menghantarkan saya dalam proses yang cukup lama. Saya kembali lagi mendalami docker Maret 2018. Dalam kurun waktu 6 bulan terakhir ini merupakan proses yang cukup intens. Peluh dan spaneng yang dikeluarkan menjadi catatan berarti buat saya. Mulai dari membeli buku (beberapa judul yang akhirnya selesai saya baca), course online yang belum jadi saya mulai, membaca dokumentasi satu ke dokumentasi lainnya. Hingga menjadi bunga tidur dalam minggu-minggu penuh tekanan. Namun proses tidak pernah mengkhianati hasil.

Daftar Buku

Saya kebetulan melihat share facebook dari pak Utian Ayuba, promo beli 15 buku 25USD Mei 2018 silam. Humble Book Bundle Dev Ops by Packt. Ya sudah saya beli. Kata kunci yang saya cari adalah: docker, swarm, kubernetes. Berikut daftar buku ditulis berdasarkan saran urutan membaca:

  • Docker Cookbook By Neependra Khare, June 2015
  • Mastering Docker By Scott Gallagher, December 2015
  • Continuous Delivery with Docker and Jenkins By Rafał Leszko August 2017
  • Deployment with Docker By Srdjan Grubor, November 2017
  • Kubernetes Cookbook By Hideto Saito, Hui-Chuan Chloe Lee, Ke-Jou Carol Hsu, June 2016
  • Mastering Kubernetes By Gigi Sayfan, May 2017
  • Getting Started with Kubernetes – Second Edition By Jonathan Baier, May 2017
  • DevOps with Kubernetes By Hideto Saito, Hui-Chuan Chloe Lee, Cheng-Yang Wu, October 2017

Kemudian satu buku tambahan atas rekomendasi mas Agung Setiyawan

  • Docker for Rails Developers by Rob Isenberg, September 2018

Dan buku terakhir yang belum selesai saya baca,

  • Kubernetes on AWS by Ed Robinson, November 2018

Teknologi

Dalam hal ini ada beberapa tools yang akan saya sebutkan. Diantaranya:

  • Docker
  • Docker Hub
  • Docker-Compose
  • Kubernetes
  • Kops
  • Gitlab
  • Gitlab-CI
  • Gitlab-Runner
  • Nexus Repository
  • Sonarqube

Percobaan

Aplikasi yang saya gunakan untuk percobaan adalah web monolith yg ada api dan CMS nya berjalan diatas ruby on rails, dengan tambahan redis, sidekiq dan postgresql. Catatan-catatan ini bisa dicapai karena bantuan kawan-kawan di Binar Academy, grup online, hasil kopdar dan lain-lain.

Step satu:

Instalasi docker di openSUSE Leap 15.0

1. Install docker, gunakan docker ce versi lts.
2. Setup user agar bisa menjalankan docker tanpa sudo.

Step Dua:

Belajar ujicoba docker

  • Pull docker nginx
    docker pull nginx
  • Jalankan docker
    docker run -rm --name testing nginx
  • Masuk ke docker
    docker exec -it testing /bin/bash
  • Delete instance
    docker rm testing
  • Delete images
    docker rmi nginx

Tips running docker:

  • –rm | agar setelah menghentikan container, container akan langsung dihapus
  • –name | nama container agar lebih mudah dipanggil
  • -e | Menambahkan variable ketika menjalankan docker

Step Tiga:

Mengenal lumbung docker/ Docker Registry (docker hub)

Docker registry merupakan repositori distribusi, kumpulan docker image yang terpusat baik bersifat public dan private repositori. Registry public docker disebut dengan Docker Hub. Disini kita bisa push image kita sendiri maupun pull image. Silahkan buat akun dockerhub dahulu, http://hub.docker.com.

Docker Build

Testing memasukkan file index.html static ke container nginx.
Buatlah Dockerfile yang kira-kira isinya sebagai berikut:

tree
.
├── Dockerfile
└── index.html
0 directories, 2 files
FROM nginx:latest
COPY index.html /usr/share/nginx/html/.

Isi index.html

<html>

<header><title>This is title</title></header>

<body>
Hello world
</body>
</html>

Selanjutnya, lakukan build image.

docker build -t tuanpembual/hello .

Opsi -t digunakan untuk menambahkan tag dan agar image bisa langsung didorong ke docker hub

Banyak opsi lain dalam konfigrusai Dockerfile. Seperti opsi:

  • set variable
  • set WORKDIR
  • set daemon
  • set script pointing
  • scrip menjalankan kompilasi

Docker Push

Docker push dilakukan untuk mengungah docker image ke docker hub. Hak akses di dockerhub secara default adalah publik, jadi image kita bebas diunduh oleh siapapun kecuali jika diatur private. Oleh sebab itu, pastikan tidak ada krendensial yang ikut dalam docker image kita.

$ docker login
$ docker push tuanpembual/hello

Dah ini dulu saja untuk bagian pertama, dilanjut bagian kedua. Semoga g error. Salam

Estu~

Iklan

7 tanggapan untuk “Implementasi Docker, Kubernetes, Kops di Binar Academy (Bagian 1)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.