Api client para KuberProject con servicios rest implementando el framework gin-gonic
Este servicio se encarga de consumir a KuberProject , por medio de conexion rpc
Despues de resolver la solicitud por API REST , se conectara mediante el protocolo buf , a el servidor tcp en kuberproject
- Minikube - (mini) servicio local de kubernetes
- Kubectl - herramienta de línea de comandos (cli) de Kubernetes
- ProtoBufCompiler - compilador de proto buf
- GoProtoBufCompiler - compilador de proto buf para golang
- VirtualBox - creador de maquinas virtuales para win
$ cd ./[<project_path>]
# cosntruir protobuf *pb*
$ protoc -I ./mcs --go_out=plugins=grpc:./pb ./mcs/*.proto
#minikube mantiene un servicio docker el cual podemos usar para generar nuestro contenedor e imagen
$ eval $(minikube docker-env)
#generar la imagen con el servicio ClientConsum
$ docker build -t [<docker_image_name>] -f Dockerfile.api .
#generar el nodo contenedor del servicio cconsum
$ kubectl apply -f api-deployment.yaml
Para comunicarce con el api es necesario conocer su ubicacion dentro del minikube cluster
$ minikube service api-service --url
http://xxx.xxx.xx.xx:xxxx
$ curl http://xxx.xxx.xx.xx:xxxx/gcd/6/2
support [net/http/pprof]
$ go get github.com/DeanThompson/ginpprof
GET("/debug/pprof/")
GET("/debug/pprof/heap")
GET("/debug/pprof/goroutine")
GET("/debug/pprof/block")
GET("/debug/pprof/threadcreate")
GET("/debug/pprof/cmdline")
GET("/debug/pprof/profile")
GET("/debug/pprof/symbol")
POST("/debug/pprof/symbol")
GET("/debug/pprof/trace")
GET("/debug/pprof/mutex")
Nota : este ejemplo se muestra fuera del
cluster
deminikube
localmente
$ go tool pprof goprofex http://localhost:3000/profiler/debug/pprof/profile/
$ go tool pprof goprofex http://localhost:3000/profiler/debug/pprof/heap/
Descargar Graphviz
Descargar e instalar con python
$ pip install graphviz
Descargar e instalar con chocolatey
$ choco install graphviz
Crear variable de entorno para graphviz en path
$ go tool pprof goprofex http://xxx.xxx.xx.xx:xxxx/profiler/debug/pprof/profile/
..... Entering interactive mode
$ (pprof) web