kubernetes从1.23升级到1.24报错处理

将 kubernetes 从 1.23.9 升级至 1.24.3,container runtime 也从 Docker 切换到 containerd,但 直接kubelet 无法启动:

# kubectl version 
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.3", GitCommit:"aef86a93758dc3cb2c658dd9657ab4ad4afc21cb", GitTreeState:"clean", BuildDate:"2022-07-13T14:30:46Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.4
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.9", GitCommit:"c1de2d70269039fe55efb98e737d9a29f9155246", GitTreeState:"clean", BuildDate:"2022-07-13T14:19:57Z", GoVersion:"go1.17.11", Compiler:"gc", Platform:"linux/amd64"}
# systemctl status 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 Tue 2022-08-16 17:38:22 CST; 3s ago
       Docs: https://kubernetes.io/docs/home/
    Process: 120499 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=1/FAILURE)
   Main PID: 120499 (code=exited, status=1/FAILURE)

Aug 16 17:38:22 MyServer kubelet[120499]:                 Insecure values: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, >
Aug 16 17:38:22 MyServer kubelet[120499]:       --tls-min-version string                                   Minimum TLS version supported. Possible values: VersionTLS10, VersionTLS11, Vers>
Aug 16 17:38:22 MyServer kubelet[120499]:       --tls-private-key-file string                              File containing x509 private key matching --tls-cert-file. (DEPRECATED: This par>
Aug 16 17:38:22 MyServer kubelet[120499]:       --topology-manager-policy string                           Topology Manager policy to use. Possible values: 'none', 'best-effort', 'restric>
Aug 16 17:38:22 MyServer kubelet[120499]:       --topology-manager-scope string                            Scope to which topology hints applied. Topology Manager collects hints from Hint>
Aug 16 17:38:22 MyServer kubelet[120499]:   -v, --v Level                                                  number for the log level verbosity
Aug 16 17:38:22 MyServer kubelet[120499]:       --version version[=true]                                   Print version information and quit
Aug 16 17:38:22 MyServer kubelet[120499]:       --vmodule pattern=N,...                                    comma-separated list of pattern=N settings for file-filtered logging (only works>
Aug 16 17:38:22 MyServer kubelet[120499]:       --volume-plugin-dir string                                 The full path of the directory in which to search for additional third party vol>
Aug 16 17:38:22 MyServer kubelet[120499]:       --volume-stats-agg-period duration                         Specifies interval for kubelet to calculate and cache the volume disk usage for

检查下kubelet报错日志

-- Subject: A start job for unit kubelet.service has finished successfully
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- A start job for unit kubelet.service has finished successfully.
-- 
-- The job identifier is 25798.
Aug 16 17:38:12 MyServer kubelet[120267]: Error: failed to parse kubelet flag: unknown flag: --network-plugin
Aug 16 17:38:12 MyServer kubelet[120267]: Usage:
Aug 16 17:38:12 MyServer kubelet[120267]:   kubelet [flags]
Aug 16 17:38:12 MyServer kubelet[120267]: Flags:
Aug 16 17:38:12 MyServer kubelet[120267]:       --add-dir-header   

注意这一句:Error: failed to parse kubelet flag: unknown flag: –network-plugin

处理方法:

修改 /var/lib/kubelet/kubeadm-flags.env 配置文件

KUBELET_KUBEADM_ARGS=”–network-plugin=cni –pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6″

修改为

KUBELET_KUBEADM_ARGS=”–container-runtime=remote –container-runtime-endpoint=unix:///var/run/containerd/containerd.sock –pod-infra-container-image=registry.aliyuncs.com/google_containers
/pause:3.6″

重启kubelet,解决问题

捎带手把集群升级一下,非常耐斯

留下评论

error: Content is protected !!