【问题标题】:Kubernetes deployment resource limitKubernetes 部署资源限制
【发布时间】:2019-05-22 16:09:26
【问题描述】:

这是我的 Django 部署和服务文件。从 deployment.yaml 生成的 3 个 pod 可以工作,但是资源请求和限制被忽略了。

我看过很多关于在 Pod 上应用资源规范而不是在 Deployment 文件上的教程,有没有办法绕过它?

这是我的 yaml 文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: djangoapi
    type: web
  name: djangoapi
  namespace: "default"
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: djangoapi
        type: web
    spec:
      containers:
      - name: djangoapi
        image: wbivan/app:v0.8.1a
        imagePullPolicy: Always
        args:
        - gunicorn
        - api.wsgi
        - --bind
        - 0.0.0.0:8000
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"
        envFrom:
        - configMapRef:
            name: djangoapi-config
        ports:
        - containerPort: 8000
        resources: {}
      imagePullSecrets:
        - name: regcred
      restartPolicy: Always

---
apiVersion: v1
kind: Service
metadata:
  name: djangoapi-svc
  namespace: "default"
  labels:
    app: djangoapi
spec:
  ports:
  - port: 8000
    protocol: TCP
    targetPort: 8000
  selector:
    app: djangoapi
    type: web
  type: NodePort  

【问题讨论】:

    标签: amazon-web-services kubernetes resources


    【解决方案1】:

    在您的容器定义下,端口之后有一个额外的资源属性。

    resources: {}
    

    这会覆盖原始资源定义。 删除这个并再次应用它。

    【讨论】:

      【解决方案2】:

      避免此类问题的简单方法是使用 YAML 验证器。

      yamllint 似乎是验证和解析 YAML 的好工具。

      在您运行验证后,它会提供您一直在做的所有错误事情的列表。

      例子:-

          # yamllint file.yml
      38:9      error    duplication of key "resources" in mapping  (key-duplicates)
      

      【讨论】:

      • 这是个好主意!从现在开始,我会将 yaml 验证添加到我的例程中!
      猜你喜欢
      • 2020-10-12
      • 2018-08-27
      • 2019-10-03
      • 2017-07-08
      • 2021-10-02
      • 1970-01-01
      • 2020-04-14
      • 2020-10-02
      • 1970-01-01
      相关资源
      最近更新 更多