全部产品
云市场

通过镜像发布 EDAS 自带 Kubernetes 集群应用

更新时间:2019-01-24 17:36:33

用户可以通过使用镜像发布 EDAS 自带 Kubernetes 集群应用,快速获得该镜像中所集成的 Kubernetes 运行环境或软件应用,从而避免发布 Kubernetes 应用的复杂配置等问题。

相对于 ECS 集群应用和 Swarm 集群应用,EDAS 自带 Kubernetes 集群应用无需部署,创建即发布。

前提条件

  1. 开通 EDAS 服务
  2. 创建 VPC
  3. 创建 ECS 实例
  4. 创建命名空间
  5. 创建 Kubernetes 集群
  6. 同步 SLB 到 EDAS:仅当你需要配置负载均衡时需完成该配置。

操作步骤

发布 EDAS 自带 Kubernetes 集群应用的流程如下:

发布 Kubernetes 应用流程

  1. 登录 EDAS 控制台

  2. 在左侧导航栏中单击应用管理,进入应用列表页面。

  3. 在应用列表页面选择地域(Region)和命名空间(可选),然后在右上角单击创建应用

  4. 应用基本信息页面中设置应用的基本信息和参数。

    创建 K8s 应用-基本信息

    应用基本信息参数说明:(标*的参数为必选参数。)

    • 所在区域:在下拉菜单中选择地域命名空间。命名空间可以选择默认(命名空间)。
    • 部署集群:在下拉菜单中选择一个 Kubernetes 集群。
    • 应用类型:应用类型由部署集群决定,选择了 Kubernetes 集群,应用类型则为 Kubernetes 应用,不可配置。
    • 应用名称:输入应用名称。
    • 应用描述:填写应用的基本情况。
  5. 设置完成后,单击下一步:应用配置

  6. 应用配置页面配置镜像。

    1. 应用部署方式选择镜像

    2. 配置镜像区域选择具体镜像。

      配置镜像

      镜像包含我的镜像官方 (镜像) 两种。

      • 我的镜像:根据实际需求,创建并上传到阿里云 Docker registry 的镜像。上传镜像请参考:上传用户镜像

        单击我的镜像,选择地域,然后在该地域中选择具体镜像版本,单击选择

        注意

        • 镜像有 PUBLIC 和 PRIVATE 两种类型。当选择 Private 时,会弹出对话框,需要输入登录该私有镜像仓库的用户名和密码。

          登录私有镜像仓库

        • 建议您在创建应用所在的地域内选择镜像。当有特殊需求,需要跨地域选择镜像,镜像选择完成后,会有一个镜像同步的过程,请稍等片刻。

      • 官方镜像:阿里云为您提供多种 ( Nginx、MySQL、Redis、WordPress 和 MongoDB 等) 类型的标准镜像。

        单击官方,选择镜像类型版本

      说明:镜像选择完成后,配置镜像区域会自动折叠。所选的镜像会显示在配置镜像右侧。

  7. 设置 Pod。

    Pod 是应用最小的部署单元。应用可以有多个 Pod,在负载均衡下,请求会被随机分配给某个 Pod 处理。

    设置 Pod

    1. 设置 Pod 总数

      说明:Pod 在运行失败或出现故障时,可以自动重启或者快速迁移,保证应用的高可用。有状态应用如果使用了持久化存储,能保存实例数据;无状态应用重新部署时不保存实例数据。

    2. 设置单 Pod 资源配额

      系统默认不做配额限制,即单 Pod 的 CPU 和 Memory 显示为 0。如果需要限制配额,请填设置数字。

  8. 设置启动命令和启动参数。

    注意:若不了解原 Dockerfile 镜像的 CMDENTRYPOINT 内容,不建议修改自定义启动命令和启动参数,错误的自定义命令将导致应用创建失败。

    设置启动命令

    • 启动命令:仅需输入[“”]内的内容,如命令 CMD [“/usr/sbin/sshd”,”-D”] ,仅需填写 /usr/sbin/sshd –D
    • 启动参数:一个参数写一行。如 args:[“-c”; “while sleep 2”; “do echo date”; “done”] 中包含 4 个参数,需要分为 4 行来填写。
  9. 设置环境变量。

    在创建应用过程中,将所填环境变量注入到即将生成的容器中,这样可以避免常用环境变量的重复添加。

    设置环境变量

    环境变量参数说明:

    假如您使用 MySQL 镜像时,可以参考如下环境变量:

    • MYSQL_ROOT_PASSWORD 用于设置 MySQL 的 root 密码,必选项
    • MYSQL_USER 和 MYSQL_PASSWORD 用于添加除 root 之外的账号并设置密码,可选项。
    • MYSQL_DATABASE 用于设置生成容器时需要新建的数据库,可选项。

    其它类型的镜像,请根据实际需求进行配置。

  10. 适用于有状态应用)设置应用生命周期管理脚本。

    EDAS 自带 Kubernetes 集群应用有两种状态:

    • 无状态应用:支持多副本部署。重新部署时不保存实例数据。适用于以下使用场景:

      • Web 应用,应用升级或迁移时,实例内数据不保留。
      • 需要灵活水平扩展,以应对业务量骤然变化的应用。
    • 有状态应用:区别于无状态应用,有状态应用会存储需要持久化的数据,在应用升级或迁移时,实例内数据不会丢失。适用于以下使用场景:

      • 需要频繁通过 SSH 到容器进行操作。
      • 数据需要持久化存储(如数据库应用 MySQL 等),或者集群之间有选举特性,服务发现的应用,如 ZooKeeper,etcd等。

    有状态应用可以选择设置应用生命周期管理。

    应用生命周期管理

    生命周期管理脚本说明:

  11. 适用于有状态应用)设置持久化存储

    启用持久化存储后,可以保证应用升级或迁移时,实例数据不丢失。

    说明:设置持久化存储后,系统会为您购买文件存储服务(NAS),按实际使用量付费,详细收费标准请参考 NAS 价格说明

    配置持久化存储

    • 存储类型:文件存储服务(即 NAS,面向阿里云 ECS 实例、HPC 和 Docker 的文件存储服务)。提供标准的文件访问协议,您无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。
    • 存储服务类型:SSD 性能型。使用 SSD 作为存储介质,为应用的工作负载提供高吞吐量与 I/OPS、低时延的存储性能。
    • 挂载目录:选择 NAS 容器的挂载路径,用于对容器里的目录进行持久化存储。
  12. 设置完成后,单击下一步:应用访问设置

  13. (可选)在应用访问设置页面开启负载均衡设置,然后设置私网/公网 SLB 端口容器端口网络协议

    负载均衡是 TCP/UDP 设置。可以配置多个端口映射,用于多端口监听。

    • 私网负载均衡:保证同 VPC 内都可访问该应用。
    • 公网负载均衡:设置公网负载均衡后,系统会为该应用自动购买一个公网 SLB 服务,保证该应用能被公网访问。

    说明:负载均衡按使用量计费,购买后的 SLB 信息可以在负载均衡控制台查看。

    设置负载均衡

    负载均衡参数说明:

    • 负载均衡端口:指的是私网/公网负载均衡前端端口,通过该端口访问应用。如 Nginx 默认端口为 80。
    • 容器端口:进程监听的端口。一般由程序定义,比如:Web 服务默认使用 80/8080 端口,MySQL 服务默认使用 3306 端口等。容器端口可以和 SLB 设置相同的端口。
    • 网络协议:可选 TCP 或 UDP 协议。
  14. (可选)设置 HTTP 流量转发策略

    当您选择用于创建无状态应用的镜像,比如官方镜像,且符合如下场景时,需要配置 HTTP 流量转发策略。

    • 单应用或多应用有相同域名不同路径流量转发需求
    • 单应用或多应用有不同域名流量转发的需求(不同域名解析的访问 IP 是同一个)
    • 灰度发布的流量转发需求
    1. 设置应用发布地址。

      • 地址类型:公网或私网。
      • 新建/复用发布 IP:如果选择新建,则系统会生成 SLB 的 IP;如果选择复用已有,则在发布 IP列选择一个已有的 SLB IP。
      • 发布端口:设置该 SLB 的端口。
      • 网络协议:默认为 HTTP,不可配置。
    2. 设置应用访问规则。

      • 域名:流量转发的匹配域名。由英文字母、数字、中划线(-)和点’.’组成,域名不区分英文大小写,不支持泛域名定义。
      • Path:流量转发的匹配路径。长度限制为 1~80 个字符。path 以’/‘开头,后面由字母,数字,’-‘、’/‘、 ‘.’、’%’、‘?’、’#’、’&’、‘_’、这些字符的0个或多个组成。
      • 容器端口:应用进程监听的端口。
  15. 设置完成后,单击确认创建

结果验证

应用创建可能需要几分钟,创建过程中,可以通过变更流程问题排查指南跟踪创建的过程。创建完成后,返回应用详情页面查看基本信息中应用状态是否为运行正常

EDAS 自带 Kubernetes 集群应用无需部署,创建成功即发布成功了。

查看应用状态