A simple microservice written in Go with sweetness of Docker Containers & Kubernetes Orchestration.
$ go mod init Golang-Microservice
$ go build
Output is binary file Golang-Microservice
Building docker image with Dockerfile:
$ docker build -t ducnv95/golang-rest-api:1.0 .
$ docker run -it -p 8000:8000 ducnv95/golang-rest-api:1.0
Verify
$ curl localhost:8000/people
Pushing the docker image on docker-hub:
$ docker login
$ docker push ducnv95/golang-rest-api:1.0
Create pod:
# kubectl create -f k8s-pods.yml
Create deployment:
# kubectl create -f k8s-deployment.yml
Create service:
# kubectl create -f k8s-service.yml
Verify
# curl $(minikube service golang-microservice --url)/people
Roll-up, roll-back a deployment
# kubectl set image deployment.extensions/golang-microservice golang-microservice=ducnv95/golang-rest-api:2.0
# kubectl get pod,deploy,svc,rs -o wide
# kubectl describe deployment
# kubectl rollout history deployment.extensions/golang-microservice
# kubectl rollout undo deployment.extensions/golang-microservice --to-revision=1
Scaling a deployment
# kubectl scale deployment golang-microservice --replicas=4
Delete all
# kubectl delete all -l app=golang-microservice