2
votes

I created the openshift cluster with 1 master and 2 nodes. I'm able to deploy the hawkular, cassandra and heapster pods for monitoring and I'm able to setup the openshift web console.

However, I tried to deploy a pod manually but I get an error MatchNodeSelector.

inputs: The hello.yaml file for deploying the pod with command oc create -f hello.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod3
spec:
  containers:
  - name: hello
    image: hello
    imagePullPolicy: IfNotPresent

Expected output: The pods should be in running state and should reflect the performance on the web console.

Actual output: The pod status after running oc create -f hello.yaml

[root@master docker]# oc get pods -n demo
NAME               READY     STATUS    RESTARTS   AGE
pod3               0/1       Pending   0          44m

More detailed log of the pod

[root@master docker]# oc describe pods pod3 -n demo
Name:         pod3
Namespace:    demo
Node:         <none>
Labels:       <none>
Annotations:  openshift.io/scc=anyuid
Status:       Pending
IP:           
Containers:
  hello:
    Image:        hello
    Port:         <none>
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-87b8b (ro)
Conditions:
  Type           Status
  PodScheduled   False 
Volumes:
  default-token-87b8b:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-87b8b
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  node-role.kubernetes.io/compute=true
Tolerations:     <none>
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  1m (x141 over 41m)  default-scheduler  0/2 nodes are available: 2 MatchNodeSelector.
1

1 Answers

0
votes

The status would suggest that none of the nodes are matching the Node-Selector:

node-role.kubernetes.io/compute=true

Please review the labels on your nodes (oc get nodes).