クラスター (テスト) に 5 つのノードがあります。私はそれらを次のようにラベル付けしました:
ノード:
- 名前空間=A
- 名前空間=A
- 名前空間=B
- 名前空間=B
- 名前空間=C
taints と tolerations、nodeAffinity と podAntiAffinity を適用しました。私たちのノードは自動スケーリングが有効になっています。ただし、ノードはスケールアップされず、すべてのポッドが 1 つのノードになります。私はこのリンクKubernetes: Evenly distributed the replicas across the clusterを読みました. 私たちの要件は、1 つのポッドをノードに均等にデプロイし、それに応じてスケールアップする必要があるということです。
私は何が欠けていますか?
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: prometheus
labels:
app: prometheus
spec:
serviceName: "prometheus"
selector:
matchLabels:
name: prometheus
template:
metadata:
labels:
name: prometheus
app: prometheus
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: namespace
operator: In
values:
- A
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- prometheus
topologyKey: kubernetes.io/hostname
weight: 100
containers:
- name: prometheus
image: quay.io/prometheus/prometheus:v2.6.0
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
terminationGracePeriodSeconds: 30
tolerations:
- key: namespace
operator: Equal
value: A