BUG REPORT
kubeadm version (use kubeadm version):
kubeadm version: &version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.6", GitCommit:"fbf646b339dc52336b55d8ec85c181981b86331a", GitTreeState:"clean", BuildDate:"2020-12-18T12:07:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"windows/amd64"}
Environment:
kubectl version): v1.19.6uname -a): OS build 17763.107I am joining a windows server (2019) configured with "containerd" to a kubernetes cluster.
I registered containerd as a Windows service and ran command "kubeadm join".
The following error will occured and join job failed.
PS C:\poc-window> kubeadm join --config=join.yaml
>>
nodeRegistration.criSocket: Invalid value: "//./pipe/containerd-containerd": path is not absolute: //./pipe/containerd-containerd
To see the stack trace of this error execute with --v=5 or higher
PS C:\poc-window> cd \.pipe
cd : 'C:\.pipe' The path doesn't exist, so it can't be found. (I translated this line to English)
Position line: 1 character: 1 (I translated this line to English)
+ cd \.pipe
+ ~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\.pipe:String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
In case of docker, it supports tcp socket. Is there a setting for containerd as well?
The Windows Server 2019 node will join k8s cluster.
I did follow steps.
containerd configuration
Get-Content config.toml
=====
root = "C:\\ProgramData\\containerd\\root"
state = "C:\\ProgramData\\containerd\\state"
...
[grpc]
address = "\\\\.\\pipe\\containerd-containerd"
...
[plugins]
[plugins."io.containerd.grpc.v1.cri"]
...
sandbox_image = "mcr.microsoft.com/oss/kubernetes/pause:1.4.0"
systemd_cgroup = true
disable_cgroup = true
[plugins."io.containerd.grpc.v1.cri".containerd]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
....
[plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "C:\\etc\\cni\\net.d\\bin"
conf_dir = "C:\\etc\\cni\\net.d\\conf"
=====
I think this is similar to the docker issue(https://github.com/kubernetes/kubeadm/issues/1079) , but I haven't found the case for containerd.
please try:
npipe:////./pipe/containerd-containerd
this is already in the kubeadm scripts for Win / k8s:
https://github.com/kubernetes-sigs/sig-windows-tools/blob/afc5781f1ae8a72216013a0ac2192a26353d7278/kubeadm/scripts/Install-Containerd.ps1#L167
@neolit123 It works. Thanks :D
/close
Given that the problem seems fixed
@fabriziopandini: Closing this issue.
In response to this:
/close
Given that the problem seems fixed
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
Most helpful comment
please try:
this is already in the kubeadm scripts for Win / k8s:
https://github.com/kubernetes-sigs/sig-windows-tools/blob/afc5781f1ae8a72216013a0ac2192a26353d7278/kubeadm/scripts/Install-Containerd.ps1#L167