專案介紹
Podinfo 是一個用 Go 製作的小型 web 應用程式,它展示了在 Kubernetes 中執行微服務的最佳實踐。
它已實現的技術指標(截選自官方 README.md ):
裡面每一項技術指標的實現方式,其實都可以拿出來單獨講好久,相關理論也有好多。
這裡我只是講針對這個專案,我們該如何使用 Docker 去試玩它。
構建容器除錯環境IDEVSCode + golang/vscode-go
Go 國內加速映象https://learnku.com/go/wikis/38122
編寫 Dockerfile.dev 檔案FROM golang:1.14WORKDIR /workspace# copy modules manifestsCOPY go.mod go.modCOPY go.sum go.sum# 阿里雲RUN go env -w GO111MODULE=onRUN go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct# cache modulesRUN go mod downloadRUN go get github.com/go-delve/delve/cmd/dlv
構建 Image
docker build -f Dockerfile.dev -t podinfo:dev .
編寫 docker-compose.yaml
version: "3.4"services: golang: image: podinfo:dev command: > bash -c "ls -la && dlv debug /workspace/cmd/podinfo --headless --log -l 0.0.0.0:2345 --api-version=2" volumes: - ./:/workspace ports: - 9898:9898 - 2345:2345 security_opt: - "seccomp:unconfined"
配置 .vscode 的 launch.json{ "version": "0.2.0", "configurations": [ { "name": "Remote Docker", "type": "go", "request": "launch", "mode": "remote", "remotePath":"/workspace", "port": 2345, "host": "127.0.0.1", "program": "${workspaceFolder}", "args": [], "trace" : "verbose", "env" : {} } ]}
開始試玩docker compose 一鍵啟動
docker-compose up
Run Remote Docker檢視首頁http://localhost:9898
檢視給 Prometheus 的 metrics APIhttp://localhost:9898/metrics
下斷點,發請求除錯curl http://localhost:9898/api/info
Helm Charts
Podinfo/Charts
https://github.com/stefanprodan/podinfo/tree/master/charts/podinfo因為 Podinfo 是一個雲原生專案,所以它的 Helm Charts 的編寫還是值得借鑑和學習的。
當然這裡需要你有一些 K8S 的經驗。
Helm 安裝 Podinfo$ helm repo add podinfo https://stefanprodan.github.io/podinfo$ helm upgrade -i my-release podinfo/podinfo
Helm 解除安裝 Podinfo
$ helm delete my-release
看配置,瞭解 PodInfo 是如何上雲的?非常值得借鑑
Refs筆者修改過的 Podinfo 專案地址https://github.com/Hacker-Linner/podinfo官方 Podinfo
連結:https://www.cnblogs.com/hacker-linner/p/14318010.html
最新評論