kubernetes - trouble adding node to cluster



  • by following the information in https://www.youtube.com/watch?v=o6bxo0Oeg6o&t=1s , I was able to get a control plane running on my kmaster vm.

    jason@kmaster:~$ kubectl get pods -A
    NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
    kube-system   calico-kube-controllers-59697b644f-tpxnn   1/1     Running   0          18h
    kube-system   calico-node-88l8f                          1/1     Running   0          18h
    kube-system   coredns-565d847f94-vpzwg                   1/1     Running   0          18h
    kube-system   coredns-565d847f94-wkv4p                   1/1     Running   0          18h
    kube-system   etcd-kmaster                               1/1     Running   0          18h
    kube-system   kube-apiserver-kmaster                     1/1     Running   0          18h
    kube-system   kube-controller-manager-kmaster            1/1     Running   0          18h
    kube-system   kube-proxy-wd2gh                           1/1     Running   0          18h
    kube-system   kube-scheduler-kmaster                     1/1     Running   0          18h
    

    Here are my network interfaces:

    jason@kmaster:~$ ip a
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens18:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether e6:ec:4b:b8:37:7a brd ff:ff:ff:ff:ff:ff
        altname enp0s18
        inet 10.0.10.118/24 brd 10.0.10.255 scope global ens18
           valid_lft forever preferred_lft forever
        inet6 2600:8802:5700:46d::164d/128 scope global dynamic noprefixroute
           valid_lft 4863sec preferred_lft 2163sec
        inet6 2600:8802:5700:46d:e4ec:4bff:feb8:377a/64 scope global dynamic mngtmpaddr noprefixroute
           valid_lft 86385sec preferred_lft 14385sec
        inet6 fe80::e4ec:4bff:feb8:377a/64 scope link
           valid_lft forever preferred_lft forever
    3: docker0:  mtu 1500 qdisc noqueue state DOWN group default
        link/ether 02:42:bb:62:1c:c5 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
    4: calida7207728a2@if3:  mtu 1500 qdisc noqueue state UP group default
        link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet6 fe80::ecee:eeff:feee:eeee/64 scope link
           valid_lft forever preferred_lft forever
    5: cali919c5dc3a63@if3:  mtu 1500 qdisc noqueue state UP group default
        link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 1
        inet6 fe80::ecee:eeff:feee:eeee/64 scope link
           valid_lft forever preferred_lft forever
    6: cali0657a847784@if3:  mtu 1500 qdisc noqueue state UP group default
        link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 2
        inet6 fe80::ecee:eeff:feee:eeee/64 scope link
           valid_lft forever preferred_lft forever
    7: tunl0@NONE:  mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
        link/ipip 0.0.0.0 brd 0.0.0.0
        inet 192.168.189.0/32 scope global tunl0
           valid_lft forever preferred_lft forever
    

    I am now trying to add a node to the cluster by using the following command:

    sudo kubeadm join 10.0.10.118:6443 --token          --discovery-token-ca-cert-hash sha256:
    Found multiple CRI endpoints on the host. Please define which one do you wish to use by setting the 'criSocket' field in the kubeadm configuration file: unix:///var/run/containerd/containerd.sock, unix:///var/run/cri-dockerd.sock
    To see the stack trace of this error execute with --v=5 or higher
    

    As you can see it says 'please define which one you wish to use by setting the 'criSocket' field in the kubeadm configuration file. However when I try to edit /var/run/cri-dockerd.sock file, it says it's not a normal file:

    cri-dockerd.sock is not a regular file (use -f to see it)
    

    Here is my kubeadm config print:

    jason@kmaster:~$ kubectl get pods -A --watch
    NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
    kube-system   calico-kube-controllers-59697b644f-tpxnn   1/1     Running   2 (6m56s ago)   16d
    kube-system   calico-node-88l8f                          1/1     Running   2 (6m56s ago)   16d
    kube-system   coredns-565d847f94-vpzwg                   1/1     Running   2 (6m51s ago)   16d
    kube-system   coredns-565d847f94-wkv4p                   1/1     Running   2 (6m51s ago)   16d
    kube-system   etcd-kmaster                               1/1     Running   2 (6m56s ago)   16d
    kube-system   kube-apiserver-kmaster                     1/1     Running   2 (6m55s ago)   16d
    kube-system   kube-controller-manager-kmaster            1/1     Running   2 (6m56s ago)   16d
    kube-system   kube-proxy-wd2gh                           1/1     Running   2 (6m56s ago)   16d
    kube-system   kube-scheduler-kmaster                     1/1     Running   2 (6m56s ago)   16d
    ^Cjason@kmaster:~kubeadm config print init-defaults
    apiVersion: kubeadm.k8s.io/v1beta3
    bootstrapTokens:
    - groups:
      - system:bootstrappers:kubeadm:default-node-token
      token: abcdef.0123456789abcdef
      ttl: 24h0m0s
      usages:
      - signing
      - authentication
    kind: InitConfiguration
    localAPIEndpoint:
      advertiseAddress: 1.2.3.4
      bindPort: 6443
    nodeRegistration:
      criSocket: unix:///var/run/containerd/containerd.sock
      imagePullPolicy: IfNotPresent
      name: node
      taints: null
    ---
    apiServer:
      timeoutForControlPlane: 4m0s
    apiVersion: kubeadm.k8s.io/v1beta3
    certificatesDir: /etc/kubernetes/pki
    clusterName: kubernetes
    controllerManager: {}
    dns: {}
    etcd:
      local:
        dataDir: /var/lib/etcd
    imageRepository: registry.k8s.io
    kind: ClusterConfiguration
    kubernetesVersion: 1.25.0
    networking:
      dnsDomain: cluster.local
      serviceSubnet: 10.96.0.0/12
    scheduler: {}
    

    Under nodeRegistration it says: nodeRegistration: criSocket: unix:///var/run/containerd/containerd.sock

    In /var/run/ I see cri-dockerd.sock

    jason@kmaster:/var/run$ ls -la
    total 28
    srw-rw----  1 root docker    0 Nov 15 00:25 cri-dockerd.sock
    

    How can I add my node to the cluster?



  • You can choose which CRI you would like to use directly from the join command by adding this flag: (see kubeadm join --help for details)

    --cri-socket string
    

    here, string will be one of the two available sockets displayed in the error:

    1. unix:///var/run/containerd/containerd.sock
    2. unix:///var/run/cri-dockerd.sock

    Or you can also add it to you kubeadm config as stated see doc here: https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta3/#kubeadm-k8s-io-v1beta3-NodeRegistrationOptions


Log in to reply
 

Suggested Topics