文档首页 > > 用户指南> 创建部署任务> 自定义组合部署任务> Kubernetes部署

Kubernetes部署

分享
更新时间: 2020/03/21 GMT+08:00

部署原理

本部署步骤通过kubectl命令来控制用户的kubernetes集群,进行部署操作。

产品优势

  1. 支持标准的原生kubernetes集群部署,不绑定在特定云厂商。
  2. kubectl中使用的到的yml文件可以直接从上游发布服务或者代码仓库获取,打通了CI/CD流水线。
  3. yml文件和kubectl命令参数都可以引用部署任务中参数设置,增加灵活性,减少或避免部署脚本的修改。

  

使用步骤

  1. 创建并选择Kubernetes接入点

    • CCE集群
      1. 登录CCE控制台,选择资源管理 > 集群管理,单击待连接集群下的命令行工具> kubectl

          

      2. 绑定弹性IP。

        由于部署服务执行机与用户K8S集群不在同一个VPC,所以只能通过弹性IP访问。

          

      3. 下载kubectl配置文件。

        下载完成后用户会得到一个json文件。

          

      4. 配置K8S接入点。

        单击“新建”按钮,按下图提示新建Kubernetes接入点

      

  2. 配置部署步骤:按下图提示配置。

      

    1. yml文件中可以使用 {{}} 引用部署任务“参数设置”中的参数。

    2. “kubectl命令参数”中可以使用 ${} 引用部署任务“参数设置”中的参数。

    3. 选择使用yml文件时,kubectl命令后会自动填入 –f 以及文件路径,“kubectl命令参数”不用填写。

    4. 当yml来源选择发布仓库时,可以选择单个yml文件,也可以选择文件夹。

    5. 当yml来源选择代码仓库时,需要填写yml文件的相对路径,当前目录为代码分支的根目录;同样也可以选择单个yml文件或者文件夹。

    6. kubectl命令使用指南请参考:kubectl命令

  

跨租户K8S部署

  • 部分用户购买CCE资源的账号和DevCloud部署账号不是同一个,因此存在跨租户操作CCE集群的需求。
  • 本部署步骤使用公网地址执行kubectl命令来操作CCE集群或者用户自建K8S集群。因此天然支持华为云CCE的跨租户操作。

使用示例

  • 本示例将一个springboot应用制作成docker镜像,然后使用两个yaml文件将应用部署到CCE集群中。
  • 示例中使用了部署任务的参数替换功能,对yaml中可变的字段进行了参数化。

  

  1. 前置操作
    • 使用软开云“编译构建”服务,制作镜像并上传到镜像仓库。
    • 按照文档中上述的使用步骤创建K8S接入点。

      

  2. 创建部署任务
    • 使用的yml文件来自发布仓库,文件结构如下图所示:

      

    • simple_service.yaml文件内容如下:

        

    • simple_deployment.yaml的内容如下:

        

    • kubernetes部署步骤配置如下:

        

    • 参数设置如下图:

  

  1. 执行部署任务

    执行部署任务,显示有如下日志,表示部署成功。

      

  • 上述示例使用“nodeIP + port”的方式开放对外访问。
  • 部署成功后访问应用接口如下图:

      

yaml文件编写

  • 使用kubectl通过yaml文件部署门槛相对较高,用户可以参考以下两种方法编写yaml文件。
  • 使用yaml文件部署成功后,再使用{{}}引用部署任务参数,挂接流水线打通整个CI/CD流程。

  

方法1:

可参考CCE相关文档:如何使用kubectl命令?

  

方法2:

  1. 在CCE服务中创建好工作负载。
  2. 选择工作负载相关的对象,点击编辑yaml文件,下载得到yaml文件。
  3. 删除掉上述yaml中和版本、时间戳、状态等相关的字段(不删除可能会报错)。

  1. 常见的对象以及yaml在CCE界面上的获取位置:
    • deployment:

      点击工作负载>无状态>更多>编辑YAML

    • service:

      点击资源管理>网络管理>Service>编辑YAML

    • ingress:

      点击资源管理>网络管理>Ingress>查看YAML

    • configmap:

      点击配置中心>配置项(ConfigMap)>查看YAML

    • secret:

      点击配置中心>配置项(Secret)>查看YAML

        

        

  2. yaml文件中需要删除的字段:(yaml中以下字段都是K8S集群自动生成的,因此在部署使用的yaml无需填写。)
    • metadata.selfLink //访问资源自身的URL
    • metadata.uid //系统为每个对象生成的唯一ID
    • metadata.resourceVersion //用于识别改资源内部版本号
    • metadata.generation //对象修改序号
    • metadata.creationTimestamp //创建对象的时间戳
    • metadata.annotations //对象的注解
    • status //对象在系统中当前的状态
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问