计算巢线下部署k8s

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 线下部署功能介绍:目前计算巢已支持线下部署功能,用户可以基于该功能实现物理机或者容器(k8s)的线下部署。基于物理机的方式可以将服务商提供的软件直接安装到用户线下集群中;基于k8s的方式可以将服务商的软件与k8s基础镜像打包,并给用户部署指引,用户只需要执行对应的很简单的几条命令就可以在自己的线下集群构建出一整套k8s集群。下面主要对计算巢线下部署k8s功能进行介绍和演示。

背景

计算巢介绍:计算巢是阿里云开放给ISV与其客户的服务管理PaaS平台,旨在解决ISV云上交付、部署、运维问题,建立ISV与客户之间的通道。针对ISV的实际场景,计算巢提供了私有化部署、托管版部署、代运维服务三种模式。托管版和私有化部署的区别是针对于部署在ISV的账号下还部署在用户账号下。

线下部署功能介绍:目前计算巢已支持线下部署功能,用户可以基于该功能实现物理机或者容器(k8s)的线下部署。基于物理机的方式可以将服务商提供的软件直接安装到用户线下集群中;基于k8s的方式可以将服务商的软件与k8s基础镜像打包,并给用户部署指引,用户只需要执行对应的很简单的几条命令就可以在自己的线下集群构建出一整套k8s集群。下面主要对计算巢线下部署k8s功能进行介绍和演示。

整体架构

计算巢线下部署目前支持离线和联网场景。离线场景指的是,服务商将部署配置信息填写好后生成离线部署包,用户可以在集群的Master节点用该离线部署包创建出一套k8s环境,离线场景的用户集群未接入公网,所有节点都在用户私网内。在线场景则是用户指定某台联网的节点,计算巢直接在指定的节点上执行安装k8s集群。下图所示为计算巢离线部署线下k8s集群的整体流程。

image.png

使用演示

服务商创建服务

  1. 1. 点击创建服务
  2. image.png
  3. 2. 服务类型勾选“线下部署服务”
  4. image.png
  5. 3. 目前k8s集群部署,服务商集成软件的方式有两种:helm或者yaml方式。对于yaml方式,服务商只需要编辑好yaml即可。而对于helm方式,服务商可以将软件构建为helm chart,并将该chart提前上传到计算巢部署物中,在创建服务时就选择对应的helm chart即可。对于yaml方式:部署方式选择k8s打包部署,应用配置选择YAML,yaml名称即为创建的应用的名称,yaml内容为具体的k8s部署yaml,部署参数为服务商指定的用户自定义参数。image.png
  6. 4. 对于helm方式,首先简单说明一下如何创建helm chart部署物,计算巢部署物功能详情请查看:https://help.aliyun.com/zh/computing-nest/deployment-object-management/?spm=a2c4g.11174283.0.i3image.png
  7. 5. 部署物创建好后,就可以在下面的应用配置中选择Helm,然后选择对应的部署物和版本。计算巢目前支持多helm chart。
  8. image.png
  9. 6. 填写部署参数,如上图所示,选择了mysql与nginx部署物,所以在填写部署参数时需要如下:其中组件名称为helm chart包没有版本号的部分。该部署参数最后会覆盖原chart的values.yaml。
components:
  # 组件1名称 nginx
  nginx:
    # 以下参数仅为示例,可以根据实际情况填写
    controller:
      name: controller
      service:
        externalIPs:
          - 192.168.37.101
    rbac:
      create: true
  # 组件2名称 mysql
  mysql:
    mysqlRootPassword: test123.
    mysqlUser: test
    mysqlPassword: abcd123.
  1. 7. 保存服务后可以在“出包管理”页签中看到包状态为“生成中”。image.png
  2. 8. 当部署包生成完成后会如下:image.png
  3. 9. 点击“管理”可以看到部署指引,服务商可以根据该部署指引做一些测试。image.png

用户部署

离线部署

该场景下用户集群未接入公网,需要用户手动将离线安装包存储到某个节点,在该节点执行安装。下面演示如何使用该功能。

  1. 1. 用户部署需要填写部署参数,其中部署包内容此处示例选择软件+k8s集群,部署网络环境选择离线环境,image.png
  2. 2. 填写要部署的节点的内网ip,ssh配置此处采用密钥方式,所以需要在部署前将集群中的节点都配置好ssh免密登录。image.png
  3. 3. 部署参数可以根据实际使用情况填写,如果填写了那该部署参数将会覆盖原value.yaml作为chart的部署参数。image.png
  4. 4. 点击“开始离线部署”
  5. image.png
  6. 5. 此时会得到具体的部署指引,根据引导执行部署。
  7. image.png

联网部署

联网部署与离线不同的是,计算巢会通过将托管实例作为跳板机帮助用户在指定的master节点上执行部署。

参数配置方面基本保持一致,只是多了一项选择托管实例,如果没有则可以创建一个。

image.png

填写好配置后点击“下一步”,然后点击“确认订单”即可。

总结

通过线下部署功能,计算巢便覆盖了线上与线下的多种部署模式,提供给服务商一站式体验。本文只是介绍了线下部署k8s的部分,还有线下部署物理机的功能后期也会详细说明。不过目前线下部署模式也还有一些需要改进的地方,例如yaml方式部署支持不完善、部署日志、运维相关等,后期也会针对这些不足持续优化。下一篇文章将会介绍线下部署k8s的实现。

目录
相关文章
|
6天前
|
Kubernetes 应用服务中间件 Docker
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件
|
4天前
|
Kubernetes 前端开发 容器
k8s部署模板
k8s部署模板
|
6天前
|
运维 Kubernetes Linux
Kubernetes详解(七)——Service对象部署和应用
Kubernetes详解(七)——Service对象部署和应用
11 3
|
6天前
|
Kubernetes 应用服务中间件 nginx
Kubernetes详解(六)——Pod对象部署和应用
在Kubernetes系列中,本文聚焦Pod对象的部署和管理。首先,通过`kubectl run`命令创建Pod,如`kubectl run pod-test --image=nginx:1.12 --port=80 --replicas=1`。接着,使用`kubectl get deployment`或`kubectl get pods`查看Pod信息,添加`-o wide`参数获取详细详情。然后,利用Pod的IP地址进行访问。最后,用`kubectl delete pods [Pod名]`删除Pod,但因Controller控制器,删除后Pod可能自动重建。了解更多细节,请参阅原文链接。
15 5
|
6天前
|
Kubernetes Linux Docker
Kubernetes详解(四)——基于kubeadm的Kubernetes部署
Kubernetes详解(四)——基于kubeadm的Kubernetes部署
24 2
|
6天前
|
Kubernetes 应用服务中间件 nginx
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
K8S二进制部署详解,一文教会你部署高可用K8S集群(二)
|
6天前
|
Kubernetes 网络安全 数据安全/隐私保护
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
K8S二进制部署详解,一文教会你部署高可用K8S集群(一)
|
6天前
|
SQL Kubernetes 调度
【技术解析 | 实践】部署Kubernetes模式的Havenask集群
本次分享内容为havenask的kubernetes模式部署,由下面2个部分组成(部署Kubernetes模式Havenask集群、 Kubernetes模式相关问题排查),希望可以帮助大家更好了解和使用Havenask。
504 1
|
6天前
|
Kubernetes 网络协议 Python
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(二)
|
6天前
|
Kubernetes 应用服务中间件 开发工具
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)
一文教会你,如何通过kubeadm,在生产环境部署K8S高可用集群(一)