Skip to content

"node affinity conflict" following Deployment instructions in README #107

@michael-db

Description

@michael-db

With a microk8s v1.16.2 cluster on Fedora, I followed the instructions in the README, replacing 1.13 in the README with 1.16, i.e.,

./deploy/kubernetes-1.16/deploy-hostpath.sh

One problem encountered was that csi-hostpathplugin-0 stuck in ContainerCreating

    Warning  FailedMount  108s (x9 over 3m56s)  kubelet, localhost.localdomain  MountVolume.SetUp failed for volume "registration-dir" : hostPath type check failed: /var/lib/kubelet/plugins_registry is not a directory

which I got past by

sudo mkdir /var/lib/kubelet/plugins_registry

Maybe csi-hostpath-plugin.yaml should use type DirectoryOrCreate for that path?

However, the problem that I haven't worked around is that the consumer pod doesn't schedule:

kubectl describe pod my-csi-app
 ...
  Warning  FailedScheduling  <unknown>  default-scheduler  0/1 nodes are available: 1 node(s) had volume node affinity conflict.

kubectl describe pv <ID>
...
Node Affinity:
  Required Terms:
    Term 0:        topology.hostpath.csi/node in [localhost.localdomain]
...

I haven't yet learned enough to resolve this (if it's my error) or suggest a correction (if the documentation or something else is wrong). I see that https://kubernetes-csi.github.io/docs/topology.html says that a CSINode object should be created, but

kubectl get csinode
No resources found.

According to the same source, https://kubernetes-csi.github.io/docs/csi-node-object.html node-driver-registrar is responsible for creating that object, but evidently it doesn't, even though there are no errors in the log. I've found no evidence in grepping the node-driver-registrar source code that it does or should.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions