我是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描述播客显示的事件如下:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 2m (x7684 over 1d) default-scheduler 0/2 nodes are available: 1 PodToleratesNodeTaints, 2 MatchNodeSelector.
我看到的只是调度失败,甚至kube Scheduler的容器日志也显示它无法调度pod,但是没有说为什么失败?在过去的几个小时中,我对尝试调试感到震惊。
PS:我正在运行debian9,kube版本:v1.9.2 + coreos.0,Docker-17.03.1-ce
任何帮助表示赞赏....
答案 0 :(得分:1)
看起来您的Pod容忍度很高,而这些容忍度没有节点。将有助于为您的Ingress及其相应的Deployment或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
希望有帮助!