Kita akan cuba letak satu aplikasi go di Kubernetes.
1. Tulislah kod go . Untuk contoh ini saya buat aplikasi go yang akan keluarkan text pada service http
main.go
1. Tulislah kod go . Untuk contoh ini saya buat aplikasi go yang akan keluarkan text pada service http
main.go
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello form Kubix. We love golang")
})
log.Fatal(http.ListenAndServe(":8081", nil))
}
2. Tulislah Dockerfile untuk dockerizekan applikasi go yang ditulis tadi
Dockerfile
FROM golang:1.12.0-alpine3.9
RUN mkdir /app
ADD . /app
WORKDIR /app
RUN go build -o main .
CMD ["/app/main"]
EXPOSE 8081
3. Buat docker image
docker build -t gokubix:1
4. Push image yang telah dibuat ke docker hub atau pun harbor ( internal image repo )( internal image repo ). Pada contoh ini yang tag dan push ker harbor
docker tag gokubix:2 harbor.kubix.tm/sample/gokubix:1
docker push harbor.kubix.tm/sample/gokubix:1
5.Create manifest file dan deploy
kubectl apply -f gokubix.yml
apiVersion: v1
kind: Service
metadata:
name: gokubix
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8081
selector:
app: gokubix
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: gokubix
spec:
replicas: 1
selector:
matchLabels:
app: gokubix
template:
metadata:
labels:
app: gokubix
spec:
containers:
- name: gokubix
image: harbor.kubix.tm/sample/gokubix:1
6. Buat ingress resource untuk pamerkan servis ini ke network luar
kubectl apply -f ingress.yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gokubix
spec:
tls:
- hosts:
- gokubix.poc-dev.kubix.tm
rules:
- host: gokubix.poc-dev.kubix.tm
http:
paths:
- backend:
serviceName: gokubix
servicePort: 80
7. Tadaaaa
... Semoga bermanfaat
No comments:
Post a Comment