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.
- Web default NGINX sebagai contoh,
- 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:
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