goctl
是 go-zero
的内置脚手架工具,主要用于提升开发效率,它可以一键生成代码、文档、部署 k8s yaml、dockerfile 等 。
goctl
支持多种数据库模型代码生成指令,包括 MySQL、PostgreSQL、MongoDB。使用 goctl model
可以快速生成数据库模型代码,例如使用 goctl model mysql
可以生成基于 MySQL 的 model 代码,支持从 sql 文件和数据库连接两种方式生成 。
此外,goctl
还提供了模板定制化功能,允许开发者根据项目需求自定义模板,以生成符合特定格式和结构的代码。开发者可以通过 goctl template
命令对模板进行初始化、更新、回滚和清理操作。
1. 安装goctl
要安装 goctl
,你可以直接使用 Golang 进行安装,对于 Go 版本在 1.16
以前的,可以使用命令 GO111MODULE=on go get -u github.com/zeromicro/go-zero/tools/goctl@latest
进行安装,而对于 Go 版本在 1.16
及以后的,使用命令 go install github.com/zeromicro/go-zero/tools/goctl@latest
即可。
2. 生成 K8S 部署文件
goctl kube deploy -name nginx -namespace niuma -image nginx:v1.5 -o nginx.yaml -port 8080
以下是goctl生成的基本yaml文件(根据需要自行修改)
---------------------------------------------------------------------------------------------------------------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
---------------------------------------------------------------------------------------------------------------------------------
3. 运行nginx.yaml文件 kubectl apply -f nginx.yaml
4. 部署服务时候,如果这个命名空间 niuma 不存在,先创建 kubectl create ns niuma
5. 查询容器状态 kubectl get pod -A (查询所有pod)