0x706f6b6f
@0x706f6b6f

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

kubeletが起動しない

やろうとしていること

vagrantを使い、master, nodeの2つをプライベートネットワークで構築し、k8sクラスターを作成しようとしています。
vagrantの動作は正常だと思います。

kubelet staus

systemctl status kubelet.service の結果です。

● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/lib/systemd/system/kubelet.service; enabled;
   vendor preset: en   Active: activating 
   (auto-restart) (Result: exit-code) since Fri 2022-05-27 13:5     Docs: https://kubernetes.io/docs/home/
  Process: 3547 ExecStart=/usr/bin/kubelet (code=exited, status=1/FAILURE)        
 Main PID: 3547 (code=exited, status=1/FAILURE)

swapは/etc/fstabを編集して、無効にしています。
SELinuxはインストールしていません。

ログ

journalctl -xeu kubelet | grep errorの結果です。
見やすいように多少フォーマットしています。

ランタイムとの記述があるのですが、さっぱりです。(containerdを使用しています。)

 master kubelet[8863]: W0527 14:10:52.771087    8863 clientconn.go:1331] [core] 
                        grpc: addrConn.createTransport failed to connect to {  <nil> 0 <nil>}. 
                        Err: connection error: desc = "transport: Error while dialing dial unix: missing address". Reconnecting...
 master kubelet[8863]: Error: failed to run Kubelet: unable to determine runtime API version: 
                        rpc error: code = Unavailable desc = connection error: 
                        desc = "transport: Error while dialing dial unix: missing address"
 master kubelet[8863]:       --alsologtostderr                                          
                        log to standard error as well as files 
 master kubelet[8863]:       --log-json-split-stream                                    
                        [Experimental] In JSON format, write error messages to stderr and info messages to stdout. 
                        The default is to write a single stream to stdout. 
 master kubelet[8863]:       --logtostderr                                              
                        log to standard error instead of files (default true) 
 master kubelet[8863]:       --protect-kernel-defaults                                  
                        Default kubelet behaviour for kernel tuning. If set, 
                        kubelet errors if any of kernel tunables is different than kubelet defaults. 
 master kubelet[8863]:       --runtime-request-timeout duration                         
                        Timeout of all runtime requests except long running request - pull, logs, exec and attach. 
                        When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. (default 2m0s) 

どれに目をつけるべき?

この分野の経験がないので、理解が浅いです。
引き続き原因の調査をしますが、助言等いただきたいです。

1

1Answer

コメント失礼します。

マスターノードにてkubeadm initをした時に、kubeletが原因でtimeoutになり、クラスタ構築できない、という感じでしょうか。
もしそうであれば、
kubeadm init
--cri-socket=unix:///run/containerd/containerd.sock
を加えてみてください。

kubelet起動の際に、CRIを明示する必要があるようです。

0Like

Your answer might help someone💌