Kubernetes Kubectl 发布

Flow 提供了通用的 Kubernetes 部署能力支持,通过内置的 Kubectl 工具将 Kubernetes YAML资源描述文件部署到任意集群中。在原生 Kubectl 的能力基础上, Flow 还内置了动态模板的能力,从而帮助用户可以快速实现容器应用的构建与发布。本文主要介绍了如何通过Flow添加并配置Kubernetes发布任务,以及如何查看部署后的日志。

方案概览

  1. 添加部署任务

  2. 配置部署任务

  3. 查看部署日志

添加部署任务

可以通过两种形式添加部署任务。

  • 创建流水线时,选择包含 Kubernetes 发布的模板。

    image

  • 在流水线中添加空任务,并添加 Kubernetes 发布步骤。

    image

配置部署任务

进入 Kubectl 步骤,进行如下配置:

  1. 选择或者新建 Kubernetes集群连接,关于如何新建 Kubernetes 集群连接请参见Kubernetes集群管理

    image

  2. 输入发布的目标命名空间

  3. 输入当前需要部署的YAML路径,并添加需要传递的变量。

    1. 在 Kubernetes 资源描述 YAML 文件中,通过${IMAGE} 占位符将 Docker 镜像定义为一个动态变量。

      image

    2. 在Kubectl 步骤中传递变量给 YAML文件,在 Kubectl 步骤配置中,点击添加变量,并定义变量名称以及变量来源,即可发布时使用这些变量动态替换 YAML 文件中的占位符。image

    说明

    Kubernetes常用资源YAML使用方式,请参见Kubernetes常用资源 YAML 规范参考

查看部署日志

在配置完成后,运行流水线执行部署任务,即会将源码中对应的 YAML 文件部署到指定的Kubernetes 集群中。

  1. 在部署过程中点击日志,可以查看当前的部署过程以及相应记录。

    image

  2. 日志输出,如下所示,日志中会包含当前所有扫描到的 YAML 文件,kubectl apply后的标准输出,以及当前变更执行后的所有资源概要信息。

    image

Kubernetes常用资源 YAML 规范参考

工作负载

资源类型

官方文档链接

Deployments

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

StatefulSets

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

DaemonSet

https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

服务发现与网络

资源类型

官方文档链接

Service

https://kubernetes.io/docs/concepts/services-networking/service/

Ingress

https://kubernetes.io/docs/concepts/services-networking/ingress/