为了让您可以方便地在阿里云上使用Kubernetes管理容器应用,EDAS集成了容器服务Kubernetes版。您可以在容器服务Kubernetes版控制台创建Kubernetes集群,也可以将混合云集群(其他云域或IDC内自建集群)注册到容器服务Kubernetes版控制台,然后将集群导入EDAS用于应用部署,EDAS可提供高可用的容器应用管理能力,提高运维效率,让您专注于容器化的应用的开发与管理。

Kubernetes集群功能简介

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

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

混合云集群(其他云域或IDC内自建的集群)需要先将这些集群注册到容器服务Kubernetes版控制台,然后将集群导入EDAS。混合云集群导入到EDAS对应的是容器服务K8s集群。

混合云集群注册到容器服务Kubernetes版的具体操作,请参见创建注册集群并接入本地数据中心集群

在EDAS中管理的K8s集群相对自建K8s集群来说有以下功能优势:
  • 在云原生Kubernetes之上,提供应用托管能力,以应用视角一站式完成开源微服务治理和K8s应用轻量化运维:
    • 应用为中心的视角,管理K8s的原生工作负载如Deployment、Pod等,提供多AZ实例打散的高可用部署。
    • 提供分批发布、按流量比例、请求参数的金丝雀灰度发布,借助EDAS全维度监控的发布变更单,让您的变更记录可跟踪。
    • EDAS对接了主流DevOps系统,助力企业CI/CD落地,降本增效。
  • 在开源微服务体系之上,对于使用市面上近五年的Spring Cloud和Dubbo框架自建的微服务应用无需修改任何代码即可迁移至EDAS,支持所有应用框架的微服务治理:
    • 支持应用发布过程中的无损下线、服务压测。
    • 应用运行时的服务鉴权、限流降级、离群实例摘除。
    • 应用运维的服务查询、服务测试。
  • 通过产品化的方式,输出阿里巴巴应用安全生产的三板斧理念,实现可观测、可灰度、可回滚,让您的企业立即落地安全生产。
    • 可观测:通过应用总览、新版发布变更记录和发布后自动生成发布报告来实现多维度全流程监控。
    • 可灰度:支持金丝雀发布,支持应用按照流量比例或请求内容策略配置实现灰度。
    • 可回滚:支持发布过程一键回滚,并支持已运行应用回退至某历史版本。

Kubernetes集群工作流程

在容器服务K8s集群中部署应用,您需在容器服务Kubernetes版控制台中创建或注册集群,并将该集群导入到EDAS控制台,然后在导入的容器服务Kubernetes版集群中使用部署包或镜像来部署应用。

K8s集群中创建应用流程
说明 阿里云Kubernetes集群和混合云集群在导入EDAS后,管理集群的操作流程类似,本文以阿里云容器服务K8s集群为例。

前提条件

  • 阿里云账号已开通EDAS服务,请参见开通EDAS
  • 该阿里云账号已开通容器服务Kubernetes版并完成角色授权,请参见容器服务默认角色
  • 如果使用RAM用户进行操作,需要保证该RAM用户已经由阿里云账号授予登录等操作权限。

容器服务Kubernetes版控制台创建集群

在EDAS控制台导入Kubernetes集群

在EDAS控制台导入容器服务K8s集群时,会默认安装应用防护(限流降级)组件(ack-ahas-sentinel-pilot)、ARMS监控组件(ack-arms-pilot)以及Prometheus监控组件(ack-arms-prometheus)。

注意 导入K8s集群包含一些操作约束,请您仔细阅读。更多信息,请参见K8s集群导入操作约束
  1. 登录EDAS控制台
  2. 在左侧导航栏选择资源管理 > 容器服务K8s集群
  3. 在顶部菜单栏选择地域,选择要导入集群的目标微服务空间,然后单击同步容器服务Kubernetes集群
  4. 在导入的容器服务K8s集群的操作列单击导入
  5. 导入Kubernetes集群对话框选择微服务空间,选择是否打开服务网格开关,然后单击导入
    说明
    • 如果您未创建微服务空间,在此步骤可不选择微服务空间,使用默认微服务空间。
    • 如果您需要部署多语言应用,请打开服务网格开关。
    • 开启服务网格时,默认会创建两个私网规格SLB实例(slb.s1.small)实现管控,并暴露两个SLB实例的端口(6443端口和15011端口)。更多信息,请参见背景信息

      默认生成的两个小规格SLB实例(slb.s1.small)会产生费用。具体收费标准,请参见包年包月收费标准按量计费收费标准

    当容器服务K8s集群状态显示为运行中,并且导入状态显示为导入成功时,表示容器服务K8s集群已成功导入到EDAS。

在EDAS控制台取消导入和清理Kubernetes集群

  1. 登录EDAS控制台
  2. 在左侧导航栏选择资源管理 > 容器服务K8s集群(或资源管理 > Serverless K8s集群)。
  3. 在顶部菜单栏选择地域,在页面上方选择集群所在的微服务空间,然后在目标K8s集群的操作列单击取消导入,并在提示对话框单击确定
    • 取消导入的集群如果集群状态运行中,则集群可以被再次导入至EDAS来创建应用。
    • 取消导入的集群如果集群状态已删除,则可以在集群的操作列单击清理来将该集群从EDAS的集群列表中删除。
      说明 删除集群的相关操作和常见问题,请参见删除集群

在EDAS控制台查看Kubernetes集群详情

  1. 登录EDAS控制台
  2. 在左侧导航栏选择资源管理 > 容器服务K8s集群(或资源管理 > Serverless K8s集群)。
  3. 单击集群ID进入集群详情页面。
    集群详情页面您可查看该集群的详细信息、ECS实例、Deployments和应用列表等信息。
    • 集群信息:该区域展示了集群基本信息,如集群ID、csClusterId、集群名称、微服务空间、集群类型、VPC ID、网络类型、集群状态和描述信息等信息。
      • 集群信息区域右上角单击查看详情,可查看集群的详细信息。
      • 集群信息区域右上角单击编辑,可修改集群的描述信息。
    • ECS实例:该区域展示了该集群包含的ECS实例列表和ECS实例概要信息。
    • Deployments:该区域展示您转换和托管到EDAS的第三方平台自建Deployment。
    • 应用列表:该区域展示了集群内包含的应用,您可以查看应用名称、JDK版本、应用运行环境、实例总数、运行中的实例数和应用负责人等信息。您可以单击应用名称进入应用详情页面。

K8s集群导入操作约束

  • 集群安全组配置约束:
    • 需要保证集群所有节点在集群的安全组内或者与集群的安全组能互通。互通的具体操作,请参见为什么容器之间网络不通?
    • 不能删除ACK为集群安全组设置的默认规则。
  • 集群节点配置约束:
    • 需要为集群预留可分配的CPU,内存,Pod资源,确保EDAS管控组件能正常运行。
    • 不能删除ACK为节点配置的RAM角色KubernetesWorkerRole-*
  • 集群apiServer SLB配置约束:
    • 不要阻拦来自内部访问地址100.104.0.0/16的访问请求。
    • 不要删除SLB上的ACK添加的内置标签。
    • 不要复用SLB的6443端口。
  • 集群Helm Chart操作约束:
    • 不能删除EDAS安装的ahas-sentinel-pilot、arms-eventer、arms-pilot和arms-prom组件,包括这些Helm Chart安装的所有资源。
    • 不能安装开源的oam-runtime、kubevela、keda或flagger。
    • 不能删除或修改任何在edas-oam-system命名空间下的K8s资源。
  • 集群ClusterRole操作约束:

    不能使用ACK控制台、kubectl或者第三方界面删除或修改edas-default-cluster-role。

  • ClusterRoleBinding操作约束:

    不能使用ACK控制台、kubectl或者第三方界面删除或修改edas-default-cluster-role-binding、edas-oam-cluster-role-binding、keda-hpa-controller-external-metrics。

  • CRD和CR操作约束:
    • 不能直接操作以下CRD和CR资源,列表如下:
      • alertproviders.flagger.app
      • applicationconfigurations.core.oam.dev
      • applications.oam-domain.alibabacloud.com
      • applicationscopes.core.oam.dev
      • autoscalings.edas.aliyun.oam.com
      • basecomponents.oam-domain.alibabacloud.com
      • canaries.flagger.app
      • componentschematics.core.oam.dev
      • crdreleases.clm.cloudnativeapp.io
      • dynamiclabels.extension.oam.dev
      • imagebuilders.edas.aliyun.oam.com
      • logcollectors.edas.aliyun.oam.com
      • meshtraits.edas.aliyun.oam.com
      • metrictemplates.flagger.app
      • mseruletraits.edas.aliyun.oam.com
      • packageversions.oam-domain.alibabacloud.com
      • rollouts.edas.aliyun.oam.com
      • scaledobjects.keda.k8s.io
      • scalingrules.oam-domain.alibabacloud.com
      • serviceregistrytraits.edas.aliyun.oam.com
      • servicetraits.edas.aliyun.oam.com
      • sources.clm.cloudnativeapp.io
      • traits.core.oam.dev
      • triggerauthentications.keda.k8s.io
      • workloadtypes.core.oam.dev
    • 不能修改EDAS创建的aliyunlogconfigs.log.alibabacloud.com(含有以下标签:edas-domain: edas-admin) 资源。

相关链接