我是kubernetes的新手并尝试在kubernetes集群上部署openstack,下面是我在尝试部署openstack时看到的错误。我正在关注要部署的openstack文档。
kube-system ingress-error-pages-56b4446784-crl85 0/1 Pending 0 1d
kube-system ingress-error-pages-56b4446784-m7jrw 0/1 Pending 0 5d
我有kubernetes集群,其中一个主节点和一个节点在debain9上运行。我在kubernetes上的openstack安装期间输入了这个错误。
Kubectl描述pod显示如下事件:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 2m (x7684 over 1d) default-scheduler 0/2 nodes are available: 1 PodToleratesNodeTaints, 2 MatchNodeSelector.
我所看到的只是一个失败的调度,即使是kube调度程序的容器日志也显示它无法安排一个pod,但是没有说它失败的原因?从过去几个小时试图调试的这一步,我有点震惊....
PS:我正在运行debian9,kube版本:v1.9.2 + coreos.0,Docker - 17.03.1-ce
任何帮助赞赏....
看起来你对你的Pod有一个宽容,并且没有那些容忍这些容忍的节点。将有助于发布您的Ingress及其相应的部署或DaemonSet的定义。
您通常会污染您的节点,如下所示:
kubectl taint nodes <your-node> key=value:IngressNode
然后在你的PodSpec上这样:
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "IngressNode"
也可能是因为您的Pod上需要在nodeSelector
字段中缺少标签:
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
cpuType: haswell
然后在你的节点上添加一个标签。
kubectl label nodes kubernetes-foo-node-1 cpuType=haswell
希望能帮助到你!