分享
  1. 首页
  2. 文章

Podinfo,迷你的 Go 微服务模板

Java互联网架构师小马 · · 575 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

项目介绍

Podinfo 是一个用 Go 制作的小型 web 应用程序,它展示了在 Kubernetes 中运行微服务的最佳实践。

它已实现的技术指标(截选自官方 README.md ):

里面每一项技术指标的实现方式,其实都可以拿出来单独讲好久,相关理论也有好多。

这里我只是讲针对这个项目,我们该如何使用 Docker 去试玩它。

构建容器调试环境

IDE

VSCode + golang/vscode-go

Go 国内加速镜像

https://learnku.com/go/wikis/38122

编写 Dockerfile.dev 文件

FROM golang:1.14
WORKDIR /workspace
# copy modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
# 阿里云
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
# cache modules
RUN go mod download
RUN 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

因为 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 项目地址

官方 Podinfo

作者:为少
链接:https://www.cnblogs.com/hacker-linner/p/14318010.html


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Java互联网架构师小马

查看原文:Podinfo,迷你的 Go 微服务模板

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
575 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏