全部产品
云市场

Python应用部署到Kubernetes

更新时间:2019-07-22 08:37:13

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

创建企业

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

python-k8s-1

创建流水线

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

    python-k8s-2

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

    python-k8s-3

新建代码库

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

    python-k8s-4

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

    python-k8s-5

  3. 在弹框中选择 Python 语言和 python-3-flask 模板,勾选【生成Dockerfile】,然后点击确认。

    python-k8s-6

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

    python-k8s-7

编辑流水线

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

    python-k8s-8

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

    python-k8s-9

  3. 进入流水线编辑页面,编辑构建任务。构建测试阶段分为3个步骤:

    • Python单元测试。
    • 自定义构建需要操作的执行命令。
    • 镜像构建以及上传。

    python-k8s-10python-k8s-11

  4. 完善测试构建阶段配置。点击【测试构建】阶段,在右侧浮层中点击【Python打包测试】任务,在任务编辑页面中点击【请前往授权绑定】的链接进入 RAM 页面。

    python-k8s-12

  5. RAM 授权。打开账号绑定开关,点击确定。

    python-k8s-13

  6. 回到流水线配置页面选择【区域】,在【仓库】的下拉框中点击【新建镜像仓库】,填写好信息之后,点击【确认】,窗口会自动关闭,并把新创建好的仓库地址回填到流水线中。填写【标签】,使用 ${TIMESTAMP} 作为标签,便于版本管理。

    python-k8s-14

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

    python-k8s-15

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

    python-k8s-16

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

    python-k8s-17

创建免费集群

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

    python-k8s-18

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

    python-k8s-19

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

    python-k8s-28

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

    python-k8s-21

运行流水线

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

    python-k8s-22

  2. 流水线运行中。

    python-k8s-23

查看测试报告

  1. 点击【构建测试】阶段的【测试报告】可以展开测试结果预览,点击预览里的链接可以查看测试报告详情。

    python-k8s-24

查看部署结果

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

    python-k8s-25

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

    python-k8s-26

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

    python-k8s-27

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