QingCloudAppcenter / QKE

KubeSphere is an open source container application platform by QingCloud based on Kubernetes.
https://www.qingcloud.com/products/kubesphereqke/
29 stars 15 forks source link

[Ray] Node 节点自动增加和删除 #49

Closed wnxn closed 5 years ago

wnxn commented 5 years ago

Node 节点自动根据负载(CPU、内存使用率)进行弹性伸缩,当 Node 节点资源达到指定阈值时,自动添加 Node 节点到 K8S 集群。

wnxn commented 5 years ago
  1. CPU 和 内存使用率 指标从何处获取? 从 k8s node 资源对象 status 获取可行么? @benjaminhuo
    allocatable:
    cpu: "8"
    ephemeral-storage: "190120262547"
    hugepages-2Mi: "0"
    memory: 16329236Ki
    pods: "120"
    capacity:
    cpu: "8"
    ephemeral-storage: 206293688Ki
    hugepages-2Mi: "0"
    memory: 16431636Ki
    pods: "120"
  2. 如何调用相应的 APPCenter 的 API ? @zheng1
  3. 实现方式。 建议在 k8s 集群内启动一个 Go 程序 Pod 实现自动扩缩。
  4. 缩 Node 默认不打开,可提供设置项供设置。
  5. 应提供扩缩阈值。Node 达到多少负载时扩集群,缩集群。
  6. 建议增加 Pod 个数指标触发 Node 节点自动增加和删除。
zheng1 commented 5 years ago

需要实现一套 cluster-api-provider-qingcloud

benjaminhuo commented 5 years ago
  1. CPU 和 内存使用率 指标从何处获取? 从 k8s node 资源对象 status 获取可行么? @benjaminhuo
  allocatable:
    cpu: "8"
    ephemeral-storage: "190120262547"
    hugepages-2Mi: "0"
    memory: 16329236Ki
    pods: "120"
  capacity:
    cpu: "8"
    ephemeral-storage: 206293688Ki
    hugepages-2Mi: "0"
    memory: 16431636Ki
    pods: "120"

@wnxn 从 node status 获取节点 cpu 和内存使用率是不可行的,capacity 和 allocatable 其实都是总量的概念,allocatable 是扣除系统占用后可分配的。

如果可能的话尽量从我们的 api server 获取 cpu,内存利用率 https://docs.kubesphere.io/advanced-v2.0/api#tag/Node-Metrics

@huanggze 广喆我们这个 api 文档里似乎没有可用 metrics 有哪些

wnxn commented 5 years ago

QKE v1.0.1 Review:通过 IaaS 的自动伸缩实现。