Skip to content

AliyunContainerService/karpenter-provider-alibabacloud

Repository files navigation

Alibaba Cloud Karpenter Provider

Go Report Card License

Alibaba Cloud Karpenter Provider 是一个为 Karpenter 项目提供的阿里云实现,用于在阿里云上自动管理 Kubernetes 节点。

功能特性

  • 自动扩缩容: 根据工作负载需求自动创建和删除节点
  • 多可用区支持: 自动在多个可用区间分布节点
  • 灵活配置: 通过 ECSNodeClass 和 NodePool CRD 灵活配置节点属性
  • 阿里云原生: 深度集成阿里云 ECS、VPC、安全组等服务

架构图

graph TD
    A[Kubernetes Pod] --> B[Karpenter Controller]
    B --> C[ECSNodeClass CR]
    B --> D[NodePool CR]
    B --> E[阿里云 ECS API]
    E --> F[ECS 实例]
    F --> G[VPC 网络]
    F --> H[安全组]
    F --> I[系统镜像]
Loading

支持功能

NodeClass 属性支持

属性 配置
clusterID -
vSwitchSelectorTerms id
tag
securityGroupSelectorTerms id
tag
imageSelectorTerms id
imageFamily
systemDisk -
dataDisk -

NodePool 属性支持

属性 配置
karpenter.sh/capacity-type 仅支持按量付费
node.kubernetes.io/instance-type 多实例规格
topology.kubernetes.io/zone 多可用区

快速开始

请参考 快速开始指南 了解如何部署和使用 Alibaba Cloud Karpenter Provider。

配置示例

ECSNodeClass 配置

apiVersion: karpenter.alibabacloud.com/v1alpha1
kind: ECSNodeClass
metadata:
  name: default
spec:
  # 集群 ID
  clusterID: ""
  # VSwitch 选择器
  vSwitchSelectorTerms:
    - tags:
        karpenter.sh/discovery: my-cluster
    - id: "vsw-bp1h5w****"
  
  # 安全组选择器
  securityGroupSelectorTerms:
    - tags:
        karpenter.sh/discovery: my-cluster
    - id: "sg-bp1h5w****"
  
  # 镜像选择器
  imageSelectorTerms:
    - imageFamily: "acs:alibaba_cloud_linux_3_2104_lts_x64"
    - id: "aliyun_3_x64_20G_container_optimized_alibase_20250629.vhd"

NodePool 配置

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: default
spec:
  template:
    spec:
      requirements:
        - key: karpenter.sh/capacity-type
          operator: In
          values: ["on-demand"]
        - key: node.kubernetes.io/instance-type
          operator: In
          values: ["ecs.g6.large"]
      nodeClassRef:
        name: default
        group: karpenter.alibabacloud.com
        kind: ECSNodeClass
  limits:
    cpu: "100"
  disruption:
    consolidationPolicy: WhenEmptyOrUnderutilized
    consolidateAfter: 720h

开发指南

构建项目

make build

运行测试

make test

本地调试

make run

贡献

欢迎提交 Issue 和 Pull Request 来改进 Alibaba Cloud Karpenter Provider。

许可证

本项目采用 Apache-2.0 许可证。详情请见 LICENSE 文件。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages