如何在不修改副本的情况下升级Helm中的部署?

问题描述

在Helm图表中同时创建DeploymentHorizontalPodAutoscaler时,应将部署的.spec.replicas设置为null,还是应将其设置为minReplicas设置为hpa的maxReplicas.spec.replicas间的某个值?

创建hpa时,hpa控制器将管理部署的kubectl apply,因此,在更新部署的其他字段时,请勿更改副本。

.spec.replicas声明式配置相比,如果您在首次创建部署时未设置.spec.replicas,则可以修改部署的其他字段而无需修改kubectl apply edit-last-applied,因此3-将来应用部署时,diff方式将忽略该字段。或者要在创建时间后忽略该字段,必须使用kubectl apply以避免在删除字段(kubernetes/kubernetes#67135)时意外缩小到1。因此,使用.spec.replicas可以在不触摸helm upgrade的情况下应用部署。

在不更改其扩展规模的情况下import java.util.Scanner; public class Quiz10_Op2 { public static void main(String[] args){ double[] array; System.out.println("Reading: "); array = readingArray(); System.out.println("The Sum: " ); sum(array); System.out.println("The avg: " ); avg(array); } public static double[] readingArray(){ Scanner input = new Scanner(system.in); double array[] = new double[5]; System.out.print("Please enter array elements: "); for(int i=0; i < 5; i++){ array[i] = input.nextDouble(); } return array; } public static void sum(double [] array){ double sum = array[0]; for (int i = 0; i < array.length; i++) { sum = sum + array[i]; } } public static void avg (double [] array){ double sum = array[0]; for (int i = 0; i < array.length; i++) { sum = sum + array[i]; } } } 部署的其他字段的正确方法是什么?

解决方法

我检查了here,如果我理解正确,有两种方法可以做到这一点。

1。添加if语句作为解决方法。

@naseemkullah添加了对此的评论。

因此,解决方法是在部署的spec.replicas周围添加if语句,以在启用HPA时不对其进行模板化


2。完全删除副本字段,然后应遵守HPA管理的副本编号。

@tianchengli添加了comment

如果我完全删除副本字段,它将尊重HPA管理的副本编号。