繁体   English   中英

如何使用 Fabric8 k8s java 客户端(版本:6.0.0)删除 HorizontalPodAutoscaler

[英]How to delete HorizontalPodAutoscaler using Fabric8 k8s java client (version: 6.0.0)

看起来不支持使用fabric8的K8S Java客户端版本:6.0.0删除HorizontalPodAutoscaler。

虽然使用 fabric8 的 K8S Java 客户端版本:6.0.0 创建 HorizontalPodAutoscaler 很简单。

例如

 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();
}

任何使用 fabric8 的 K8S Java 客户端版本:6.0.0 删除 HorizontalPodAutoscaler 的解决方案都将得到应用。

KubernetesHPAProducer.doDeleteHPA:要删除 HPA Autoscaler Pod,请点击此链接

以下可能对您有所帮助:

protected void doDeleteHPA(Exchange exchange, String operation) throws Exception {

   String hpaName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_NAME, String.class);

   String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class);

   if (ObjectHelper.isEmpty(hpaName)) {

     LOG.error("Delete a specific hpa require specify a hpa name");

     throw new IllegalArgumentException("Delete a specific hpa require specify a hpa name");

   }

   if (ObjectHelper.isEmpty(namespaceName)) {

     LOG.error("Delete a specific hpa require specify a namespace name");

     throw new IllegalArgumentException("Delete a specific hpa require specify a namespace name");

   }

   boolean hpaDeleted = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers().inNamespace(namespaceName).withName(hpaName).delete();



   MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true);

   exchange.getOut().setBody(hpaDeleted);

 }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM