看来不支持使用HorizontalPodAutoscaler 8的K8S客户端ver:6.0.0删除K8S。
尽管使用HorizontalPodAutoscaler 8的Java :6.0.0创建K8S很简单。
例如。
HorizontalPodAutoscalerStatus hpaStatus = k8sClient.resource(createHPA())
.inNamespace(namespace)
.createOrReplace().getStatus();public HorizontalPodAutoscaler createHPA(){
return new HorizontalPodAutoscalerBuilder()
.withNewMetadata()
.withName(applicationName)
.addToLabels("name", applicationName)
.endMetadata()
.withNewSpec()
.withNewScaleTargetRef()
.withApiVersion(hpaApiVersion)
.withKind("Deployment")
.withName(applicationName)
.endScaleTargetRef()
.withMinReplicas(minReplica)
.withMaxReplicas(maxReplica)
.addNewMetric()
.withType("Resource")
.withNewResource()
.withName("cpu")
.withNewTarget()
.withType("Utilization")
.withAverageUtilization(cpuAverageUtilization)
.endTarget()
.endResource()
.endMetric()
.addNewMetric()
.withType("Resource")
.withNewResource()
.withName("memory")
.withNewTarget()
.withType("AverageValue")
.withAverageValue(new Quantity(memoryAverageValue))
.endTarget()
.endResource()
.endMetric()
.withNewBehavior()
.withNewScaleDown()
.addNewPolicy()
.withType("Pods")
.withValue(podScaleDownValue)
.withPeriodSeconds(podScaleDownPeriod)
.endPolicy()
.withStabilizationWindowSeconds(podScaledStabaliztionWindow)
.endScaleDown()
.endBehavior()
.endSpec().build();
}使用HorizontalPodAutoscaler 8的K8S客户端(6.0.0)删除K8S的任何解决方案都将是可行的。
发布于 2022-09-30 05:04:36
首先,需要识别在基于同一个API组的部署创建过程中使用了哪个API组(v1, v2beta1, v2beta2) --需要调用自动标度函数来获取HPA实例,然后继续对该HPA实例执行任何操作。
在我的例子中,部署是使用v2beta2 API组创建的,下面的代码snnipt帮助我从提供的名称空间中删除HorizontalPodAutoscaler对象。
k8sClient.autoscaling().v2beta2().horizontalPodAutoscalers().inNamespace("test").withName("myhpa").delete()https://stackoverflow.com/questions/73713753
复制相似问题