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