В случае, если вы придерживаетесь Deployments вместо StatefulSets, для нескольких реплик невозможно будет выполнить запись в один PVC, поскольку нет гарантии, что разные реплики запланированы на одном и том же узле, и поэтому вы можете иметьожидающий модуль, ожидающий установления соединения с томом и сбоя.Решение состоит в том, чтобы выбрать конкретный узел и запустить все свои реплики на одном узле.
Запустите следующее и назначьте метку одному из ваших узлов:
kubectl label nodes <node-name> <label-key>=<label-value>
Скажем, мы выбрали label-key
, чтобы быть labelKey
, и label-value
, чтобы быть node1
.Затем вы можете добавить следующее в файл YAML и назначить модули на один и тот же узел:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
labels:
app: my-app
spec:
replicas: 3
template:
spec:
nodeSelector:
<b>labelKey: node1</b>
containers:
...