Когда модуль находится в состоянии crashLoopBackOff (например), выделяются ли ему ресурсы просил (ЦП и ПАМЯТЬ)?
Если у вас есть ответ, объясните, как вы сделали, чтобы убедиться, что он все еще выделен для модуля <3
Не могли бы вы показать, как вы убедились, что то, что вы говорите, проверено?
Я не хочу публиковать это как ответ, но вот идея. 1. дамп состояния ресурсов узлов перед планированием. 2. Создайте модуль busybox с ресурсами и ограничениями (например, 1024Mi). 3. для сбоя используйте "false" в качестве точки входа/команды, restartPolicy: Always . 4. Сбросить состояние ресурса запланированного узла после сбоя модуля. 5. сравните два дампа.

Я получил ответ, вот тест:
Независимо от количества узлов, которые я получил, или количества ресурсов, которые у них есть, я создам resourceQuota для пространства имен, где я буду выполнять тест:
resourceQuota.yaml:
apiVersion: v1
kind: ResourceQuota
metadata:
name: test-so
spec:
hard:
cpu: "10m"
memory: 10Mi
pods: "10"
Давайте создадим развертывание busybox, которое будет CrashLoopBackOff с максимальным ресурсом в выделенной ему ResourceQuota, deployment1.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: test-so
name: test-so
spec:
replicas: 1
selector:
matchLabels:
app: test-so
template:
metadata:
labels:
app: test-so
spec:
containers:
- image: busybox
name: busybox
resources:
requests:
cpu: 10m
memory: 10Mi
Как и ожидалось, он находится в состоянии CrashLoopBackOff, однако он развернут:
> kubectl get pods -o wide:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/test-so-57f76ccb9b-2w5vk 0/1 CrashLoopBackOff 3 (63s ago) 2m23s 10.244.5.2 so-cluster-1-worker2 <none> <none>
давайте теперь создадим второе развертывание с тем же количеством ресурсов, deployment2.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: test-so2
name: test-so2
spec:
replicas: 1
selector:
matchLabels:
app: test-so2
template:
metadata:
labels:
app: test-so2
spec:
containers:
- image: busybox
name: busybox
resources:
requests:
cpu: 10m
memory: 10Mi
Поды не созданы, и вот статус набора реплик:
❯ k describe rs test-so2-7dd9c65cbd
Name: test-so2-7dd9c65cbd
Namespace: so-tests
Selector: app=test-so2,pod-template-hash=7dd9c65cbd
Labels: app=test-so2
pod-template-hash=7dd9c65cbd
Annotations: deployment.kubernetes.io/desired-replicas: 1
deployment.kubernetes.io/max-replicas: 2
deployment.kubernetes.io/revision: 1
Controlled By: Deployment/test-so2
Replicas: 0 current / 1 desired
Pods Status: 0 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: app=test-so2
pod-template-hash=7dd9c65cbd
Containers:
busybox:
Image: busybox
Port: <none>
Host Port: <none>
Requests:
cpu: 10m
memory: 10Mi
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
ReplicaFailure True FailedCreate
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-7x8qm" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-kv9m4" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-7w7wz" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-8gcnp" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-vllqf" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-2jhnb" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-gjtvw" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 31s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-qdq44" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 30s replicaset-controller Error creating: pods "test-so2-7dd9c65cbd-69rn7" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Warning FailedCreate 11s (x4 over 29s) replicaset-controller (combined from similar events): Error creating: pods "test-so2-7dd9c65cbd-jjjl4" is forbidden: exceeded quota: test-so, requested: cpu=10m,memory=10Mi, used: cpu=10m,memory=10Mi, limited: cpu=10m,memory=10Mi
Это означает, что на самом деле, даже если модуль находится в состоянии CrashLoopBackOff, он все равно блокирует запрошенный объем памяти. Мы знаем это сейчас! хахаха
Хорошего дня, bguess
классный пример, спасибо за облегчение для будущих читателей. Общее замечание, такого рода вопросы лучше всего решать путем тестирования в лаборатории. :) +1
На основе быстрого теста с использованием модуля busybox кажется, что ресурсы остаются выделенными для модуля. Если стручок не удален.