全部产品
云市场

Golang应用部署到Kubernetes

更新时间:2019-07-22 08:36:33

本文档会帮助您在云效创建一个 Golang Gin 的代码库,并部署到云效提供的使用 Kubernetes 集群。

创建企业

首次进入云效,会提示您创建企业。

golang-k8s-1

创建流水线

  1. 进入企业后,从页面顶栏点击【研发】->【流水线】,进入流水线列表。

    golang-k8s-2

  2. 点击右上角【新建流水线】,进入流水线创建向导页面。

    golang-k8s-3

新建代码库

  1. 在源码设置页面中,选择阿里云Code,点击代码仓库右侧【新建代码库】。

    golang-k8s-4

  2. 在弹窗中选择或创建代码组,输入新建代码仓库名称,点击【下一步】。

    golang-k8s-5

  3. 在弹框中 Golang 和 golang-gin-web,选中【生成Dockerfile】,然后点击【确认】。您可以点击代码模板图标下的预览按钮查看即将生成的代码库文件内容。

    golang-k8s-6

  4. 为了在代码提交时候触发持续集成,打开【开启监听】。然后点击【下一步】。

    golang-k8s-7

编辑流水线

  1. 云效会识别代码库语言并推荐相应流水线模板,使用默认置顶选中的【Go测试、构建、部署到主机】流水线模板,然后点击【创建】。

    golang-k8s-8

  2. 填写流水线名称,点击【下一步】。

    golang-k8s-9

  3. 完善测试构建阶段配置。点击【构建】阶段,在右侧浮层中点击【Go构建docker】任务,在任务编辑页面中点击【请前往授权绑定】的链接完成 RAM 授权。然后回到流水线配置页面选择【区域】。

    golang-k8s-10

  4. 在【仓库】的下拉框中点击【新建镜像仓库】,填写好信息之后,点击【确认】,窗口会自动关闭,并把新创建好的仓库地址回填到流水线中。

    golang-k8s-11

  5. 填写【标签】,使用 ${TIMESTAMP} 作为标签,便于版本管理。

    golang-k8s-12

  6. 进行部署配置。在流水线的部署任务中选择【制品】,即在构建阶段产生的那个镜像。

    golang-k8s-13

  7. 在【应用】下拉框中点击【新建应用】,输入应用名,点击【确认】。

    golang-k8s-14

  8. 新建环境。在【环境】下拉框中点击【新建环境】,进入到 Kubernetes 集群配置页面。

创建免费集群

  1. 在【新建环境】的弹框中进行 Kubernetes 部署配置。点击【免费试用云效提供的集群】来获取一个临时的免费集群,该集群会自动配置到您的企业中,在5小时后会失效并从企业中删除。

    golang-k8s-15

  2. 在使用免费集群的弹窗中记得点击【点击复制kubeconfig】,并进行本地配置,否则将无法从本地访问集群。

    golang-k8s-16

  3. 关闭弹框,选择集群、命名空间,选择滚动发布,并点击【点击创建新服务】的链接来创建 Service。

    golang-k8s-17

  4. 输入 Service 名称,选择负载均衡器类型,服务端口和容器端口都设置为 8080,然后点击【确认】。弹框关闭后,再点击创建环境的弹框的【确认】,环境即创建成功,并回填到流水线配置中。

    golang-k8s-18

运行流水线

  1. 点击流水线编辑页面右上角【运行】,流水线会自动保存并开始运行。

    golang-k8s-19

  2. 运行成功。

    golang-k8s-20

查看测试报告

  1. 点击构建阶段【更多】-> 【测试报告】可以展开测试结果预览,点击预览里的【链接】可以查看测试报告详情。【版本信息】里的下载链接可以用于下载软件包。

    golang-k8s-21

查看部署结果

  1. 点击【发布详情】-> 【打开发布单】可以查看部署单。在部署单中可以查看每台机器的部署情况和日志。

    golang-k8s-22

  2. 在部署单中可以看到该服务所对应的路由的地址。点击【外部端点】可以访问到该应用。

    golang-k8s-23

  3. 由于 Service 类型是 LoadBalancer,所以会自动生成一个公网IP来暴露这个 Service。显示在部署单的外部端点部分。访问【外部端点】地址,可以看到服务运行起来了。

    golang-k8s-24

获取更多帮助,请加入云效-Golang语言最佳实践沟通钉钉群:go-ding