全部產品
Search
文件中心

Enterprise Distributed Application Service:使用控制台管理叢集(K8s)

更新時間:Jun 30, 2024

為了讓您可以方便地在阿里雲上使用Kubernetes管理容器應用,EDAS整合了Container ServiceKubernetes版。您可以在Container ServiceKubernetes版控制台建立Kubernetes叢集,也可以將混合雲叢集(其他雲域或IDC內自建叢集)註冊到Container ServiceKubernetes版控制台,然後將叢集匯入EDAS用於應用部署,EDAS可提供高可用的容器應用管理能力,提高營運效率,讓您專註於容器化的應用的開發與管理。

Kubernetes叢集功能簡介

現EDAS支援匯入在Container ServiceKubernetes版控制台建立的專有版Kubernetes叢集、託管版Kubernetes叢集和Serverless Kubernetes叢集,3種叢集形態的對比詳情,請參見什麼是Container Service Kubernetes 版

專有版Kubernetes叢集和託管版Kubernetes叢集匯入到EDAS中對應的是Container ServiceK8s叢集,Serverless Kubernetes叢集匯入到EDAS中對應的是Serverless K8s叢集。

混合雲叢集(其他雲域或IDC內自建的叢集)需要先將這些叢集註冊到Container ServiceKubernetes版控制台,然後將叢集匯入EDAS。混合雲叢集匯入到EDAS對應的是Container ServiceK8s叢集。

混合雲叢集註冊到Container ServiceKubernetes版的具體操作,請參見通過控制台建立註冊叢集

在EDAS中管理的K8s叢集相對自建K8s叢集來說有以下功能優勢:
  • 在雲原生Kubernetes之上,提供應用託管能力,以應用視角一站式完成開源微服務治理和K8s應用輕量化營運:
    • 應用為中心的視角,管理K8s的原生工作負載如Deployment、Pod等,提供多AZ執行個體打散的高可用部署。
    • 提供分批發布、按流量比例、請求參數的金絲雀灰階發布,藉助EDAS全維度監控的發布變更單,讓您的變更記錄可跟蹤。
    • EDAS對接了主流DevOps系統,助力企業CI/CD落地,降本增效。
  • 在開源微服務體系之上,對於使用市面上近五年的Spring Cloud和Dubbo架構自建的微服務應用無需修改任何代碼即可遷移至EDAS,支援所有應用程式框架的微服務治理:
    • 支援應用發布過程中的無損下線、服務壓測。
    • 應用運行時的服務鑒權、限流降級、離群執行個體摘除。
    • 應用營運的服務查詢、服務測試。
  • 通過產品化的方式,輸出阿里巴巴應用安全生產的三板斧理念,實現可觀測、可灰階、可復原,讓您的企業立即落地安全生產。
    • 可觀測:通過應用總覽、新版發布變更記錄和發布後自動產生發布報告來實現多維度全流程監控。
    • 可灰階:支援金絲雀發布,支援應用按照流量比例或請求內容策略配置實現灰階。
    • 可復原:支援發布過程一鍵復原,並支援已運行應用回退至某歷史版本。

Kubernetes叢集工作流程

在Container ServiceK8s叢集中部署應用,您需在Container ServiceKubernetes版控制台中建立或註冊叢集,並將該叢集匯入到EDAS控制台,然後在匯入的Container ServiceKubernetes版叢集中使用部署套件或鏡像來部署應用。

K8s叢集中建立應用流程
說明 阿里雲Kubernetes叢集和混合雲叢集在匯入EDAS後,管理叢集的操作流程類似,本文以阿里雲Container ServiceK8s叢集為例。

前提條件

  • 阿里雲帳號已開通EDAS服務,請參見開通EDAS
  • 該阿里雲帳號已開通Container ServiceKubernetes版並完成角色授權,請參見Container ServiceACK服務角色
  • 如果使用RAM使用者進行操作,需要保證該RAM使用者已經由阿里雲帳號授予登入等操作許可權。

Container ServiceKubernetes版控制台建立叢集

  • 在EDAS中使用Container ServiceK8s叢集,請在Container ServiceKubernetes版控制台建立託管版Kubernetes叢集或專有版Kubernetes叢集,請參見:
  • 在EDAS中使用Serverless K8s叢集,請在Container ServiceKubernetes版控制台建立Serverless Kubernetes叢集,請參見建立叢集

在EDAS控制台匯入Kubernetes叢集

在EDAS控制台匯入Container ServiceK8s叢集時,會預設安裝應用防護(限流降級)組件(ack-ahas-sentinel-pilot)、ARMS監控組件(ack-arms-pilot)以及Prometheus監控組件(ack-arms-prometheus)。

重要 匯入K8s叢集包含一些操作約束,請您仔細閱讀。更多資訊,請參見K8s叢集匯入操作約束
  1. 登入EDAS控制台

  2. 在左側導覽列選擇資源管理 > Container ServiceK8s叢集
  3. 在頂部功能表列選擇地區,選擇要匯入叢集的目標微服務空間,然後單擊同步Container ServiceKubernetes叢集
  4. 在匯入的Container ServiceK8s叢集的操作列單擊匯入
  5. 匯入Kubernetes叢集對話方塊選擇微服務空間,選擇是否開啟服務網格開關,然後單擊匯入
    說明
    • 如果您未建立微服務空間,在此步驟可不選擇微服務空間,使用預設微服務空間。
    • 如果您需要部署多語言應用,請開啟服務網格開關。
    • 開啟服務網格時,預設會建立兩個私網規格SLB執行個體(slb.s1.small)實現管控,並暴露兩個SLB執行個體的連接埠(6443連接埠和15011連接埠)。更多資訊,請參見背景資訊

      預設產生的兩個小規格SLB執行個體(slb.s1.small)會產生費用。具體收費標準,請參見SLB收費標準

    當Container ServiceK8s叢集狀態顯示為運行中,並且匯入狀態顯示為匯入成功時,表示Container ServiceK8s叢集已成功匯入到EDAS。

在EDAS控制台取消匯入和清理Kubernetes叢集

  1. 登入EDAS控制台

  2. 在左側導覽列選擇資源管理 > Container ServiceK8s叢集(或資源管理 > Serverless K8s叢集)。
  3. 在頂部功能表列選擇地區,在頁面上方選擇叢集所在的微服務空間,然後在目標K8s叢集的操作列單擊取消匯入,並在提示對話方塊單擊確定
    • 取消匯入的叢集如果叢集狀態運行中,則叢集可以被再次匯入至EDAS來建立應用。
    • 取消匯入的叢集如果叢集狀態已刪除,則可以在叢集的操作列單擊清理來將該叢集從EDAS的叢集列表中刪除。
      說明 刪除叢集的相關操作和常見問題,請參見刪除叢集

在EDAS控制台查看Kubernetes叢集詳情

  1. 登入EDAS控制台

  2. 在左側導覽列選擇資源管理 > Container ServiceK8s叢集(或資源管理 > 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)資源。

相關連結