Kubernetes adalah platform manajemen wadah yang sangat populer untuk mengelola aplikasi dalam lingkungan kontainer.
Golang, atau disebut juga Go, adalah bahasa pemrograman yang kuat dan efisien. Dalam tutorial ini, kita akan menjalankan aplikasi Golang HTTP di Kubernetes dengan menggunakan port 80 dan menetapkan domain menjadi dibumi.com.
Persiapan Awal
Pastikan Anda telah menginstal dan mengonfigurasi Kubernetes di sistem Anda.
Pastikan kubectl telah terhubung ke klaster Kubernetes yang sesuai.
Langkah 1: Struktur Proyek Golang
Buat struktur proyek Golang sederhana. Buat file dengan nama main.go
sebagai berikut:
// main.go
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Selamat datang di Dibumi.com!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":80", nil)
}
Langkah 2: Dockerfile
Buat Dockerfile untuk membangun gambar Docker dari aplikasi Golang:
# Dockerfile
FROM golang:alpine
WORKDIR /app
COPY . .
RUN go build -o main .
CMD ["./main"]
Langkah 3: Membangun dan Menjalankan di Lokal
# Build Docker image
docker build -t golang-dibumi .
# Jalankan container secara lokal
docker run -p 8080:80 golang-dibumi
Langkah 4: Deploy ke Kubernetes
Buat file deployment.yaml
untuk mendefinisikan objek Deployment:
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: golang-dibumi
spec:
replicas: 1
selector:
matchLabels:
app: golang-dibumi
template:
metadata:
labels:
app: golang-dibumi
spec:
containers:
- name: golang-dibumi
image: golang-dibumi:latest
ports:
- containerPort: 80
Buat file service.yaml
untuk mendefinisikan objek Service:
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: golang-dibumi
spec:
selector:
app: golang-dibumi
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
Langkah 5: Terapkan di Kubernetes
# Terapkan Deployment
kubectl apply -f deployment.yaml
# Terapkan Service
kubectl apply -f service.yaml
Langkah 6: Tentukan Domain
Tambahkan entri host atau konfigurasi DNS yang sesuai untuk mengarahkan dibumi.com
ke alamat IP Load Balancer yang diberikan oleh Kubernetes.
Kesimpulan
Dengan mengikuti langkah-langkah di atas, Anda sekarang telah berhasil menjalankan aplikasi Golang HTTP di Kubernetes dengan menggunakan port 80 dan menetapkan domain menjadi dibumi.com. Ini adalah langkah awal yang solid untuk membuat dan mendeploy aplikasi Golang dengan Kubernetes. Jangan ragu untuk menyesuaikan konfigurasi sesuai kebutuhan proyek Anda.