使用Okteto工具在Kubernetes上开发Golang Web APIs的示例项目

275 阅读2分钟

Okteto Golang Starter

此版本的目的是提供所需的文件,以便在Kubernetes上使用Okteto工具直接开发Golang Web API。

要求

  • 在你的机器上安装最新的Okteto二进制文件
  • 一个正在运行的Kubernetes或k3s集群
  • 集群中的一个Ingress控制器(在我的例子中是nginx)
  • 一个用于自动创建pvc对象的StorageClass。你的StorageClass应该用这个命令设置为默认值。
kubectl patch storageclass MY-STORAGECLASS -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

我个人使用cert-manager和HashiCorp Vault来为我的子域获得有效的TLS证书。如果你不使用这些工具,你需要重写manifests目录下的backend-ing.yml,以便与letencrypt或http(无tls)一起工作。 这些文档可以帮助你:

第一次使用

如果你是第一次使用 okteto 和这个 repo,你只需要执行这些命令:

git clone https://github.com/aamoyel/okteto-go-starter.git
kubectl apply -f manifests
okteto up

当你第一次调用 "Okteto up "时,你需要选择一个kubernetes环境。

空气二进制

你需要有Air二进制文件来自动构建和运行你的go项目。你可以在下面找到Air的安装说明。 在'Okteto up'之后(在开发容器中),运行这个命令。

curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin

之后,在终端简单地输入 "air"。

结果

进入http://localhost:8080,查看本地开发容器的进程和你的入口网址,在我的例子中是dev.amoyel.loc。你可以在manifests目录下的backend-cert.yml文件中修改域名和子域名。

结束开发会话

简单地输入CTRL+C来停止空气二进制。 然后输入CTRL+D或输入 "exit"。 最后输入 "Okteto down "来避免资源消耗。

常见用法

okteto up
air

开发你的Golang API ......当你想停止你的开发会话时,做这个步骤

改变Golang版本

如果你想改变Go的版本,只需改变:

  • okteto.yml中的Image标签,例如:"image: golang:1.18.5-bullseye"
  • manifests/backend-deploy.yml中的Image标签,例如:"- image: golang:1.18.5-bullseye"

你可以直接在Docker Hub上找到其他标签。