Skip to content
Santekno.com | Level Up Your Engineering Skills
ID
📖 0%
Kubernetes

Deployement Service ke Google Kubernetes Engine Cloud (GKE)

· 3 mnt baca ·Ihsan Arif

Pada kali ini kita akan coba untuk melakukan deployment service kita ke dalam Server Google Cloud Platform. Pada Google Cloud sudah disediakan khusus untuk deployment berbentuk Kubernetes yaitu berupa Google Kubernetes Engine sehingga ketika kita ingin mendeploy service kita menjadi lebih mudah.

Perlu diketahui juga, jika kita belum berlangganan google cloud maka kita perlu terlebih dahulu melakukan langganan atau daftar secara gratis bagi tahun pertama untuk bisa menggunakan google cloud dengan akun gmail masing-masing.

Jadi, kita coba akses website google cloud pada situs ini Google Cloud dan pilih console atau daftar jika belum memiliki akses ke dalam Google Cloud.

Membuat Kubernetes Cluster

Persiapan jika kita ingin mendeploy service kita di GKE maka perlu dilakukan tahapan-tahapan seperti berikut ini.

  1. Create Cluster Kubernetes pada Google cloud, jika ingin lebih paham baca beberapa step disana dan bisa juga kita lakukan custom dari mulai spesifikasi virtual cloud seperti kebutuhan memory, cpu dan lainnya.

    create cluster

  2. Pilih tombol create setelah semua konfigurasi sudah setting, atau jika ingin default maka langsung saja tekan tombol create sampai tunggu cluster tersebut sukses dibuat seperti dibawah ini.

    menunggu sampai sukses terbuat

  3. Jika sudah selesai kita lanjut dengan pilih Connect ke dalam cluster yang sudah kita buat.

    koneksi ke dalam cluster

  4. Maka akan muncul pop up dan lalu copy terminalnya dan pilih Run in Cloud Shell

    connect popup

  5. Akan muncul terminal di tampilan paling bawah lalu enter dan tunggu sampai selesai semuanya berjalan.

    command line kubernetes

    Jika sudah terlihat pada terminal seperti dibawah ini berarti proses sudah selesai
    bash
    1ihsan_android@cloudshell:~ (genial-upgrade-162704)$ gcloud container clusters get-credentials voting-app --region asia-southeast1 --project genial-upgrade-162704
    2Fetching cluster endpoint and auth data.
    3kubeconfig entry generated for voting-app.

Clone YAML File

Siapkan template file YAML yang sebelumnya kita sudah buatkan atau bisa clone di github ini

bash
1git clone https://github.com/santekno/kubernetes-for-beginners
2cd kubernetes-for-beginners/
3ls -l
4total 20
5drwxr-xr-x 7 ihsan_android ihsan_android 4096 Mar 25 07:03 demo
6drwxr-xr-x 2 ihsan_android ihsan_android 4096 Mar 25 07:03 deployments
7drwxr-xr-x 2 ihsan_android ihsan_android 4096 Mar 25 07:03 pod
8drwxr-xr-x 2 ihsan_android ihsan_android 4096 Mar 25 07:03 replicasets
9drwxr-xr-x 2 ihsan_android ihsan_android 4096 Mar 25 07:03 services
Coba lihat semua file yang terdapat pada file yang sudah di clone di repository tersebut, lalu siapkan perintah dibawah ini untuk mendeploy semua service
bash
1kubectl create -f demo/voting-app/voting-app-deployment.yaml
2kubectl create -f demo/voting-app/voting-app-service.yaml
3kubectl create -f demo/result-app/result-app-deployment.yaml
4kubectl create -f demo/result-app/result-app-service.yaml
5kubectl create -f demo/redis/redis-deployment.yaml
6kubectl create -f demo/redis/redis-service.yaml
7kubectl create -f demo/postgres/postgres-deployment.yaml
8kubectl create -f demo/postgres/postgres-service.yaml
9kubectl create -f demo/worker-app/worker-app-deployment.yaml

Tunggu beberapa menit atau lihat untuk memastikan statusnya sudah berjalan atau belum dengan perintah dibawah ini

bash
1kubectl get svc,deployment,pods
Maka jika hasilnya akan seperti dibawah ini.
bash
 1NAME                     TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
 2service/db               ClusterIP      34.118.225.53    <none>        5432/TCP       44s
 3service/kubernetes       ClusterIP      34.118.224.1     <none>        443/TCP        36m
 4service/redis            ClusterIP      34.118.230.85    <none>        6379/TCP       45s
 5service/result-service   LoadBalancer   34.118.239.230   <pending>     80:30140/TCP   47s
 6service/voting-service   LoadBalancer   34.118.230.44    <pending>     80:31376/TCP   50s
 7
 8NAME                                    READY   UP-TO-DATE   AVAILABLE   AGE
 9deployment.apps/postgres-deployment     0/1     1            0           45s
10deployment.apps/redis-deployment        0/1     1            0           46s
11deployment.apps/result-app-deployment   0/1     1            0           47s
12deployment.apps/voting-app-deployment   0/3     3            0           51s
13deployment.apps/worker-app-deployment   0/3     3            0           42s
14
15NAME                                         READY   STATUS    RESTARTS   AGE
16pod/postgres-deployment-c9fdd58fd-ftljj      0/1     Pending   0          45s
17pod/redis-deployment-5989f8dddf-jbtrg        0/1     Pending   0          46s
18pod/result-app-deployment-5d9f49b9ff-mrc2g   0/1     Pending   0          47s
19pod/voting-app-deployment-65684bb646-5q2gc   0/1     Pending   0          49s
20pod/voting-app-deployment-65684bb646-6cbph   0/1     Pending   0          49s
21pod/voting-app-deployment-65684bb646-rgr56   0/1     Pending   0          50s
22pod/worker-app-deployment-fd4cb7b6d-4wmg2    0/1     Pending   0          42s
23pod/worker-app-deployment-fd4cb7b6d-6p4j5    0/1     Pending   0          42s
24pod/worker-app-deployment-fd4cb7b6d-nl25s    0/1     Pending   0          42s

work list pods

Jika kita ingin melihat IP Public dari service voting-app dan result-app maka kita perlu lihat di workfload menu

show ip public

Bisa kita lihat IP Public voucher tersebut dengan tampilan seperti ini.

IP Address voting apps

Jika sudah mendapatkan IP Address Public-nya maka akan tampil pada browser seperti ini.

voting app browser

Voting App

result app browser

Result App

IH
Ihsan Arif
Backend engineer & penulis di Santekno. Aktif menulis tentang Go, Laravel, dan arsitektur backend modern.
Follow

💬 Komentar