Выделены ли поду ресурсы, запрошенные Kubernetes, когда он находится в состоянии сбояLoopBackOff?

Когда модуль находится в состоянии crashLoopBackOff (например), выделяются ли ему ресурсы просил (ЦП и ПАМЯТЬ)?

Если у вас есть ответ, объясните, как вы сделали, чтобы убедиться, что он все еще выделен для модуля <3

На основе быстрого теста с использованием модуля busybox кажется, что ресурсы остаются выделенными для модуля. Если стручок не удален.

P.... 06.05.2022 16:45

Не могли бы вы показать, как вы убедились, что то, что вы говорите, проверено?

bguess 06.05.2022 17:13

Я не хочу публиковать это как ответ, но вот идея. 1. дамп состояния ресурсов узлов перед планированием. 2. Создайте модуль busybox с ресурсами и ограничениями (например, 1024Mi). 3. для сбоя используйте "false" в качестве точки входа/команды, restartPolicy: Always . 4. Сбросить состояние ресурса запланированного узла после сбоя модуля. 5. сравните два дампа.

P.... 06.05.2022 17:22
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
3
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я получил ответ, вот тест:

Независимо от количества узлов, которые я получил, или количества ресурсов, которые у них есть, я создам 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

P.... 06.05.2022 18:06

Другие вопросы по теме