Judul: Evaluasi Shared CPU Resource pada Layanan Kubernetes Terkelola
-
cluster
: berisi berkas manifes klaster yang diuji untuk setiap skenario. -
provision-gce
: berisi skrip untuk meluncurkan klaster dan program klien sebagai mesin virtual Google Compute Engine di atas jaringan yang sama -
provision-gke
: berisi skrip untuk meluncurkan klaster ke dalam layanan Google Kubernetes Engine terkelola dan program klien sebagai mesin virtual Google Compute Engine di atas jaringan yang sama -
test
: berisi program klien.test.py
digunakan untuk melakukan load testing, sedangakananalyze.py
digunakan untuk menganalisis laporan hasil load testing.
Di bawah ini terdapat berbagai panduan setup. Sebagai contoh, untuk menjalankan skenario guaranteed resource dengan 2 vCPU dengan layanan Kubernetes terkelola GKE, lakukan hal berikut:
-
Ikuti Panduan instalasi
-
Lanjutkan dengan Panduan menjalankan klaster untuk layanan Kubrenetes GKE. Pada langkah nomor 3, jalankan
kubectl apply -f cluster/pods/scenario-guaranteed-2vCPU.yaml
-
Sebelum melakukan load testing, Anda dapat mencoba akses web dengan mengikuti Panduan mengakses web.
-
Untuk hasil uji yang akurat, sebelum load testing, gunakan perintah
kubectl top pods
(dapat dieksekusi di Cloud Shell) dan pastikan jumlah awal pod adalah 2 dan utilisasi kedua CPU adalah 1m. -
Lakukan load testing dengan mengikuti Panduan pengujian secara otomatis.
-
Selesai menguji, pastikan melakukan Cleanup untuk menghapus resource yang disewa untuk keperluan tes.
-
Clone repositori ini pada Google Cloud Shell atau Google Cloud SDK
git clone https://github.com/hamonangann/thesis
cd thesis
-
(Untuk layanan Kubernetes GKE) Jalankan skrip start
cd provision-gke
chmod +x start.sh
./start.sh
cd ..
Note: ketikkan "yes" ketika muncul prompt
-
(Untuk manual IaaS GCE) Jalankan skrip start
cd provision-gce
chmod +x start.sh
./start.sh
cd ..
Note: ketikkan "yes" ketika muncul prompt
-
Jalankan salah satu skenario (contoh:
baseline.yaml
)kubectl apply -f cluster/pods/baseline.yaml
Catatan: web hanya dapat diakses secara internal dalam satu network. Gunakan contoh berikut:
-
SSH ke dalam mesin virtual klien
gcloud compute ssh client
-
(Khusus klaster GKE) Login ke Google
gcloud auth login
-
Dapatkan IP dari load balancer
LB_IP=$(kubectl get svc server --output yaml | grep -oP "ip: \K.*" | head -1)
-
Akses web
curl $LB_IP:8000
-
SSH ke dalam mesin virtual klien
-
Nyalakan virtual environment
source /srv/venv/bin/activate
-
Ke direktori test
cd /srv/thesis/test
-
Dapatkan IP dari load balancer
LB_IP=$(kubectl get svc server --output yaml | grep -oP "ip: \K.*" | head -1)
-
Jalankan tes
python3 test.py http://$LB_IP:8000 1
Bilangan 1 menyatakan jumlah guaranteed resource dalam vCPU. Untuk skenario dengan >1vCPU ganti ini dengan jumlah vCPU yang dimaksud.
-
Setelah tes selesai, akan muncul report.csv. Jalankan analyze
python3 analyze.py
-
(Opsional) untuk melihat dampak shared resource, jalankan analyze dengan parameter
python3 analyze.py 0.5
Bilangan 0.5 dapat diganti dengan bilangan float > 0.0 apa saja. Ia menyatakan banyaknya shared resource dalam satuan vCPU.
-
Akan muncul analisis CPU dan plot.png. Unduh file atau pakai SCP untuk melihat hasilnya.
-
(Untuk layanan Kubernetes GKE) Jalankan skrip stop
cd provision-gke
chmod +x stop.sh
./stop.sh
cd ..
Note: ketikkan "yes" ketika muncul prompt
-
(Untuk manual IaaS GCE) Jalankan skrip stop
cd provision-gce
chmod +x stop.sh
./stop.sh
cd ..
Note: ketikkan "yes" ketika muncul prompt