部署 golang 应用
这里使用了一个简单的 golang 服务作为 demo,然后将它部署到 CLaaS 平台上。
构建镜像
可能在正常的使用中,已经有自己的 CICD 工具自动的进行代码构建, push 镜像等等。这里会一步一步介绍镜像构建的过程。 这里有个 golang 的 demo,代码在 github 上:
package main
import (
"io"
"log"
"net/http"
)
func HelloServer(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "hello, world!\n")
}
func main() {
http.HandleFunc("/", HelloServer)
err := http.ListenAndServe(":80", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
然后使用 Dockerfile 构建镜像,执行 docker build -t cargo.caicloudprivatetest.com/caicloud/golang:v1.0.0
。
FROM cargo.caicloud.io/caicloud/golang:latest
ADD server.go /go/server.go
EXPOSE 80
CMD ["go","run", "server.go"]
然后执行 docker push cargo.caicloudprivatetest.com/caicloud/golang:v1.0.0
将镜像推到镜像仓库中。我们可以在镜像仓库搜索 golang
关键字。
部署应用
填写应用的基本信息,实例数是应用运行在 kubernetes 中 pod 数量。
选择部署位置, Kubernetes 使用分区来隔离应用。下面把 nginx 部署在 1
分区。
填写容器信息,为容器选择资源配额。可以使用数据卷挂载到容器,这样应用删除了数据也会一直保存。容器端口填写 80
。
填写服务信息,选择利用节点端口来访问,系统会为你自动生成一个主机端口。
查看应用
恭喜! 到这里已经成功部署了自己开发的应用。后续应用的升级回滚,日志采集,扩容等等操作在 CLaaS 上面都可以轻松使用,详情见应用管理。下面在应用列表中搜索 golang
,查看自己的应用。
然后通过应用链接访问应用提供的服务。