kubelet-config“ is forbidden

FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get component configs: could not download the kubelet configuration from ConfigMap "kubelet-config": configmaps "kubelet-config" is forbidden: User "system:bootstrap:y89j06" cannot get resource "configmaps" in API group "" in the namespace "kube-system

出现原因:
           kubeadm和kubelet版本与集群不一致。

解决方法:
           卸载cri-tools和kubelet,并重新安装kubeadm和kubelet正确的版本,版本应依据master的版本来安装,不应高于master的版本。(如果kubelet版本高于kubeadm,则加入节点成功之后会一直处于NotReady状态)
————————————————

检查集群的版本:

[root@master01 kube-controller-manager]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:"2021-07-15T21:03:28Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

node1:

[root@node1 ~]# yum list installed|grep kubeadm
kubeadm.x86_64                       1.25.2-0                       @kubernetes 

删除1.25这个版本的kubeadm

yum remove kubeadm

yum remove kubelet

再安装与集群同样的版本:

[root@node1 ~]# systemctl enable kubelet && systemctl start kubelet

检查kubelet状态:


[root@node1 ~]# systemctl status kubelet

[root@node1 ~]# 

最后再加入集群:

[root@node1 ~]# yum install kubeadm-1.21.3
确认已经安装:

[root@node2 ~]# yum list installed|grep kubeadm
kubeadm.x86_64                       1.21.3-0                       @kubernetes 

但加入集群又报错:[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.

[root@node1 etc]# tail -f /var/log/messages

failed to parse kubelet flag: unknown flag: --network-plugin

kube出现unknown flag: --network-plugin

这个问题是kubelet的版本与master节点不一致。

master节点和node节点修改统一:

修改:vi /etc/docker/daemon.json ,添加以下内容:

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

再重启Docker

[root@node1 etc]# systemctl stop docker.service
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
[root@node1 etc]# systemctl start docker.service

再来重新添加集群:

kubeadm join 192.168.10.11:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:171372e7f2cc19d81a2a390345dbf52e8508b868c9fbd4cae1e645f5bb9198e7 
        

### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值