Anda di halaman 1dari 9

Lab RBX Kubernetes: Hari-2

Selamat datang di Lab RBX Mengekpos Aplikasi!


Bersama Anda di breakout adalah partner Anda, yang mana akan bersama-sama melakukan tes

Lab dan menjawab pertanyaan yang diberikan. Bila ada tanda ini maka konsultasikan
pertanyaan dan jawaban anda dengan Partner anda di breakout room.

Lab 1: Mengekpos Aplikasi

Anda ingin mengekpos aplikasi agar dapat diakses dari luar klaster.
1.1. Memeriksa aplikasi yang sudah anda deploy di skenario sebelumnya sedang berjalan dengan
menggunakan instruksi kubectl get dan melihat Pod yang ada.

$ kubectl get pods


NAME READY STATUS RESTARTS AGE
aplikasirbx-5864c5465c-ckzzx 1/1 Running 0 13m

1.2. Selanjutnya jalankan instruksi berikut membuat layanan baru dan mengekpos secara publik:

$ kubectl expose deployment/aplikasirbx --type=”NodePort” –port 80


service/aplikasirbx exposed

1.3. Selanjutnya untuk melihat layanan yang sudah dibuat, jalankan instruksi berikut ini:

$ kubectl get service


NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP
4d18h
aplikasirbx NodePort 10.96.69.68 <none> 80:31647/TCP
4s

Sekarang anda memiliki sebuah layanan yang berjalan dengan nama aplikasirbx. Anda dapat
melihat layanan mendapatkan IP klaster yang unik, port internal dan sebuah IP eksternal (IP dari
Node):

1 | © 2021 INIXINDO
Tulis nama service disini : ______________

1.4. Untuk melihat port mana yang dibuka keluar (dengan opsi NodePort), anda dapat
menggunakan instruksi kubectl describe services/aplikasirbx:

$ kubectl describe services/aplikasirbx


Name: aplikasirbx
Namespace: default
Labels: app=aplikasirbx
Annotations: <none>
Selector: app=aplikasirbx
Type: NodePort
IP Families: <none>
IP: 10.96.69.68
IPs: 10.96.69.68
Port: <unset> 80/TCP
TargetPort: 80/TCP
NodePort: <unset> 31647/TCP
Endpoints: 172.17.0.3:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

Tulis no Port kontainer disini : ______________


Tulis no NodePort disini : ______________
Tulis Endpoints disini : ______________
Tanyakan ke partner, apakah NodePort nya berbeda?

1.5 Selanjutnya untuk megakses aplikasi yang sudah terekpos ke luar klaster gunakan browse
firefox atau baris instruksi curl, IP dari Node dan port yang terekpos ke luar:

Akses dengan browser firefox.

2 | © 2020 INIXINDO -
Akses dengan baris instruksi curl.

$ curl $(minikube ip):31647

<!doctype html>
<html lang="en">

<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no">
<meta property="og:image" content="assets/img/kubernetes.png">

. . . . .
<center>
<h1>Selamat datang di Implementasi Aplikasi dengan
Container di Kubernetes</h1>
<hr>

3 | © 2020 INIXINDO -
<img class="img-fluid" src="assets/img/kubernetes2.png"
alt="Responsive image">
</center>
</div>
<div class="fd">
<center>
<h5>Halo, Aplikasi RBX | Berjalan di : aplikasirbx-
5864c5465c-ckzzx</h5>
<h5>Aplikasi Versi: v1</h5>
</center>
</div>

. . . . . . . .
</body>

</html>

Lab 2: Penggunaan Label

2.1. Deployment membuat label secara otomatis untuk Pod. Anda dapat melihat nama dari label
tersebut dengan instruksi kubectl describe deployment:

$ kubectl describe deployment/aplikasirbx


Name: aplikasirbx
Namespace: default

CreationTimestamp: Tue, 13 Apr 2021 08:56:49 +0700


Labels: app=aplikasirbx

4 | © 2020 INIXINDO -
Annotations: deployment.kubernetes.io/revision: 3
Selector: app=aplikasirbx
Replicas: 1 desired | 1 updated | 1 total | 1 available |
0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=aplikasirbx
Containers:
aplikasirbx:
Image: yonoinix/aplikasirbx:v1
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: aplikasirbx-5864c5465c (1/1 replicas created)
Events: <none>

Tulis nama Label disini : ______________

5 | © 2020 INIXINDO -
2.2. Gunakan label tersebut untuk melihat daftar Pod yang ada. Untuk melihat semua Pod dengan
label tersebut, gunakan parameter –l diikuti dengan nama label:

$ kubectl get pod -l app=aplikasirbx


NAME READY STATUS RESTARTS AGE
aplikasirbx-5864c5465c-ckzzx 1/1 Running 0 88m

2.3 Label dari Pod, digunakan untuk mengelompokan Pod ke dalam service. Untuk memverifikasi
Service mengakses endpoint Pod apa saja dapat menggunakan instruksi kubectl describe
service aplikasirbx.

$ kubectl describe service aplikasirbx


Name: aplikasirbx
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=aplikasirbx
Type: NodePort
IP Families: <none>
IP: 10.96.69.68
IPs: 10.96.69.68
Port: <unset> 80/TCP
TargetPort: 80/TCP
NodePort: <unset> 31647/TCP
Endpoints: 172.17.0.3:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>

Tulis nama service disini : ______________


Tulis IP Pod anggota dari service disini? : _____________

Lab 3: Menghapus Layanan (Service)

3.1. Untuk menghapus Service, dapat menggunakan instruksi kubectl delete service.

$ kubectl delete service/aplikasirbx


Service “aplikasirbx” deleted

6 | © 2020 INIXINDO -
Pastikan service sudah terhapus:

$ kubectl get service


NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d18h

3.2. Service sudah terhapus, Untuk memastikan rute sebelumnya tidak terekspos lagi, anda dapat
menjalankan curl kembali dengan IP dan port yang terekspos sebelumnya:

$ curl $(minikube ip):$NODE_PORT


curl: (7) Failed to connect to 192.168.49.22 port 31709:
Connection refused

Hal ini membuktikan bahwa aplikasi sudah tidak dapat diakses dari luar klaster lagi.

3.3. Anda dapat memastikan bahwa aplikasi tetap berjalan didalam klaster dengan menjalankan
curl di dalam Pod:

$ kubectl exec -ti aplikasirbx-5864c5465c-ckzzx curl localhost:80

kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a


future version. Use kubectl exec [POD] -- [COMMAND] instead.

<!doctype html>
<html lang="en">

<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no">
<meta property="og:image" content="assets/img/kubernetes.png">

7 | © 2020 INIXINDO -
. . . . .
<center>
<h1>Selamat datang di Implementasi Aplikasi dengan
Container di Kubernetes</h1>
<hr>
<img class="img-fluid" src="assets/img/kubernetes2.png"
alt="Responsive image">
</center>
</div>
<div class="fd">
<center>
<h5>Halo, Aplikasi RBX | Berjalan di : aplikasirbx-
5864c5465c-ckzzx</h5>
<h5>Aplikasi Versi: v1</h5>
</center>
</div>

. . . . . . . .
</body>

</html>

Kenapa aplikasi masih berjalan? : _____________

8 | © 2020 INIXINDO -
9 | © 2020 INIXINDO -

Anda mungkin juga menyukai