Kubernetes livenessProbe/ готовность Probe раскрыть проблему

Я попытался применить мой стручок с помощью livenessProbe и готовности Probe. Проблема в том, что я получаю ошибку: после применения: kubectl применить -f test1.yaml

Ошибка:

The Pod "test1" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)....
apiVersion: v1
kind: Pod
metadata:
  name: test1
  labels:
    app: web
spec:
  containers:
    - image: test/test1.0
      name: test1
      ports:
        - containerPort: 8080
          name: http
          protocol: TCP
      livenessProbe:
        httpGet:
          path: /healthy
          port: 8080
        initialDelaySeconds: 5
        timeoutSeconds: 1
        periodSeconds: 10
        failureThreshold: 3
      readinessProbe:
        httpGet:
          path: /ready
          port: 8080
        initialDelaySeconds: 30
        timeoutSeconds: 1
        periodSeconds: 10
        failureThreshold: 3

1 ответ

Решение

Проверьте, есть ли у вас уже запущенный модуль с именем test1, когда вы применяете yaml, Kubernetes думает, что вы хотите изменить уже запущенный модуль, и это действие разрешает изменения только определенных полей, как указано в сообщении. Чтобы проверить, есть ли запущенный модуль, проверьте с помощью этой команды.

kubectl get pod test1 

затем удалите стручок и примените свой yaml.

kubectl delete pod test1

kubectl apply -f xxxx
Другие вопросы по тегам