部署 golang 应用

这里使用了一个简单的 golang 服务作为 demo,然后将它部署到 Compass 平台上。

构建镜像

可能在正常的使用中,已经有自己的 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 关键字。

PNG

部署应用

填写应用的基本信息,实例数是应用运行在 kubernetes 中 pod 数量。

PNG

选择部署位置, Kubernetes 使用分区来隔离应用。下面把 nginx 部署在 1 分区。

PNG

填写容器信息,为容器选择资源配额。可以使用数据卷挂载到容器,这样应用删除了数据也会一直保存。容器端口填写 80

PNG

填写服务信息,选择利用节点端口来访问,系统会为你自动生成一个主机端口。

PNG

查看应用

恭喜! 到这里已经成功部署了自己开发的应用。后续应用的升级回滚,日志采集,扩容等等操作在 Compass 上面都可以轻松使用,详情见应用管理。下面在应用列表中搜索 golang,查看自己的应用。

PNG

然后通过应用链接访问应用提供的服务。

PNG

results matching ""

    No results matching ""