Tutorial Kubernetes untuk Pemula – Part 5 (Deploy Contoh Website NGINX)

Pada tutorial kali ini kita akan melakukan deploy aplikasi contoh secara sederhana. Disini kita akan membuat sebuah website yang hanya menyajikan konten sederhana saja. Ada tiga contoh yang akan kita coba.

  1. Web default NGINX sebagai contoh,
  2. Web dengan PHP sebagai contoh

Deploy NGINX di Kubernetes

Silakan login ke kubernetes master node dan buat folder baru dengan nama nginx misalnya.
mkdir nginx

[youtube https://www.youtube.com/watch?v=oe64IfFMQPU&w=640]

kemudian buat file baru dengan nama nginx-deployment.yaml

nano nginx-deployment.yaml

dengan konten:

[sourcecode]
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
– name: nginx
image: nginx:1.14.0
ports:
– containerPort: 80
[/sourcecode]

dari template yaml diatas kita tahu bahwa:
– image yang digunakan adalah NGINX versi 1.14.0,
– port yang dibuka adalah port 80
– jumlah replika adalah 3

kemudian untuk melakukan deployment, silakan lakukan:

kubectl create -f nginx-deployment.yaml

kemudian cek dengan perintah:

kubectl get deployments

dan cek:
kubectl describe deployment nginx-deployment

kemudian untuk mengekspos web tersebut ke dunia luar, kita harus membuat Services. Untuk bisa diakses dunia luar kita perlu Load Balancer, baik itu yang berupa fisik hardware maupun software (misal NGINX/Apache). Di tutorial ini, kita coba akses dulu saja dengan mudah lewat NodePort.

buat file service dengan nama misalnya nginx-service.yaml.

[sourcecode]
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
run: nginx-service
spec:
type: NodePort
ports:
– port: 80
protocol: TCP
selector:
app: nginx
[/sourcecode]

pada template yaml diatas, kita membuat loadbalancer dengan tipe NodePort, port antar node yang sama dan seragam. Sehingga bisa kita akses lewat load balancer yang bisa mengakses ke cluster.

buat kubernetes service dari template diatas dengan:

kubectl create -f nginx-service.yaml

dan cek dengan perintah:

kubectl get service

disana sudah terbuat satu service baru dengan nama nginx-service, dengan IP lokal 10.100.20.92 dan port 80, serta port 32084 dimasing-masing node.

atau

kubectl describe service nginx-service

untuk mengetes apakah sudah bisa diakses atau belum, silakan lakukan dengan:

curl worker01:32084
curl worker02:32084

sesuaikan dengan hostname dan port yang tertera di kubectl services.

atau jika diakses lewat browser akan seperti ini:

untuk melihat endpoint, atau jumlah replika container yang dibuat silakan gunakan perintah ini:

kubectl get endpoints

atau lebih detail dengan perintah ini:

kubectl get pods -o wide

dibagian selanjutnya kita akan belajar cara melakukan deploy aplikasi menggunakan PHP 7.3

Scroll to Top