Почему мои модули не соответствуют ограничениям квоты ресурса, если число совпадает? - PullRequest
0 голосов
/ 30 мая 2019

После применения следующих ResourceQuota compute-resources к моему кластеру GKE

apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources
spec:
  hard:
    limits.cpu: "1"
    limits.memory: 1Gi

и обновления Deployment до

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-service
spec:
  selector:
    matchLabels:
      app: my-service
      tier: backend
      track: stable
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 50%
  template:
    metadata:
      labels:
        app: my-service
        tier: backend
        track: stable
    spec:
      containers:
        - name: my-service
          image: registry/namespace/my-service:latest
          ports:
            - name: http
              containerPort: 8080
          resources:
            requests:
              memory: "128Mi"
              cpu: "125m"
            limits:
              memory: "256Mi"
              cpu: "125m"

планирование не выполняется 100% попыток из-задо pods "my-service-5bc4c68df6-4z8wp" is forbidden: failed quota: compute-resources: must specify limits.cpu,limits.memory.Поскольку указаны limits и requests и они соответствуют пределу, я не вижу причины, по которой блоки должны быть запрещены.

Как модуль pod ограничивает ресурсы для kubernetes, применяемые при превышении podлимиты после создания модулей? - это другой вопрос.

Я обновил свой кластер до версии 1.13.6-gke.0.

1 Ответ

1 голос
/ 30 мая 2019

Я собирался предложить провести тестирование в отдельном пространстве имен, но вижу, что вы уже пробовали.

В качестве другого обходного пути попробуйте установить предельные значения по умолчанию, включив контроллер допуска LimitRanger и настроив его, например,

apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-limit-range
spec:
  limits:
  - default:
      memory: 256Mi
      cpu: 125m
    defaultRequest:
      cpu: 125m
      memory: 128Mi
    type: Container

Теперь, если Контейнер создается в пространстве имен по умолчанию, и Контейнер не указывает свои собственные значения для запроса ЦП и предела ЦП, Контейнеру устанавливаются ограничения ЦП по умолчанию 125 м и ограничение памяти по умолчанию 256 Мi

Кроме того, после настройки LimitRange убедитесь, что вы удалили свое развертывание, и в нем нет застрявших модулей.

...