首頁>技術>
專案介紹

Podinfo 是一個用 Go 製作的小型 web 應用程式,它展示了在 Kubernetes 中執行微服務的最佳實踐。

它已實現的技術指標(截選自官方 README.md ):

裡面每一項技術指標的實現方式,其實都可以拿出來單獨講好久,相關理論也有好多。

這裡我只是講針對這個專案,我們該如何使用 Docker 去試玩它。

構建容器除錯環境IDE

VSCode + 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 API

http://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

13
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 每天學一個 Linux 命令(15):man