本文介紹阿里云容器服務 Serverless 版的產品簡介、核心優勢、與ACK集群對比、應用場景、核心功能等信息,幫助您快速了解ACK Serverless集群。
產品簡介
容器服務 Serverless 版是阿里云推出的無服務器Kubernetes容器服務。在容器服務 Serverless 版提供的ACK Serverless集群中,您無需購買節點即可直接部署容器應用,無需對集群進行節點維護和容量規劃,并且根據應用配置的CPU和內存資源量進行按需付費。ACK Serverless集群提供完善的Kubernetes兼容能力,同時降低了Kubernetes使用門檻,讓您更專注于應用程序,而不是管理底層基礎設施。
ACK Serverless集群中的Pod基于阿里云彈性容器實例ECI運行在安全隔離的容器運行環境中。每個Pod容器實例底層通過輕量級虛擬化安全沙箱技術完全強隔離,容器實例間互不影響。
ACK Serverless集群包括ACK Serverless集群基礎版和ACK Serverless集群Pro版。ACK Serverless集群Pro版是在ACK Serverless集群基礎版的基礎上,針對企業大規模生產環境進一步增強了可靠性、安全性,并且提供可賠付SLA的ACK Serverless集群。關于ACK Serverless集群Pro版的更多信息,請參見集群概述。
核心優勢
核心優勢 | 說明 |
開箱即用 | 低門檻快速創建集群,無需管理Kubernetes節點和服務器即可直接部署應用。 |
超大容量 | 集群無需額外配置即可輕松獲得最多50,000個Pod容量,無需提前規劃容量。 重要 在Pod大量關聯 Service的情況下,建議保持在20,000個以內。 |
秒級彈性 | 始終確保在極短時間內創建出數千Pod,無需擔心突發業務流量因Pod創建時延受到影響。 |
彈性預測 | 依據歷史預測資源用量提前準備,突發業務流量處理更加平滑。 |
原生兼容 | 完善的Kubernetes兼容性,支持原生Kubernetes應用和生態,無縫遷移Kubernetes應用。 |
安全隔離 | Pod基于ECI服務創建,每個容器實例底層通過輕量級虛擬化安全沙箱技術完全強隔離,容器實例間互不影響。 |
降低成本 | 應用按需創建,按量計費,不運行不計費,沒有資源閑置費用,同時Serverless帶來更低的運維成本。 |
服務集成 | 支持容器應用與阿里云基礎服務無縫整合;支持容器與虛擬機應用的互聯互通。 |
豐富的產品層次能力,支持更高等級可靠性、SLA和更大集群容量。支持基礎版無縫遷移到Pro版。 |
ACK Serverless集群與ACK集群的對比
如下圖所示,左側為ACK集群,右側為ACK Serverless集群。
應用場景
應用場景 | 說明 |
應用托管 | ACK Serverless集群中無需管理和維護節點,無需容量規劃,極大降低業務的基礎設施管理和運維成本。 |
突發業務 | 對于有明顯的波峰波谷特征的業務負載,例如在線教育、電子商務等行業,ACK Serverless集群的秒級伸縮能力可以顯著降低計算成本,減少閑置資源浪費,平滑應對突發流量高峰。更多信息,請參見彈性伸縮概述。 |
數據計算 | 面對Spark等數據計算需求,ACK Serverless集群可以在短時間內啟動大量Pod及時處理任務,計算結束時Pod自動釋放停止計費,極大降低整體計算成本。更多信息,請參見通過ACK Serverless創建Spark計算任務。 |
CI/CD | 基于ACK Serverless集群搭建Jenkins或Gitlab-Runner等持續集成環境,并快速完成應用源碼編譯、鏡像構建和推送以及應用部署的流水線,各持續集成任務之間安全隔離互不影響,同時無需維護固定資源池,降低計算成本。更多信息,請參見在ACK Serverless集群中部署Jenkins并完成應用構建和部署、ACK Serverless彈性低成本CI/CD。 |
定時任務 | 在ACK Serverless集群中運行定時任務,任務結束后停止計費。無需維護固定資源池,避免資源閑置浪費。更多信息,請參見容器定時伸縮(CronHPA)。 |
核心功能
ACK Serverless集群提供完善的Kubernetes兼容性,除原生Kubernetes功能外,建議您在將生產業務部署到ACK Serverless集群前關注如下功能。
ECI Profile
ACK Serverless集群底層基于ECI服務來運行Pod,通過配置ECI Profile,您可以更加細粒度地控制Pod及Pod相關的集群行為。ECI Profile本質是位于kube-system命名空間下的名為eci-profile的ConfigMap,主要字段說明如下:
字段 | 說明 |
vpcId | Pod所在專有網絡的唯一標識。 |
securityGroupId | 專有安全組的唯一標識。 |
vSwitchIds | 專有網絡內交換機的唯一標識,可配置多個半角逗號(,)間隔。虛擬節點將基于交換機生成。 |
selectors | Pod選擇器。支持基于命名空間和Label選擇Pod,并自動追加Annotation或Label。 |
enableClusterIp | 是否啟用ClusterIP。默認為true。 |
enableLogController | 是否啟用阿里云日志控制器。默認為false。 |
enablePVCController | 是否啟用PVC控制器。默認為false。 |
enablePrivateZone | 是否啟用PrivateZone服務發現能力。默認為false。 |
featureGates | 不穩定功能門禁開關。 |
更多詳細說明,請參見ECI實例概述。
虛擬節點
使用ACK Serverless集群時,您無需再管理節點,但為了保持與原生Kubernetes的兼容性,您仍可以在集群中看到虛擬節點。虛擬節點擁有超大的計算資源容量,讓ACK Serverless集群獲得極大的彈性能力,而不必擔心突發業務流量。虛擬節點依據eci-profile ConfigMap中的vSwitchIds
生成,本身不占用任何計算資源。
Pod配置
在ACK Serverless集群中創建Pod,您可以通過添加Annotation來定制Pod,詳情請參見下表:
下表列舉的Annotation僅適用于創建到虛擬節點上的Pod(即ECI實例),調度到普通節點上的Pod不受這些Annotation影響。
Annotation請添加在Pod的
metadata
下,例如:配置Deployment時,Annotation需添加在spec.template.metadata
下。Pod Annotation的優先級高于ECI Profile中配置的相同功能。
參數 | 示例值 | 描述 | 相關文檔 |
k8s.aliyun.com/eci-security-group | sg-bp1dktddjsg5nktv**** | 安全組ID。 | |
k8s.aliyun.com/eci-vswitch | vsw-bp1xpiowfm5vo8o3c**** | 交換機ID,支持指定多個交換機實現多可用區功能。 | |
k8s.aliyun.com/eci-schedule-strategy | vSwitchOrdered | 多可用區調度策略。取值范圍:
| |
k8s.aliyun.com/eci-ram-role-name | AliyunECIContainerGroupRole | RAM角色,賦予ECI訪問阿里云產品的能力。 | |
k8s.aliyun.com/eci-use-specs | 2-4Gi,4-8Gi,ecs.c6.xlarge | ECI實例規格,支持指定多規格,包括指定vCPU和內存,或者ECS規格。 | |
k8s.aliyun.com/eci-spot-strategy | SpotAsPriceGo | 搶占式實例策略。取值范圍:
| |
k8s.aliyun.com/eci-spot-price-limit | 0.5 | 搶占式實例價格。 說明 僅當k8s.aliyun.com/eci-spot-strategy設置為SpotWithPriceLimit時有效。 | |
k8s.aliyun.com/eci-cpu-option-core | 2 | CPU物理核心數。 | |
k8s.aliyun.com/eci-cpu-option-ht | 1 | 每核線程數。 | |
k8s.aliyun.com/eci-reschedule-enable | "true" | 是否開啟ECI重調度。 | |
k8s.aliyun.com/pod-fail-on-create-err | "true" | 創建失敗的ECI實例是否體現Failed狀態。 | |
k8s.aliyun.com/eci-image-snapshot-id | imc-2zebxkiifuyzzlhl**** | 指定鏡像緩存ID。 說明 使用鏡像緩存支持手動指定和自動匹配兩種方式,建議使用自動匹配方式。 | |
k8s.aliyun.com/eci-image-cache | "true" | 自動匹配鏡像緩存。 說明 使用鏡像緩存支持手動指定和自動匹配兩種方式,建議使用自動匹配方式。 | |
k8s.aliyun.com/acr-instance-id | cri-j36zhodptmyq**** | ACR企業版實例ID。 支持跨地域指定ACR企業版實例,此時需在實例ID前加上所屬地域,例如"cn-beijing:cri-j36zhodptmyq****"。 | |
k8s.aliyun.com/eci-eip-instanceid | eip-bp1q5n8cq4p7f6dzu**** | EIP實例ID。 | |
k8s.aliyun.com/eci-with-eip | "true" | 是否自動創建并綁定EIP。 | |
k8s.aliyun.com/eip-bandwidth | 5 | EIP帶寬。 | |
k8s.aliyun.com/eip-common-bandwidth-package-id | cbwp-2zeukbj916scmj51m**** | 共享帶寬包ID。 | |
k8s.aliyun.com/eip-isp | BGP | EIP線路類型,僅按量付費的EIP支持指定。取值范圍:
| |
k8s.aliyun.com/eip-internet-charge-type | PayByBandwidth | EIP的計量方式。取值范圍:
| |
k8s.aliyun.com/eci-enable-ipv6 | "true" | 是否綁定一個IPv6地址。 | |
k8s.aliyun.com/eci-ipv6-bandwidth-enable | "true" | 是否開通ECI的IPv6公網通信能力。 | |
k8s.aliyun.com/eci-ipv6-bandwidth | 100M | 設置IPv6地址的公網帶寬峰值。 | |
kubernetes.io/ingress-bandwidth | 40M | 入方向帶寬。 | |
kubernetes.io/egress-bandwidth | 20M | 出方向帶寬。 | |
k8s.aliyun.com/eci-extra-ephemeral-storage | 50Gi | 臨時存儲空間大小。 | |
k8s.aliyun.com/eci-eviction-enable | "true" | 設置自動驅逐臨時存儲空間不足的ECI Pod。 | |
k8s.aliyun.com/eci-core-pattern | /pod/data/dump/core | Core dump文件保存目錄。 | |
k8s.aliyun.com/eci-ntp-server | 100.100.*.* | NTP Server。 | |
k8s.aliyun.com/plain-http-registry | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | 自建鏡像倉庫地址。 使用HTTP協議的自建鏡像倉庫中的鏡像創建ECI實例時,需配置該參數,使ECI使用HTTP協議拉取鏡像,避免因協議不同而導致鏡像拉取失敗。 | |
k8s.aliyun.com/insecure-registry | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | 取值為自建鏡像倉庫地址。 使用自簽發證書的自建鏡像倉庫中的鏡像創建ECI實例時,需配置該參數來跳過證書認證,避免因證書認證失敗而導致鏡像拉取失敗。 |
更多詳細說明,請參見ECI Pod Annotation。
網絡管理
集群中的ECI Pod默認使用Host網絡模式,占用交換機vSwtich的一個彈性網卡ENI資源,與VPC內的ECS、RDS互聯互通。
類型 | 說明 |
Service |
|
Ingress |
|
服務發現 | 如果您的集群內部應用需要Service的服務發現功能,請在創建集群時開啟PrivateZone或CoreDNS。您也可以在集群創建后通過ECI Profile開啟PrivateZone或通過組件管理安裝CoreDNS組件。 |
支持給ECI Pod掛載EIP,可自動創建或者綁定到已有的EIP實例。 |
存儲管理
存儲方式 | 說明 |
阿里云塊存儲(Disk) |
|
阿里云文件存儲(NAS) |
|
可觀測性
功能 | 說明 |
日志 | 在ACK Serverless集群中,您可以通過編輯eci-profile來啟用日志服務,之后將開始收集Pod日志,詳情請參見通過Pod環境變量采集應用日志。 |
監控 | 您可以通過組件安裝arms-prometheus組件啟用集群監控,詳情請參見阿里云Prometheus監控。 |
鏡像管理
ACK Serverless集群支持通過ImageCache來加速創建Pod,這對快速響應您的業務至關重要。關于如何為Pod啟用ImageCache,請參見使用ImageCache。
當您在ACK Serverless集群中創建Pod使用的鏡像來自ACR,還可以通過配置ACR企業版免密來簡化配置。
彈性伸縮
ACK Serverless集群中沒有真實節點,所以無需考慮節點的容量規劃,也無需考慮基于cluster-autoscaler的節點擴容,您只需要關注應用的按需擴容。建議您配置HPA或者CronHPA策略進行Pod的靈活按需擴容,詳情請參見彈性伸縮概述。
授權管理
如果您的業務Pod需要訪問阿里云云產品,您可以通過配置RRSA(RAM Roles for Service Accounts)來通過云產品鑒權。
集群管理
類型 | 說明 |
智能運維 | 您可以通過智能運維來定期檢查ACK Serverless集群的健康度,或者進行集群升級或遷移的前置檢查。 |
升級 | ACK Serverless集群支持集群無縫升級,您無需擔心業務受影響。 |
Pro版 | 提供更高等級可靠性、SLA和更大集群容量。 |
遷移 | 支持將試用體驗或者早期的ACK Serverless集群基礎版無縫遷移到ACK Serverless集群Pro版以獲得更高等級保證。 |
組件管理
ACK Serverless集群提供多種類型的組件以擴展集群功能,您可以根據業務需求部署、升級和卸載組件。具體操作,請參見管理組件。
組件托管
為簡化集群運維,讓您更專注于應用程序,ACK Serverless集群提供部分系統組件托管能力。例如,在ACK Serverless集群中創建的Kubernetes核心組件會被托管,包括Kube Scheduler、Cloud Controller Manager、Kube Controller Manager和Kube API Server等。除Kubernetes核心組件外,ACK Serverless集群會逐步上線存儲、網絡、監控等系統組件的托管形態。
組件托管后仍會在集群中創建ClusterRole、ClusterRoleBinding、ServiceAccount、Service、ConfigMap等對象,這些對象不會占用實際的ECI資源。為確保集群正常運行,請勿修改這些對象。
托管組件由ACK Serverless集群負責部署和維護,但您仍可以在ACK Serverless集群中使用相同的API與組件進行交互。托管組件具有如下優勢:
不占用您賬戶下的ECI實例資源,節約開銷。
無需自行部署和維護,自動化機制會確保組件處于最佳運行狀態。
支持高可用架構。
應用管理
支持在容器服務管理控制臺通過應用市場安裝Helm應用,并通過Helm頁面進行管理。具體操作,請參見使用Helm簡化應用部署。
計費說明
ACK Serverless集群分為ACK Serverless集群基礎版和ACK Serverless集群Pro版,不同類型集群的計費項和計費標準不同,詳情請參見計費說明。
使用限制
使用ACK Serverless集群前,需要注意以下使用限制:
不支持DaemonSet型工作負載。您可以通過將DaemonSet重新配置為Pod的Sidecar容器來運行。
不支持在Pod
manifest
中指定HostPath
和HostNetwork
。不支持Privileged特權容器。您可以使用Security Context為Pod添加Capability。
說明特權容器功能正在內測中。如需體驗,請提交工單申請。
不支持NodePort類型的Service,不支持配置Session Affinity。
不支持深圳金融云,不支持政務云。
聯系我們
歡迎您使用釘釘搜索釘釘群號31544226加入ACK Serverless集群釘釘群。