动态配置kubelet 不工作,kubelet 陷入自动重启循环,节点NotReady

时间:2021-04-19 02:41:19

标签: kubernetes kubelet crashloopbackoff

https://kubernetes.io/docs/tasks/administer-cluster/reconfigure-kubelet/

我按照上面的链接配置了我的k8s集群,但是kubelet服务无法正常启动。

● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: activating (auto-restart) (Result: exit-code) since Mon 2021-04-19 10:18:42 CST; 5s ago
     Docs: https://kubernetes.io/docs/home/
  Process: 19453 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=255)
 Main PID: 19453 (code=exited, status=255)

Apr 19 10:18:42 ndc-070 kubelet[19453]:         /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport/http2_client.go:300 +0xd31
Apr 19 10:18:42 ndc-070 kubelet[19453]: goroutine 491 [select]:
Apr 19 10:18:42 ndc-070 kubelet[19453]: k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport.(*controlBuffer).get(0xc0013131d0, 0x1, 0x0, 0x0, 0x0, 0x0)
Apr 19 10:18:42 ndc-070 kubelet[19453]:         /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:395 +0x125
Apr 19 10:18:42 ndc-070 kubelet[19453]: k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport.(*loopyWriter).run(0xc0013279e0, 0x0, 0x0)
Apr 19 10:18:42 ndc-070 kubelet[19453]:         /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:513 +0x1d3
Apr 19 10:18:42 ndc-070 kubelet[19453]: k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client.func3(0xc001378000)
Apr 19 10:18:42 ndc-070 kubelet[19453]:         /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport/http2_client.go:346 +0x7b
Apr 19 10:18:42 ndc-070 kubelet[19453]: created by k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client
Apr 19 10:18:42 ndc-070 kubelet[19453]:         /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/google.golang.org/grpc/internal/transport/http2_client.go:344 +0xefc

我使用 K8S v1.20 并通过编辑文件 /etc/default/kubelet<设置了 kubelet --dynamic-config-dir 标志 /强>:

KUBELET_EXTRA_ARGS=--dynamic-config-dir=/var/lib/kubelet-dynamic

作为 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 建议:

# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

如果我删除 /etc/default/kubelet 的竞争,一切都会好起来的。

0 个答案:

没有答案