即使指定了 cpu 限制,pod 部署期间也会出现“必须指定 limit.cpu”错误

Hoh*_*hol 4 openshift kubernetes

我正在尝试使用 OpenShift CLI 运行测试 Pod:

$oc run nginx --image=nginx --limits=cpu=2,memory=4Gi
deploymentconfig.apps.openshift.io/nginx created

$oc describe deploymentconfig.apps.openshift.io/nginx
Name:       nginx
Namespace:  myproject
Created:    12 seconds ago
Labels:     run=nginx
Annotations:    <none>
Latest Version: 1
Selector:   run=nginx
Replicas:   1
Triggers:   Config
Strategy:   Rolling
Template:
Pod Template:
  Labels:   run=nginx
  Containers:
   nginx:
    Image:  nginx
    Port:   <none>
    Host Port:  <none>
    Limits:
      cpu:      2
      memory:       4Gi
    Environment:    <none>
    Mounts:     <none>
  Volumes:      <none>

Deployment #1 (latest):
    Name:       nginx-1
    Created:    12 seconds ago
    Status:     New
    Replicas:   0 current / 0 desired
    Selector:   deployment=nginx-1,deploymentconfig=nginx,run=nginx
    Labels:     openshift.io/deployment-config.name=nginx,run=nginx
    Pods Status:    0 Running / 0 Waiting / 0 Succeeded / 0 Failed

Events:
  Type      Reason          Age         From                Message
  ----      ------          ----            ----                -------
  Normal    DeploymentCreated   12s         deploymentconfig-controller Created new replication controller "nginx-1" for version 1
  Warning   FailedCreate        1s (x12 over 12s)   deployer-controller     Error creating deployer pod: pods "nginx-1-deploy" is forbidden: failed quota: quota-svc-myproject: must specify limits.cpu,limits.memory
Run Code Online (Sandbox Code Playgroud)

我收到“必须指定 limit.cpu,limits.memory”错误,尽管这两个限制都存在于同一描述输出中。

可能是什么问题以及如何解决它?

Hoh*_*hol 12

我找到了解决办法!

部分错误消息是“创建部署程序 Pod 时出错”。这意味着问题不在于我的 Pod,而在于执行我的 Pod 部署的部署程序 Pod。我的项目中的配额似乎也会影响部署器 Pod。我找不到使用 CLI 设置部署程序 pod 限制的方法,因此我制作了一个 DeploymentConfig。

kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
  name: "test-app"
spec:
  template: 
    metadata:
      labels:
        name: "test-app"
    spec:
      containers:
        - name: "test-app"
          image: "nginxinc/nginx-unprivileged"
          resources:
            limits:
              cpu: "2000m"
              memory: "20Gi"
          ports:
            - containerPort: 8080
              protocol: "TCP"
  replicas: 1 
  selector:
    name: "test-app"
  triggers:
    - type: "ConfigChange" 
    - type: "ImageChange" 
      imageChangeParams:
        automatic: true
        containerNames:
          - "test-app"
        from:
          kind: "ImageStreamTag"
          name: "nginx-unprivileged:latest"
  strategy: 
    type: "Rolling"
    resources:
      limits:
        cpu: "2000m"
        memory: "20Gi"
Run Code Online (Sandbox Code Playgroud)

您可以看到,这里指定了两组限制:针对容器和针对部署策略。

有了这个配置,就可以正常工作了!