【go-zero】api与rpc使用k8s服务发现和部署
k8s安装
参考 debian12极简快速安装k8s
1、代码准备
参考上一篇【go-zero】api与rpc使用etcd服务发现 代码搬过来,因为要用到k8s环境换到linux了 ,做一下修改
rpc
修改一下rpc的logic文件,增加返回主机名,用于后面查看负载均衡效果
func (l *GetUserInfoLogic) GetUserInfo(in *pb.GetUserInfoReq) (*pb.GetUserInfoResp, error) {
hostname, _ := os.Hostname()
return &pb.GetUserInfoResp{
Id: in.Id,
Nickname: "zero-rpc----->" + hostname,
}, nil
}
user.yaml 文件
Name: user.rpc
ListenOn: 0.0.0.0:8980
Mode: dev
api 配置rpc的发现
user-api.api 文件
user-rpc-svc 是rpc的k8s yaml部署文件的serviceName
Name: user-api
Host: 0.0.0.0
Port: 8988
UserRpcConf:
Target: k8s://go-zero-demo/user-rpc-svc:8980
2、使用goctl 生成rpc、api 的 Dockerfile
user-rpc目录下
goctl docker -go .\user.go
根据提示,执行 docker build 要在/home/goproject/domo目录下 我们把 Dockerfile 复制到/home/goproject/domo
cp Dockerfile ../Dockerfile
/home/goproject/domo目录下 执行 docker
docker build -t gozerok8s-user-rpc:v1 .
执行完查看 docker images