Cara Konfigurasi dan Penggunaan Linux Container dengan LXD di Ubuntu 16.04

Friday, November 10th, 2017 - Tutorial
Advertisement

Pada tulisan kali ini saya ingin membahas Cara Konfigurasi dan Penggunaan Linux Container dengan LXD di Ubuntu 16.04. Linux container merupakan sebuah pengelompokan / grouping dari berbagai proses yang secara logical diisolasi dari sistem Linux secara keseluruhan, dengan menggunakan fitur dari Linux kernel security. Contohnya adalah namespaces dan control groups. Hal ini bekerja mirip seperti virtual machines hanya saja jauh lebih ringan, kita tidak perlu menanggung beban untuk menjalankan kernel tambahan atau melakukan simulasi hardware. Artinya, kita dapat dengan mudah membuat beberapa container dalam satu server.

Sebagai contoh, bila kita ingin menjalankan lebih dari satu web server, pada konfigurasi tradisional, kita akan menggunakan Apache atau Nginx web server dengan memasang lebih dari satu virtual host, pada server yang sama. Namun dengan Linux container, maka setiap web server dapat berjalan pada masing – masing container. Dengan menggunakan Linux container, maka kita dapat melakukan pengelompokan dan isolasi terhadap aplikasi dan dependensinya, tanpa mengganggu sistem secara keseluruhan.

LXD mengijinkan kita untuk membuat dan mengatur container ini. LXD menyediakan sebuah hypervisor untuk mengatur keseluruhan life cycle dari container tersebut. Pada tutorial kali ini kita akan melakukan konfigurasi LXD dan memanfaatkan container di dalam nya untuk menjalankan sebuah web server sederhana menggunakan NGINX. Lalu kita akan mengarahkan trafik web ke container tersebut untuk memastikan website dalam container itu dapat diakses dari luar.

1. Konfigurasi LXD

LXD sudah terpasang pada Ubuntu, tapi butuh dikonfigurasi untuk bekerja secara optimal dan benar. Kita harus mengonfigurasi user untuk mengatur container. Lalu mengatur tipe storage backend untuk menyimpan container dan mengonfigurasi networking-nya.

Tambahkan user untuk grup lxd

Ganti user parto dengan user anda sendiri. Log out lalu re log in kembali untuk mendapatkan perubahan dari perintah di atas. Setelah ini user kita akan dapat mengonfigurasi LXD.

Sekarang kita ubah storage backend. Yang direkomendasikan LXD adalah menggunakan sistem kakas ZFS. Untuk menggunakannnya kita harus memasang zfsutils dulu

Lalu sekarang anda dapat mengonfigurasi LXD

Kita akan di prompt untuk menentukan storage backend. Selepasnya, kita dapat mengonfigurasi hal lain seperti networking. Pertama – tama, kita harus memilih dir atau zfs. Pada opsi dir, LXD akan disimpan di dalam directory / folder pada server filesystem. Sedangkan pada opsi zfs akan menggunakan ZFS filesystem yang dikombinasi dengan LVM (logical volume manager).

Kita akan menggunakan zfs, dengan opsi ini, kita akan mendapatkan efisiensi dari storage dan sistem yang lebih responsif. Contohnya, ketika kita membuat 10 container dengan image yang sama, maka semuanya akan menggunakan disk space dari sebuah container image yang sama. Kemudian, hanya perubahan awal saja yang akan disimpan di storage backend.

Setelah memilih zfs, kita akan diminta untuk membuat ZFS pool yang baru dan namanya

Lalu kita akan diminta untuk memilih menggunakan block device yang ada atau tidak

Jika kita jawab yes maka kita harus memilih device yang mana. Sebaliknya, jika tidak adalah jawabannya, maka LXD akan menggunakan preallocated file. Dengan opsi ini maka kita akan menggunakan free space pada server itu sendiri.

2. Konfigurasi Networking

Setelah mengonfigurasi storage backend, anda akan diminta mengonfigurasi networking pada LXD

Pertama, LXD akan menanyakan apakah container anda dapat diakses melalui network. Jika memilih yes maka akan mengijinkan kita untuk mengatur LXD dari komputer lain.

Kemudian kita akan mengonfigurasi network bridge untuk LXD containers, dengan begitu maka :

  • Setiap container akan mendapatkan IP secara otomatis (DHCP)
  • Container dapat berkomunikasi satu sama lain melalui private network
  • Setiap container dapat terhubung ke internet (jika komputer anda terhubung internet juga)
  • Container yang kita buat tetap tidak dapat diakses melalui komputer lain kecuali anda mengijinkannya.
  • Saat ditanya ini, jawab yes

  • Beri nama bridge tersebut dan pilih default value saja
  • Pilih ipv4, biarkan menggunakan subnet secara random.
  • Saat ditanyai valid IPv4 address, pilih default value.
  • Saat ditanyai CIDR mask, pilih default value.
  • Saat ditanya DHCP address yang pertama, pilih default value.
  • Pilih Yes ketika ditanyai NAT untuk IPv4 traffic.
  • Tak perlu setup IPv6 dulu, pilih no saja.

Setelah setup networking selesai, maka kita akan mendapatkan layar ini :

3. Membuat Container

Selepas mengonfigurasi LXD, maka kita dapat membuat LXD container kita yang pertama

Untuk melihat daftar container gunakan perintah list

Maka kita akan mendapatkan output seperti ini

karena ini pertama kalinya kita menggunakan lxc command untuk berkomunikasi dengan LXD, maka output akan memberitahukan kita secara otomatis untuk membuat container pertama kita.

Membuat container pertama :

Kita juga dapat mengubah versi ubuntu 16.04 ke versi lain, atauh bahkan menggunakan distro lain untuk image container kita. Gunakan perintah lxc image list images: atau perintah lxc image list ubuntu: untuk mencari versi lain image ubuntu.

Sekarang coba ketikkan perintah lxc list

4. Konfigurasi Nginx Container

Untuk masuk ke dalam container gunakan perintah ini:

--  yang pertama menandakan parameter perintah lxc harus stop di sini. Perintah sebenarnya hanyalah sudo --login --user ubuntu . Jika ingin masuk sebagai root maka gunakan perintah ini

Lalu pasang dan konfigurasi Nginx dengan langkah berikut ini :

Ubah default web page pada site ini, tambahkan beberapa text agar menandakan bahwa site ini di-host pada myserver container. Buka /var/www/html/index.nginx-debian.html

Ubahlah menjadi seperti ini

Simpan dengan :x  dan ketikkan logout  untuk keluar dari sesi user.

Gunakan curl untuk menguji apakah container bekerja seperti harapan atau tidak. Temukan IP pada lxc list

Outputnya harusnya seperti pada teks html yang kita edit tadi di atas.

5. Melakukan forwarding Incoming Connection ke Nginx (myserver) container

Cukup dengan menggunakan IPTABLES untuk memanipulasi request yang datang ke komputer kita.

Untuk melihat hasilnya

setelah ini seharusnya myserver container tadi di atas, dapat diakses menggunakan IP Address server atau komputer tempat host dari LXD ini.

Untuk menyimpan / memastikan rule iptables tidak hilang saat restart, pasang iptables-persistent

Untuk men-stop dan menghapus container gunakan perintah ini

Untuk menghapus rule iptables gunakan perintah ini

Misalkan outputnya seperti ini

Hapus rule di atas

Simpan konfigurasi dengan mengetikkan ini (agar rule di atas tidak kembali ada lagi ketika mesin di restart)

Selamat mencoba!

 

 

Advertisement
Cara Konfigurasi dan Penggunaan Linux Container dengan LXD di Ubuntu 16.04 | Jsmith | 4.5
Like Page Tutorlinux di Facebook
Leave a Reply