创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。

操作系统信息
物理机,Ubuntu20.04,8G

Kubernetes版本信息
Client Version: version.Info{Major:“1”, Minor:“17”, GitVersion:“v1.17.9”, GitCommit:“4fb7ed12476d57b8437ada90b4f93b17ffaeed99”, GitTreeState:“clean”, BuildDate:“2020-07-15T16:18:16Z”, GoVersion:“go1.13.9”, Compiler:“gc”, Platform:“linux/amd64”}

Server Version: version.Info{Major:“1”, Minor:“17”, GitVersion:“v1.17.9”, GitCommit:“4fb7ed12476d57b8437ada90b4f93b17ffaeed99”, GitTreeState:“clean”, BuildDate:“2020-07-15T16:10:45Z”, GoVersion:“go1.13.9”, Compiler:“gc”, Platform:“linux/amd64”}

容器运行时
docker version / crictl version / nerdctl version 结果贴在下方

Client: Docker Engine - Community

Version: 20.10.7

API version: 1.41

Go version: go1.13.15

Git commit: f0df350

Built: Wed Jun 2 11:56:40 2021

OS/Arch: linux/amd64

Context: default

Experimental: true

Server: Docker Engine - Community

Engine:

Version: 20.10.7

API version: 1.41 (minimum version 1.12)

Go version: go1.13.15

Git commit: b0f5bc3

Built: Wed Jun 2 11:54:48 2021

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.4.9

GitCommit: e25210fe30a0a703442421b0f60afac609f950a3

runc:

Version: 1.0.1

GitCommit: v1.0.1-0-g4144b63

docker-init:

Version: 0.19.0

GitCommit: de40ad0

KubeSphere版本信息
v3.0.0。在线安装。使用kk安装。

问题是什么
登陆时,经常没有反应,或者登陆后频繁弹出【会话超时或此账户在其他登录地方登录】的错误信息。

查看ks-apiserver出现这样的错误

E0805 04:14:37.894254 1 jwt_token.go:45] token not found in cache

E0805 04:14:37.894277 1 authentication.go:60] Unable to authenticate the request due to error: token not found in cache

已经尝试修改kubesphere-config,但是依然没有结果

    补充一下,起初发现的问题是k8s的证书过期了,我们使用更新了证书 ./kk certs renew

    xieyuanchang 是不是手动调整了 ks-apiserver 的副本数? 在没有启用 redis 的情况下 ks 用的是 in-memory cache,校验 token 是否被吊销,如果副本数不为一,会因为数据不一致出现 token not found 的错误。处理办法有三个

    1. 把 ks-apiserver 调整回单副本
    2. 启用 redis
    3. 禁用 token 吊销校验,配置 accessTokenMaxAge 为 0

    看你配置中accessTokenMaxAge已经是 0了,curl -u admin:<password> ‘http://<ks-apiserver>/kapis/config.kubesphere.io/v1alpha2/configs/oauth’ 检查内存中配置是否正确,如果没有正确加载 kubesphere-config 可以重启一下 ks-apiserver

      hongming 谢谢您的回答,感觉您的分析也是很靠谱的。

      我沿着您的分析,做了排查并记录,先是配置检查,看起来值很大,不知道配置是否生效。

      检查是否有多个ks-apiserver用例,应该是只有一个用例

      接着我尝试重启ks-apiserver

      最后查看日志,正常启动。然后尝试登录后,问题依旧。日志里有一行警告,不知道是不是解决问题的钥匙

      client_config.go:543] Neither –kubeconfig nor –master was specified. Using the inClusterConfig. This might not work.

      另外,参照您的分析,我猜测有没有可能是redis集群之间出现了分离,我一会将尝试对redis集群进行缩容,看看能否正常。

      接上一步,对redis进行缩容后,仅保留一个redis节点后,已经能够正常登陆

      现在的问题是为什么redis集群会有问题呢?现在只有一增加redis节点,就会出现这个问题。

      我曾经因为redis启动不了,删除dump.rdb文件。 在更新证书之前,redis节点也曾经被驱逐,Evicted。有什么办法可以恢复redis集群呢?