EDAS K8s 应用托管

EDAS 支持以容器的形式托管应用到阿里云 Kubernetes 集群或混合云集群(其他云域或 IDC 内自建 Kubernetes 集群),用户无需理解容器服务底层细节,便可以低门槛拥抱容器技术,最大化地利用资源并完成应用在容器里的全生命周期管理,以及监控、运维等服务。

本文介绍 K8s 环境支持的应用类型和应用托管功能。

K8s 应用托管概述

K8s 环境类型

EDAS 不仅支持在阿里云上使用 Kubernetes 管理容器应用,也支持使用在混合云集群(其他云域或 IDC 内自建 Kubernetes 集群)管理容器应用。

![EDAS支持的K8s集群类型](Java-Framework-EDAS-K8s/EDAS 支持的类型.png)

  • 阿里云 Kubernetes 集群

    EDAS 无缝对接阿里云容器服务 Kubernetes 版,支持导入在容器服务 Kubernetes 版控制台创建的专有版 Kubernetes 集群、托管版 Kubernetes 集群和 Serverless Kubernetes 集群。

  • 混合云集群(其他云域或 IDC 内自建 Kubernetes 集群)

    在日常运维过程中,存在同时在云上和 IDC 里拥有多个 Kubernetes 集群,或者同时拥有多个云域上的 Kubernetes 集群的情况。在这种现状下,您可以将这些集群注册到 ACK 控制台,然后再导入到 EDAS。

说明

混合云集群、专有版和托管版 Kubernetes 集群导入到 EDAS 中对应的是容器服务 K8s 集群;Serverless Kubernetes 集群导入到 EDAS 中对应的是 Serverless K8s 集群。

更多阿里云 Kubernetes 集群和混合云集群的相关信息,请参见集群纳管

K8s 环境支持的应用类型

EDAS 支持以容器的形式托管 Java 应用、PHP 应用以及多语言(包含 Node.js、Go 和 Python 等多种语言)应用。

![EDAS支持的托管应用类型](Java-Framework-EDAS-K8s/EDAS 支持的托管应用类型.png)

  • Java:支持 JAR 包、WAR 包以及镜像部署,不同的部署方式需选择的应用运行环境也会有所不同。
  • PHP:支持从源码构建 PHP 应用并托管到 EDAS。
  • 多语言:支持使用自定义的镜像将多语言应用托管到 EDAS。

更多托管应用类型的部署方式以及运行环境的信息,请参见创建和部署应用概述(K8s)

K8s 环境支持的应用托管功能

您可以将应用托管到阿里云 Kubernetes 集群和混合云集群(其他云域或 IDC 内自建 Kubernetes 集群),并使用 EDAS 为您提供的一系列应用托管能力,包括资源管理、应用部署、CI/CD、应用监控和应用运维等能力。

![EDAS支持的功能](Java-Framework-EDAS-K8s/EDAS 支持的应用托管功能.png)

使用场景 功能
资源管理 EDAS 是面向应用的 PaaS 平台,为应用提供 ECS 和 K8s 环境及相关资源。EDAS 的 K8s 环境中主要包含命名空间和集群纳管的资源管理功能。更多信息,请参见 K8s 资源管理概述
应用部署 创建和部署(首次部署):完成应用开发和测试后,您可以在 Kubernetes 集群中创建并部署应用。更多信息,请参见创建和部署应用概述(K8s)。升级和回滚:应用在 EDAS 中创建并部署后,还会不断迭代,需要升级。如果升级的应用版本发现问题,需要将应用回滚到历史版本。更多信息,请参见升级和回滚应用概述(K8s)
CI/CD 应用在不断迭代过程中,需要持续集成(CI)和持续部署(CD)。EDAS 支持通过 Jenkins云效对您部署的应用进行 CI/CD。具体操作,请参见 CI/CD概述(K8s)
应用监控 EDAS 集成了应用实时监控服务 ARMS,为部署在 EDAS 中的应用提供关键指标的监控能力和报警能力。更多信息,请参见应用监控概述
应用运维 EDAS 为应用提供了一系列运维功能,包括负载均衡、应用扩缩容、限流降级、变更记录、事件中心、日志管理等。更多信息,请参见应用运维概述

资源管理

K8s 资源管理概述

EDAS 不仅支持使用阿里云 Kubernetes 集群管理容器应用,也支持使用混合云集群(其他云域或 IDC 内自建集群)管理容器应用。如果您对应用的运行环境有安全隔离的需求,可以创建并使用微服务空间,实现资源和服务的隔离。

微服务空间

微服务空间为应用提供互相隔离的运行环境,如开发、测试和生产环境等,您可以使用微服务空间实现资源和服务的隔离。

EDAS 默认提供一个默认微服务空间,也支持自建微服务空间。

集群纳管

EDAS 不仅支持使用阿里云 Kubernetes 集群管理容器应用,也支持使用混合云集群(其他云域或IDC内自建集群)管理容器应用。您只需要将 K8s 集群导入到 EDAS 控制台,无需其他复杂操作,便可以直接托管应用到 K8s 集群。

EDAS 不提供创建 K8s 集群的跳转入口,您需要到容器服务管理控制台创建阿里云集群或者注册混合云集群,容器服务通过将 Kubernetes 网络和阿里云 VPC 的深度集成,提供了稳定高性能的容器网络,不同 VPC 逻辑上完全隔离。

  • 阿里云 Kubernetes 集群

    EDAS 无缝对接阿里云容器服务 Kubernetes 版,支持导入在容器服务 Kubernetes 版控制台创建的专有版 Kubernetes 集群、托管版 Kubernetes 集群和 Serverless Kubernetes 集群。3 种集群形态的对比详情,请参见什么是容器服务Kubernetes版

    专有版 Kubernetes 集群和托管版 Kubernetes 集群导入到 EDAS 中对应的是容器服务 K8s 集群,Serverless Kubernetes 集群导入到 EDAS 中对应的是 Serverless K8s 集群。

  • 混合云集群

    在日常运维过程中,存在同时在云上和 IDC 里拥有多个 Kubernetes 集群,同时拥有多个云上的 Kubernetes 集群的情况。在这种现状下,您可以将这些集群注册到容器服务 Kubernetes 版控制台,实现统一的安全治理、应用管理和监控、日志等能力,降低运维成本。

    注册外部集群到 ACK 控制台的具体操作,请参见创建注册集群并接入本地数据中心集群

    混合云集群导入到 EDAS 对应的是容器服务 K8s 集群。

说明 在阿里云 Kubernetes 集群或混合云集群托管应用原理类似,都是将应用托管到一个 Pod 或一组 Pod。

管理命名空间

使用控制台管理微服务空间

使用 API 管理微服务空间

K8s 集群管理

使用控制台管理 K8s 集群

使用 API 管理 K8s 集群

创建和部署 K8s 应用

创建和部署 K8s 应用概述

EDAS 支持使用 ECS 环境和 K8s 环境托管应用,当您选择 K8s 环境托管应用时,EDAS 支持托管 Java 应用、PHP 应用以及多语言(包含 Node.js、Go 和 Python 等多种语言)应用。本文介绍不同应用类型所支持的部署方式。

Java 应用

Spring Cloud、Dubbo 或 HSF 应用开发完成后,可通过 WAR 包、JAR 包或镜像的方式部署至 K8s 集群。

部署方式 介绍 运行环境 监控及治理方案 示例文档
镜像部署 适用于在 K8s 集群中使用自定义的镜像部署应用。 自定义 默认自动挂载 Java Agent 进行精细化监控,并提供完整微服务治理方案(金丝雀发布、服务鉴权、限流降级等)。 在容器服务 K8s 集群中使用镜像方式部署应用
JAR 包部署 适用于 Dubbo 和 Spring Boot 应用。 Java 在容器服务 K8s 集群中使用 JAR 包或 WAR 包部署应用
WAR 包部署 适用于 Dubbo 和 Spring 应用。 Java、Apache
WAR 包或者 FatJar 包部署 适用于部署 HSF 应用。 EDAS-Container

说明 如果您想在 K8S 环境中同时创建多个 Java 应用,可以调用 InsertK8sApplication 接口创建应用。更多信息,请参见InsertK8sApplication

PHP 应用

目前支持从源码构建 PHP 应用并托管到 EDAS。在部署应用时,需要选择 PHP 版本,EDAS 提供了 PHP 7.3/Apache/Centos 7 运行环境,该运行环境内已经安装了常用的 PHP 插件。

部署 PHP 应用时默认自动挂载 PHP Agent 进行精细化监控,并通过 Istio(Service Mesh)提供完整微服务治理方案(金丝雀发布、服务鉴权、限流降级等)。

示例文档:从源码构建PHP应用并部署至容器服务K8s集群

多语言应用

目前支持使用自定义的镜像将多语言应用托管到 EDAS。

部署多语言应用时通过 Istio(Service Mesh)提供完整微服务治理方案(金丝雀发布、服务鉴权、限流降级等)。

示例文档:使用自定义镜像部署多语言应用至K8s集群

说明 如果您想同时在 K8s 环境中创建多个多语言应用,可以调用 InsertK8sApplication 接口创建应用。更多信息,请参见InsertK8sApplication

Java 应用

JAR 包或 WAR 包部署

镜像部署

转化 Deployment 为 EDAS 应用

PHP 应用

多语言应用

高级配置

升级和回滚 K8s 应用

升级和回滚 K8s 应用概述

K8s 单批发布

K8s 分批发布

K8s 金丝雀发布

K8s 回滚应用

CI/CD

CI/CD 概述(K8s)

云效

Jenkins

应用监控

应用监控概述

监控

报警

应用运维

应用运维概述

管理应用生命周期

访问应用(暴露服务)

应用扩缩容

限流降级

变更记录

事件中心

日志管理

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2017-2021 Shadowalker
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信