Lab dan menjawab pertanyaan yang diberikan. Bila ada tanda ini maka konsultasikan
pertanyaan dan jawaban anda dengan Partner anda di breakout room.
Anda ingin men-deploy aplikasi kubernetes dengan instruksi kubectl create deployment. Kita
perlu memberikan nama deployment dan lokasi image dari aplikasi (masukan URL repositori yang
lengkap untuk image yang ada di luar Docker hub) Pada lab ini kita menggunakan Image yang
bernama yonoinix/aplikasirbx:v1. Image ini tersedia di Docker Hub.
1 | © 2021 INIXINDO
1.2. Selanjutnya untuk melihat kontainer apa yang ada didalam Pod dan image apa yang
digunakan untuk membangun kontainer tersebut, jalankan instruksi kubectl describe pods.
2 | © 2020 INIXINDO -
Type: Secret (a volume populated by a Secret)
SecretName: default-token-dt4j8
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for
300s
node.kubernetes.io/unreachable:NoExecute op=Exists
for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 14m default-scheduler Successfully assigned
default/aplikasirbx-5864c5465c-ckzzx to minikube
Normal Pulling 14m kubelet Pulling image
"docker.io/yonoinix/aplikasirbx:v1"
Normal Pulled 13m kubelet Successfully pulled
image " docker.io/yonoinix/aplikasirbx:v1" in 45.914948029s
Normal Created 13m kubelet Created container
aplikasirbx
Normal Started 13m kubelet Started container
aplikasirbx
Anda dapat lihat disini detail tentang kontainer dari Pod: alamat IP, Image yang digunakan dan
daftar event terkait siklus hidup dari Pod tersebut.
1.3. Mengingatkan kembali bahwa Pod berjalan dalam sebuah jaringan privat yang terisolasi,
sehinga membutuhkan akses proxy ke mereka, sehinga dapat men-debug dan berinteraksi. Untuk
ini, akan menggunakan instruksi kubectl proxy untuk menjalankan proxy di jendela terminal kedua.
3 | © 2020 INIXINDO -
Selanjutnya jalankan instruksi kubectl proxy untuk meneruskan komunikasi dari host ke jaringan
private di dalam klaster.
Terminal 1
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
Untuk melihat hasil aplikasi yang sudah di-deploy, Buka browser Firefox dan akses ke
http://localhost:8001/api/v1/namespaces/default/pods/aplikasirbx-
5864c5465c-ckzzx:80/proxy/
Terminal 2
4 | © 2020 INIXINDO -
$ curl http://localhost:8001/api/v1/namespaces/default/pods/
aplikasirbx-5864c5465c-ckzzx:80/proxy/
<!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>
<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>
5 | © 2020 INIXINDO -
. . . . . . . .
</body>
</html>
1.4. Semua yang biasa dikirim ke STDOUT menjadi log untuk kontainer dalam Pod. Kita dapat
mengambilnya dengan menggunakan intruksi kubectl logs:
. . . . . .
172.17.0.1 - - [13/Apr/2021:02:27:25 +0000] "GET
/assets/img/kubernetes.png HTTP/1.1" 200 8653
"http://localhost:8001/api/v1/namespaces/default/pods/aplikasirbx-
5864c5465c-ckzzx:80/proxy/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64;
rv:87.0) Gecko/20100101 Firefox/87.0"
172.17.0.1 - - [13/Apr/2021:02:38:29 +0000] "GET / HTTP/1.1" 200 1876
"-" "curl/7.58.0"
. . . . . .
2.1. Anda dapat menjalankan instruksi secara langsung di dalam kontainer setelah Pod siap dan
berjalan. Untuk ini, anda dapat menggunakan instruksi exec diikuti dengan nama Pod sebagai
parameter. Mari kita lihat daftar variabel lingkungan yang ada di kontainer:
6 | © 2020 INIXINDO -
APLIKASIRBX_PORT_80_TCP_ADDR=10.96.69.68
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
APLIKASIRBX_PORT_80_TCP_PORT=80
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
APLIKASIRBX_SERVICE_PORT=80
APLIKASIRBX_PORT=tcp://10.96.69.68:80
APLIKASIRBX_PORT_80_TCP=tcp://10.96.69.68:80
APLIKASIRBX_PORT_80_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT=443
PHPIZE_DEPS=autoconf dpkg-dev file g++
gcc libc-dev make pkg-config re2c
PHP_INI_DIR=/usr/local/etc/php
APACHE_CONFDIR=/etc/apache2
APACHE_ENVVARS=/etc/apache2/envvars
PHP_EXTRA_BUILD_DEPS=apache2-dev
PHP_EXTRA_CONFIGURE_ARGS=--with-apxs2 --disable-cgi
PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64
PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -
D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_LDFLAGS=-Wl,-O1 -pie
GPG_KEYS=1729F83938DA44E27BA0F4D3DBDB397470D12172
B1B44D8F021E4E2D6021E995DC9FF8D3EE5AF27F
PHP_VERSION=7.2.34
7 | © 2020 INIXINDO -
PHP_URL=https://www.php.net/distributions/php-7.2.34.tar.xz
PHP_ASC_URL=https://www.php.net/distributions/php-7.2.34.tar.xz.asc
PHP_SHA256=409e11bc6a2c18707dfc44bc61c820ddfd81e17481470f3405ee7822d837
9903
HOME=/root
2.2. Selanjutkan untuk memulai sesi bash di kontainer dapat meggunakan instruksi berikut:
2.3. Anda sekarang telah membuka konsol dalam kontainer di mana anda menjalankan aplikasi
Apache dengan PHP. Port dari aplikasi ini ada di dalam berkas /etc/apache2/ports.conf:
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
2.4. Dan sumber data dari aplikasi Apache dengan PHP ada di berkas
/var/www/html/index.php. Anda dapat memastikan bahwa aplikasi sudah siap dengan
menjalankan instruksi curl:
8 | © 2020 INIXINDO -
<!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>
<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>
9 | © 2020 INIXINDO -
</html>
Tanyakan ke partner, apakah bisa mengakses halaman web sercara langsung? Lalu kenapa bisa
akses langsung ke host, tanpa menggunakan proxy?
10 | © 2020 INIXINDO -