Модуль GKE в создании контейнера, если применяется nodeSelector/nodeAffinity
Шаги
Я создаю кластер в зональном режиме и имею только 1 зональную версию GKE v1.21.14-gke.2700.
Я создаю PD в графическом интерфейсе GCP и убедитесь, что он находится в той же зоне.
Я развертываю модуль, монтирующий PV, PVC, используя PD, который я создал без nodeSelector/nodeAffinity и допусков <===, чтобы показать, что PV, PVC и PD правильно определены.
Затем я создаю модуль с помощью nodeSelector и допусков без монтирования и pv и pvc <== Результат - успешный запуск, чтобы показать модуль в nodeSelector и допуски в порядке.
Я очищаю все, проверяю, что в кластере больше нет pv и pvc, и проверяю, что PD отображается на уровне графического интерфейса, у меня нет монтирования узла.
однако, когда я объединяю их, используя PV,PVC и nodeSelector/nodeAffinity и допуски, модуль остается в силе
ContainerCreating
Статус Сообщение об ошибке:Unable to attach or mount volumes: unmounted volumes=[task-pv-storage], unattached volumes=[task-pv-storage kube-api-access-87dvb]: timed out waiting for the condition
PV.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: test-pv
spec:
capacity:
storage: 10G
accessModes:
- ReadWriteOnce
claimRef:
namespace: default
name: test-pvc
gcePersistentDisk:
pdName: test-pd-disk
fsType: ext4
ПВХ.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
Под.ямл
kind: Pod
apiVersion: v1
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: test-pvc
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/data"
name: task-pv-storage
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: xxx
operator: In
values:
- xxxxx
tolerations:
- key: "xxx"
operator: "Equal"
value: "xxxxx"