Kubernetes 部署资源限制
Kubernetes deployment resource limit
这是我的 Django 部署和服务文件。从 deployment.yaml 生成的 3 pods 有效,但资源请求和限制被忽略。
我看过很多关于在 Pods 上应用资源规范但没有在部署文件上应用资源规范的教程,有没有办法解决它?
这是我的 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
在您的容器定义下,ports 之后有一个额外的资源属性。
resources: {}
这将覆盖原始资源定义。
删除这个并重新应用它。
避免此类问题的简单方法是使用 YAML 验证器。
yamllint 似乎是验证和解析 YAML 的好工具。
一旦您 运行 验证,它会提供您所做的所有错误事情的列表。
示例:-
# yamllint file.yml
38:9 error duplication of key "resources" in mapping (key-duplicates)
这是我的 Django 部署和服务文件。从 deployment.yaml 生成的 3 pods 有效,但资源请求和限制被忽略。
我看过很多关于在 Pods 上应用资源规范但没有在部署文件上应用资源规范的教程,有没有办法解决它?
这是我的 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
在您的容器定义下,ports 之后有一个额外的资源属性。
resources: {}
这将覆盖原始资源定义。 删除这个并重新应用它。
避免此类问题的简单方法是使用 YAML 验证器。
yamllint 似乎是验证和解析 YAML 的好工具。
一旦您 运行 验证,它会提供您所做的所有错误事情的列表。
示例:-
# yamllint file.yml
38:9 error duplication of key "resources" in mapping (key-duplicates)