4.8 自定义组合部署任务
4.8.19 Kubernetes 部署
部署原理
产品优势
1. 可支持标准的原生kubernetes集群部署,采用公网部署时不需绑定在特定云厂 商。
2. kubectl中使用到的yaml文件可以直接从上游发布服务或者代码仓库获取,打通了 CI/CD流水线。
3. yaml文件和kubectl命令参数都可以引用部署任务中参数设置,增加灵活性,减少 或避免部署脚本的修改。
自定义集群部署
步骤1 获取kubeconfig文件。
● 以华为云CCE集群为例。
a. 登录CCE控制台,选择“资源管理 > 集群管理”,单击待连接集群下的“命 令行工具> kubectl”。
b. 在集群详情页面,绑定公网apiserver地址。
说明
由于部署服务执行机与用户K8S集群不在同一个VPC,所以只能通过弹性IP访问。
c. 在集群详情页面,下载kubectl配置文件(kubeconfig)。
用户指南 4 创建部署任务
说明
下载完成后用户会得到一个kubeconfig.json文件。
– 用户自己的K8S集群
参考资料:创建kubeconfig文件 步骤2 创建Kubernetes接入点。
1. 进入部署服务主页。(部署服务主页<北京4>)
2. 单击“新建任务”,打开“新建任务-基本信息”页面。
3. 单击“下一步”,进入“新建任务-选择部署模板”页面。
4. 选择“空白模板”,并单击“下一步”,进入“添加步骤”页面。
5. 切换到“所有步骤”页签,搜索到“Kubernetes部署”,将其“添加”。
6. 将“部署方式”选择为“自定义集群”。
7. 创建Kubernetes部署接入点。
用户指南 4 创建部署任务
表4-22 创建 Kubernetes 部署接入点—参数说明 参数名称 填写说明
连接名称 服务扩展点的名称。
Kubernetes
URL 填写为,kubeconfig文件中,"name":"externalCluster"字段后 server中的URL,如下例中的URL为https://121.36.**.**:5443
{"name":"externalCluster","cluster":{"server":"https://121.36.**.**:
5443","insecure-skip-tls-verify":true}}
Kubeconfig 直接复制Kubeconfig文件中的全部内容即可。
须知
填写信息后单击“验证并确定”按钮,可以验证接入点是否配置成功。
步骤3 按页面提示,补全所需参数,即可完成Kubernetes公网部署。
须知
● yaml文件中可以使用{{}}引用部署任务“参数设置”中的参数。
● 命令参数中可以使用 ${} 引用部署任务“参数设置”中的参数。
● 当yaml来源选择代码仓库时,需要填写yaml文件的相对路径,当前目录为代码分支 的根目录。
● 当部署方式为公网部署时,可选择单个yaml文件或者文件夹,在内网部署模式下,
仅支持选择单个yaml文件。
● kubectl命令使用指南请参考:kubectl命令 。
----结束
用户指南 4 创建部署任务
CCE 集群部署
步骤1 进入部署服务主页。(例如:部署服务主页<北京4>)
步骤2 单击“新建任务”,打开“新建任务-基本信息”页面。
步骤3 单击“下一步”,进入“新建任务-选择部署模板”页面。
步骤4 选择“空白模板”,并单击“下一步”,进入“添加步骤”页面。
步骤5 切换到“所有步骤”页签,搜索到“Kubernetes部署”,将其“添加”。
步骤6 将“部署方式”选择为“CCE集群”
步骤7 这时可直接选择华为云同区域下的“集群名称”和“命名空间名称”。(什么是集 群?)
步骤8 按页面提示,补全所需参数,即可完成Kubernetes内网部署。
用户指南 4 创建部署任务
须知
● yaml文件中可以使用{{}}引用部署任务“参数设置”中的参数。
● 命令参数中可以使用 ${} 引用部署任务“参数设置”中的参数。
● 当yaml来源选择代码仓库时,需要填写yaml文件的相对路径,当前目录为代码分支 的根目录。
● 部署方式为内网部署时,yaml文件请遵循以下几条规则 – 仅支持yaml格式的文件输入,不支持文件夹路径。
– 只支持deployment、service、ingress三种类型的kubernetes对象的创建和升 级,且deployment对象个数不大于1。
– 同一个部署步骤中,不同的kubernetes对象在同一个yaml文件中定义。
– yaml文件中,不同对象之间用”---”开头的字符分割。
● kubectl命令使用指南请参考:kubectl命令 。
----结束
CCE 集群—deployment 快速部署
步骤1 创建CCE集群,可参考快速创建CCE集群。
步骤2 创建命名空间,可参考创建命名空间。
步骤3 创建负载均衡、容器配置,可参考创建无状态负载。
步骤4 推送镜像到镜像仓库,可参考制作Docker镜像并推送到SWR镜像仓。(可选,若部署 非私有镜像,请跳过)
步骤5 进入部署服务主页。(例如:部署服务主页<北京4>)
步骤6 单击“新建任务”,打开“新建任务-基本信息”页面。
步骤7 单击“下一步”,进入“新建任务-选择部署模板”页面。
步骤8 选择“空白模板”,并单击“下一步”,进入“添加步骤”页面。
步骤9 切换到“所有步骤”页签,搜索到“Kubernetes部署”,将其“添加”。
步骤10 进入步骤编辑页面,参考表4-23进行如下配置:
1. 将“集群类型”选择为“CCE集群”。
2. 将“部署方式”切换至“快速部署”。
3. 选择好需要部署的集群、命名空间、工作负载(deployment)、容器、镜像和镜 像版本(镜像版本不要选择当前版本,会导致部署不生效)。
表4-23 参数说明
集群名称 选择CCE云容器引擎中购买的K8S集群。
命名空间 选择CCE云容器引擎中K8S集群的命名空间。
工作负载(deployment )
● 使用kubectl通过yaml文件部署门槛相对较高,用户可以参考以下两种方法编写 yaml文件。
● 使用yaml文件部署成功后,再使用{{}}引用部署任务参数,挂接流水线打通整个 CI/CD流程。
用户指南 4 创建部署任务
方法1:
可参考CCE相关文档:如何使用kubectl命令?
方法2:
1. 在CCE服务中创建好工作负载。
2. 选择工作负载相关的对象,点击编辑yaml文件,下载得到yaml文件。
3. 删除掉上述yaml中和版本、时间戳、状态等相关的字段(不删除可能会报错)。
用户指南 4 创建部署任务
说明
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 //对象在系统中当前的状态