Kubernetes如何维护不同的api版本资源?

问题描述 投票:0回答:1

Kubernetes版本:

v1.15.2

场景显示:

kubernetes v1.15.2已添加一些新的api版本,例如,自动缩放组中的autoscaling/v2beta2。但是在阅读了Kubernetes代码src\k8s.io\kubernetes\pkg\controller\podautoscaler\中的Horizo​​ntalController结构之后,Horizo​​ntalController中的所有成员都是autoscaling/v1

type HorizontalController struct {
    scaleNamespacer scaleclient.ScalesGetter                                ==> autoscaling/v1
    hpaNamespacer   autoscalingclient.HorizontalPodAutoscalersGetter        ==> autoscaling/v1
    mapper          apimeta.RESTMapper

    replicaCalc   *ReplicaCalculator
    eventRecorder record.EventRecorder

    downscaleStabilisationWindow time.Duration

    // hpaLister is able to list/get HPAs from the shared cache from the informer passed in to
    // NewHorizontalController.
    hpaLister       autoscalinglisters.HorizontalPodAutoscalerLister        ==> autoscaling/v1
    hpaListerSynced cache.InformerSynced                                    ==> autoscaling/v1

    // podLister is able to list/get Pods from the shared cache from the informer passed in to
    // NewHorizontalController.
    podLister       corelisters.PodLister
    podListerSynced cache.InformerSynced

    // Controllers that need to be synced
    queue workqueue.RateLimitingInterface

    // Latest unstabilized recommendations for each autoscaler.
    recommendations map[string][]timestampedRecommendation
}

那么kubernetes如何使用Horizo​​ntalController维护autoscaling / v2beta2资源?

kubernetes api-design autoscaling
1个回答
0
投票

在正式的kubernetes documentation中,您可以找到以下信息:

API对象

Horizo​​ntal Pod Autoscaler是KubernetesautoscalingAPI组中的API资源。当前的稳定版本仅包含对CPU自动缩放的支持,可以在autoscaling/v1 API版本中找到。

测试版包含对内存扩展和自定义指标的支持,可以在autoscaling/v2beta2中找到。使用autoscaling/v2beta2时,autoscaling/v1中引入的新字段将保留为注释。

有关API对象的更多详细信息,请参见HorizontalPodAutoscaler Object

还根据kubernetes关于API版本控制下API overview的文档:

API版本控制

为了消除字段或重组资源表示,Kubernetes支持多个API版本,每个版本使用不同的API路径。例如:/api/v1/apis/extensions/v1beta1

版本是在API级别而不是资源或字段级别为:

  • 确保API呈现系统资源和行为的清晰一致的视图。
  • 启用对寿命终止和/或实验性API的控制访问。

JSON和Protobuf序列化架构遵循相同的准则用于模式更改。以下描述涵盖了两种格式。


因此,您可以找到autoscaling的所有api版本,例如v2beta2下的kubernetes/pkg/apis/autoscaling/

例如,使用HTTP GET将是这样的:GET /apis/autoscaling/v2beta2

© www.soinside.com 2019 - 2024. All rights reserved.