如果在生产环境中的某个代码片段中设置的最小副本数量大于1,是否会提高弹性和可用性(假设从2个开始)?
设置这个变量的最佳实践是什么?
我是kubernetes的新手,但是我找不到这个问题的答案。
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
namespace: test
labels:
app: test
spec:
replicas: 1
…
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: test-hpa
namespace: test
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: test
minReplicas: 1
简短的回答是"是",但也有很多情况下答案是"否"。例如,如果pod的所有实例都被安排在同一个节点上,并且节点死亡,那么在pods在可用节点上重新启动之前将会有一些停机时间。
可以根据topologyKey: "node"配置topologySpreadConstraints如这里所述https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/提高你的适应力水平。