我将kubernetes配置为具有3个图像(我的API,Elastic Search和Kibana)
这是我的deployment.yml
文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: tooseeweb-deployment
spec:
selector:
matchLabels:
app: tooseeweb-pod
template:
metadata:
labels:
app: tooseeweb-pod
spec:
containers:
- name: tooseewebcontainer
image: tooseewebcontainer:v1
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 9200
- name: kibana
image: docker.elastic.co/kibana/kibana:6.2.4
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 5601
当我运行kubectl get deployments
时,我看到了
它停留在0/1就绪状态。我尝试重新启动docker等。这没有帮助。我该如何解决?
更新
我运行kubectl describe pod
并出现此错误
Warning FailedScheduling 19s default-scheduler 0/1 nodes are available: 1 Insufficient cpu.
我该如何解决?
答案 0 :(得分:0)
删除每个吊舱中的这些资源限制。
resources:
limits:
memory: "128Mi"
cpu: "500m"
如果您想限制资源,请在成功应用一次部署之后再做。
答案 1 :(得分:0)
我看到您在安排广告连播时遇到了麻烦。 Kubernetes错误消息:0/1 nodes are available: 1 Insufficient cpu
,表示您没有足够的资源来运行pod。
您的每个容器都要求0.5个cpu核心,因此整个吊舱需要1.5个cpu核心才能运行。 Kubernetes无法找到具有备用1.5 cpu内核的节点,因此无法调度。如果要运行它,则需要降低限制/向节点添加更多资源的要求。
我还注意到您将所有容器放在同一个容器中,这不是一个好习惯。只要您可以将每个容器放在单独的容器中。这还将允许在节点之间更好地分散负载。仅在必须将多个容器放在一起且没有其他方法的情况下,才将多个容器放入同一容器中。
还要注意,elasticsearch是一个Java应用程序,因此将其内存限制为128Mi可能会导致频繁重启,这对于数据库来说是非常不希望的行为。
答案 2 :(得分:0)
分析:
解决方案: