Abstrak
Pada sistem pembelajaran bidang teknologi informasi, penyediaan lab virtual sangat penting untuk
memberikan pengalaman praktik kepada para pembelajar. Hal tersebut membuat banyak Universitas
mengembangkan lab virtual mereka masing-masing. Namun, pada penerapannya, setiap universitas
dapat memiliki sumber daya yang terbatas maupun berlebih. Hal ini membuat lab virtual yang ada tidak
berjalan secara efisien. Skripsi ini menyajikan implementasi lab virtual berbasis teknologi kontainer
multi klaster dengan orkestrator Kubernetes untuk membuat sistem lab virtual yang memungkinkan
antar universitas saling berbagi sumber daya. Implementasi sistem lab virtual dilakukan dengan
menerapkan tiga komponen utama: klaster orkestrator, klaster universitas, platform manajemen multi
klaster Rancher yang berada pada klaster orkestrator sebagai pengontrol klaster universitas. Hasil
pengujian menunjukkan bahwa sistem lab virtual yang diimplementasikan berjalan sesuai dengan
fungsinya dalam menambahkan klaster universitas baru, menampilkan informasi klaster universitas,
menjalankan aplikasi kontainer, manajemen akses aplikasi dalam klaster ke luar klaster, menambahkan
pengguna baru, mengatur hak akses pengguna tersebut, dan mengatur penggunaan sumber daya aplikasi
kontainer yang dijalankan. Hasil pengujian nonfungsional menunjukkan bahwa sistem dapat menangani
permintaan dari 1000 pengguna secara bersamaan dengan utilisasi sumber daya CPU sebesar 32.84%
dan Memori 77.60%. Sedangkan saat menangani 10000 pengguna sistem hanya mampu menangani
79.5% dari total permintaan dengan utilisasi sumber daya CPU sebesar 83.18% dan Memori 77.06%.
Dari hasil pengujian tersebut, sistem pada penelitian ini terbukti memiliki skalabilitas yang baik untuk
menangani akses oleh banyak pembelajar dan dapat menjadi solusi dari sistem lab virtual berbasis
kontainer.
Kata kunci: Container, Kubernetes, Multi-cluster, Rancher
Abstract
In field of information technology education, provisioning virtual lab is very important to provide
practical experience to learners. This has made many universities develop their own virtual labs.
However, in practice, each university can have limited or excess of resources. This makes the existing
virtual lab run inefficiently. This research proposes the implementation of virtual lab based on multi-
cluster container technology with Kubernetes orchestrator to create virtual lab system that allows
universities to share resources. The implementation of the virtual lab system is carried out by
implementing three main components: orchestrator cluster, university cluster, the Rancher multi-cluster
management platform as the university cluster controller. The functional evaluation results in adding
new university clusters, displaying university clusters information, running container applications,
exposing application within the cluster to outside of the cluster, adding new users, managing access
rights of these users, and manages the resource usage of the running container are all well-functioning.
The non-functional test results shows that the system can handle requests from 1000 users
simultaneously with 32.84% CPU and 77.60% Memory utilization. Meanwhile, when handling 10000
users, the system can handle 79.5% of the total requests with 83.18% CPU and 77.06% Memory
utilization. From the test results, the system in this study is proven to have good scalability to handle
access by many learners and can be a solution for a container-based virtual lab system.
Keywords: Container, Kubernetes, Multi-cluster, Rancher
kedua adalah klaster universitas sebagai tempat plane dan mana yang akan menjadi worker. Pada
aplikasi kontainer dijalankan. Komponen ketiga RKE, pemisahan definisi master dan worker
adalah platform manajemen multi klaster sebagai node dilakukan dengan memberikan role pada
antarmuka antara pengguna atau administrator mesin yang sesuai. Pada penelitian ini, role
dengan lab virtual multi klaster. Orkestrator controlplane dan etcd akan diberikan pada satu
kontainer yang digunakan pada penelitian ini mesin virtual dan akan disebut sebagai master
adalah Kubernetes. Secara total akan dibuat 4 node. Sedangkan untuk role worker akan
buah klaster Kubernetes dengan masing-masing diberikan pada satu mesin virtual yang akan
klaster memiliki 1 node master atau control disebut sebagai worker node. Pembuatan klaster
plane dan 1 node worker. Klaster pertama adalah RKE dilakukan dengan menggunakan alat CLI
klaster orkestrator dan tiga klaster lainnya adalah yang disediakan oleh RKE atau rke. Dengan
klaster universitas. Platform yang akan menggunakan konfigurasi yang dibuat
digunakan sebagai alat manajemen multi klaster sebelumnya sebagai masukan dari rke, klaster
pada penelitian ini adalah Rancher. Rancher Kubernetes yang menjadi klaster orkestrator
akan dipasang pada klaster orkestrator dan akan berhasil dibuat.
membuat pengontrol klaster dan menambahkan
agen ke setiap klaster universitas yang ada. 4.2 Pemasangan Rancher
Pemasangan Rancher dilakukan dengan
3.2 Mekanisme Akses Aplikasi Klaster
menggunakan alat manajemen aplikasi dalam
Pada umumnya, Aplikasi atau Pod dalam Kubernetes bernama Helm. Sebelum
klaster Kubernetes tidak dapat diakses dari luar menggunakan Helm, terdapat beberapa hal yang
klaster. Oleh karena itu, Kubernetes perlu dilakukan dalam klaster orkestrator.
menyediakan Service. Terdapat 3 jenis Service Pertama adalah pembuatan namespace untuk
yang paling umum digunakan yaitu ClusterIP, Rancher, kedua adalah pemasangan cert-
NodePort dan LoadBalancer. Klaster pada manager untuk manajemen sertifikat platform
lingkungan bare metal tidak dapat langsung Rancher, ketiga adalah mendefinisikan
membuat Service LoadBalancer. Diperlukan hostname dan bootstrap password dari platform
adanya komponen tambahan yang dipasang pada Rancher. Setelah itu, dilakukan instalasi
klaster Universitas, yaitu MetalLB. MetalLB komponen Rancher pada klaster Orkestrator
memungkinkan implementasi Service menggunakan Helm.
LoadBalancer Kubernetes pada klaster bare
metal dengan menyediakan IP pool tertentu 4.3 Klaster Universitas
untuk digunakan. Ketika terdapat Service Pembuatan klaster universitas dilakukan
LoadBalancer yang dibuat, MetalLB akan dengan menggunakan fitur pada platform
mengambil IP yang tersedia dari pool untuk manajemen klaster Rancher. Pembuatan klaster
dipakai oleh aplikasi yang menggunakan dilakukan dengan mengakses halaman
LoadBalancer tersebut. pembuatan klaster dan memilih tipe Custom
untuk tipe klaster baru. Setelah itu, dilakukan
4. IMPLEMENTASI
konfigurasi umum klaster seperti nama klaster,
Sistem lab virtual diimplementasikan versi Kubernetes yang ingin dibuat dan
dengan menggunakan 8 buah mesin virtual konfigurasi jaringan klaster. Setelah selesai
identik dengan spesifikasi 4 vCPU dan 4 GB melakukan konfigurasi, Rancher akan
Memori. Pada bagian ini, akan dijelaskan memberikan suatu perintah untuk menjalankan
implementasi dari setiap komponen dari sistem kontainer menggunakan Docker yang memiliki
lab virtual baik itu komponen utama maupun parameter khusus sesuai dengan konfigurasi
komponen pendukung. klaster dan role node. Perintah tersebut
kemudian dijalankan ke setiap node klaster
4.1 Klaster Orkestrator universitas tertentu dengan menggunakan alat
Klaster orkestrator dibuat dengan manajemen konfigurasi Ansible.
menggunakan distribusi Kubernetes RKE.
4.4 Mekanisme Akses Aplikasi Klaster
Pembuatan klaster menggunakan RKE
dilakukan dengan membuat file konfigurasi Komponen terakhir yang merupakan
klaster yang mendefinisikan node atau mesin komponen pendukung adalah memasang
virtual yang akan menjadi master atau control MetalLB untuk memungkinkan klaster
melakukan mekanisme akses terhadap aplikasi simulasi permintaan terhadap dasbor sistem.
dalam klaster menggunakan Service Simulasi permintaan dilakukan sebanyak tiga
LoadBalancer Kubernetes. Komponen ini skenario. Selanjutnya, dari setiap skenario
dipasang pada klaster Universitas. Pemasangan simulasi dicatat utilisasi sumber daya dan ditarik
komponen ini dilakukan dengan menerapkan kesimpulan berupa jumlah beban yang dapat
manifest konfigurasi dari MetalLB. Setelah itu, ditangani oleh sistem.
dipasang konfigurasi ConfigMap yang berisi Pada pengujian skalabilitas, dibuat tiga
definisi IP pool yang ingin diberikan pada skenario untuk menguji kinerja sistem dalam
MetalLB. menangani banyak beban sekaligus. Pengujian
dilakukan dengan menggunakan Locust. Alur
5. PENGUJIAN pengujian skalabilitas untuk setiap skenario
adalah dengan mengirim 5 buah permintaan,
5.1 Lingkungan Pengujian permintaan pertama adalah permintaan untuk
Lingkungan Pengujian penelitian ini login, permintaan kedua adalah permintaan
dilakukan pada sistem lab virtual multi klaster untuk mengakses dasbor lab virtual, permintaan
yang telah diimplementasikan dan dapat dilihat ketiga, keempat, dan kelima adalah permintaan
seperti pada Gambar 2. Pengujian dilakukan pada halaman setiap klaster universitas.
dengan menggunakan antarmuka web pada Skenario pengujian pertama adalah dengan
Rancher yang diakses oleh dua jenis user pada membuat 100 pengguna mengakses sistem lab
sistem yaitu administrator dan pengguna biasa. virtual sekaligus, Skenario kedua dan ketiga
Selain itu, terdapat penggunaan Locust sebagai dilakukan dengan 1000 dan 10000 pengguna.
alat dalam melakukan pengujian nonfungsional Ketiga skenario pengujian dilakukan selama 300
skalabilitas. detik.
Hasil pengujian menunjukkan bahwa sistem
lab virtual yang dibuat dapat menangani seluruh
beban yang diberikan oleh 1000 pengguna
dengan 274.3 permintaan per detik. Pada
skenario 10000 pengguna sistem sempat mati
dan tidak dapat diakses sementara
Gambar 2 Lingkungan Pengujian Penelitian mengakibatkan hanya 79.5% permintaan yang
dapat ditangani dan 20.5% permintaan yang
5.2 Pengujian Fungsional gagal. Hasil pengujian skalabilitas dapat dilihat
pada Gambar 3.
Penelitian ini memperkenalkan konsep
multi klaster untuk membuat sistem lab virtual
antar universitas yang dijalankan pada mesin
virtual. Sistem lab virtual yang dibuat terdiri dari
klaster orkestrator dengan platform manajemen
multi klaster untuk mengatur setiap klaster
universitas yang ada. Dari hasil implementasi
sistem, penelitian ini berhasil memenuhi
kebutuhan lab virtual antar universitas seperti
manajemen klaster universitas, menampilkan
informasi klaster, menjalankan aplikasi di lab
tersebut, manajemen akses aplikasi ke luar Gambar 3 Hasil Pengujian Skalabilitas
klaster, manajemen pengguna, dan mekanisme
resource sharing antar aplikasi yang berjalan Selain pengujian skalabilitas, terdapat
pada sistem tersebut. pengujian utilisasi sumber daya. Hasil pengujian
utilisasi sumber daya dari setiap skenario
5.3 Pengujian Nonfungsional menunjukkan bahwa terdapat hubungan antara
Kebutuhan nonfungsional dari sistem lab kenaikan permintaan dengan jumlah sumber
virtual multi klaster dari penelitian ini adalah daya yang dibutuhkan. Pada saat tidak terdapat
skalabilitas dan utilisasi atau penggunaan permintaan, pemakaian CPU klaster sebesar
sumber daya. Pada kebutuhan skalabilitas, 7.63%, saat skenario pertama penggunaan CPU
sistem lab virtual akan diuji dengan melakukan menjadi 8.23%, saat skenario kedua penggunaan
CPU menjadi 32.84%, dan saat skenario ketiga Service ClusterIP secara langsung. Selain itu,
penggunaan CPU menjadi 83.18%. Penggunaan dapat dilakukan penelitian terkait integrasi
CPU yang sangat tinggi dapat menjadi alasan komputasi tepi dengan aplikasi dalam klaster
mengapa sistem lab virtual mati dan yang telah dibuat.
mengembalikan status 50x.
7. DAFTAR PUSTAKA
6. KESIMPULAN DAN SARAN
D. Bernstein, "Containers and Cloud: From LXC
Penelitian ini telah berhasil menerapkan to Docker to Kubernetes," in IEEE Cloud
sistem lab virtual berbasis multi klaster. Hal Computing, vol. 1, no. 3, pp. 81-84, Sept.
tersebut dilakukan dengan membuat satu klaster 2014, doi: 10.1109/MCC.2014.51.
orkestrator dan tiga buah klaster universitas.
Senel, Berat & Mouchet, Maxime & Cappos,
Setiap klaster memiliki 2 node yang masing-
Justin & Fourmaux, Olivier & Friedman,
masing berperan sebagai control plane dan
Timur & Mcgeer, Rick. (2021). EdgeNet:
worker node. Klaster Orkestrator digunakan
A Multi-Tenant and Multi-Provider Edge
sebagai pengontrol dari klaster universitas
Cloud. 49-54. 10.1145/3434770.3459737.
dengan menggunakan Rancher. Klaster
Universitas digunakan sebagai tempat di mana N. Naik, "Building a virtual system of systems
kontainer pengguna dapat dijalankan sesuai using docker swarm in multiple clouds,"
dengan hak akses yang diberikan. Untuk 2016 IEEE International Symposium on
mengakses aplikasi kontainer yang berjalan Systems Engineering (ISSE), 2016, pp. 1-
dalam klaster, tersedia 3 metode yaitu ClusterIP, 3, doi: 10.1109/SysEng.2016.7753148.
NodePort dan LoadBalancer. Implementasi S. Hardikar, P. Ahirwar and S. Rajan,
LoadBalancer pada klaster universitas dilakukan "Containerization: Cloud Computing
dengan menggunakan MetalLB dengan IP pool based Inspiration Technology for
yang telah disediakan. Adoption through Docker and
Kinerja sistem lab virtual dalam menangani Kubernetes," 2021 Second International
beban diukur berdasarkan hasil pengujian Conference on Electronics and
skalabilitas. Hasil pengujian menunjukkan Sustainable Communication Systems
bahwa sistem dapat menangani hingga 274.3 (ICESC), 2021, pp. 1996-2003, doi:
permintaan per detik. Hal tersebut dilakukan 10.1109/ICESC51422.2021.9532917.
dengan pengujian permintaan laman dasbor dari
1000 pengguna dalam waktu 300 detik. Pada Xu, Le & Huang, Dijiang & Tsai, Wei-Tek.
skenario di mana pengguna bertambah menjadi (2014). Cloud-Based Virtual Laboratory
10000 dan jumlah permintaan per detik menjadi for Network Security Education.
908.7, sistem tidak dapat menangani beban Education, IEEE Transactions on. 57.
tersebut dan hanya dapat menangani 79.5% dari 145-150. 10.1109/TE.2013.2282285.
total 286072 permintaan. Hal ini disebabkan Sianipar, J., Willems, C., & Meinel, C. (2016).
karena penggunaan sumber daya CPU yang A Container-Based Virtual Laboratory for
sangat tinggi pada sistem dan menyebabkan Internet Security e-Learning. The
sistem mati untuk sementara sehingga international journal of learning.
memberikan kode 50x pada setiap permintaan
yang masuk. Damiani, Ernesto & Frati, Fulvio & Rebeccani,
Mekanisme ekspos aplikasi kontainer untuk Davide. (2013). The Open Source Virtual
diakses dari luar klaster masih menggunakan Lab: a Case Study. Proc. of the Workshop
mekanisme dasar yang disediakan oleh on Free and Open Source Learning
Kubernetes. Penggunaan LoadBalancer Environments and Tools FOSLET06.
membutuhkan IP pool yang sesuai dengan
jumlah aplikasi yang ingin diekspos. Hal ini
tentu menjadi isu ketika ketersediaan IP yang
dimiliki terbatas. Oleh karena itu, perlu
penelitian lebih dalam terkait metode alternatif
untuk mengakses aplikasi dalam kontainer
seperti menggunakan ingress atau melalui VPN
Gateway untuk memungkinkan mengakses