kubesphere登录不跳转问题
问题描述:由于增加了ks-apiserver
副本数量,但是ks-apiserver
没有配置 Redis
,因此将使用内存缓存,这可能在运行多个 ks-apiserver
副本时导致不一致性.
查看kubesphere-system空间情况
kubectl get all -n kubesphere-system
[root@k8s-master ~]# kubectl get all -n kubesphere-system
NAME READY STATUS RESTARTS AGE
pod/ks-apiserver-57f76fc7f8-655qq 1/1 Running 0 85m
pod/ks-console-6d6d765964-pqm9q 1/1 Running 3 27h
pod/ks-controller-manager-5bcd4c4497-2mdhz 1/1 Running 0 85m
pod/ks-installer-86669b5744-mwddl 1/1 Running 3 27h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ks-apiserver ClusterIP 10.233.15.168 <none> 80/TCP 30h
service/ks-console NodePort 10.233.25.135 <none> 80:30880/TCP 30h
service/ks-controller-manager ClusterIP 10.233.9.17 <none> 443/TCP 30h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/ks-apiserver 1/1 1 1 30h
deployment.apps/ks-console 1/1 1 1 30h
deployment.apps/ks-controller-manager 1/1 1 1 30h
deployment.apps/ks-installer 1/1 1 1 30h
NAME DESIRED CURRENT READY AGE
replicaset.apps/ks-apiserver-57bd87b7f7 0 0 0 29h
replicaset.apps/ks-apiserver-57f76fc7f8 1 1 1 85m
replicaset.apps/ks-apiserver-648848d49b 0 0 0 29h
replicaset.apps/ks-apiserver-69b9b6cd97 0 0 0 30h
replicaset.apps/ks-apiserver-6c64d7bb57 0 0 0 30h
replicaset.apps/ks-apiserver-6fc5b97c4c 0 0 0 25h
replicaset.apps/ks-apiserver-746ff85777 0 0 0 30h
replicaset.apps/ks-apiserver-76499696c7 0 0 0 26h
replicaset.apps/ks-apiserver-78dbf446d9 0 0 0 25h
replicaset.apps/ks-apiserver-cd9b85d5d 0 0 0 85m
replicaset.apps/ks-console-6d6d765964 1 1 1 30h
replicaset.apps/ks-controller-manager-564598db84 0 0 0 30h
replicaset.apps/ks-controller-manager-5bcd4c4497 1 1 1 85m
replicaset.apps/ks-controller-manager-76bb6cf669 0 0 0 29h
replicaset.apps/ks-controller-manager-777b4bf4c 0 0 0 85m
replicaset.apps/ks-controller-manager-779b7cffcf 0 0 0 25h
replicaset.apps/ks-controller-manager-7f999fd4c6 0 0 0 29h
replicaset.apps/ks-controller-manager-85565f9df7 0 0 0 25h
replicaset.apps/ks-controller-manager-8bfc874 0 0 0 30h
replicaset.apps/ks-controller-manager-bb8c78dc7 0 0 0 30h
replicaset.apps/ks-installer-86669b5744 1 1 1 30h
可以看到 ks-console pod
名称为 ks-console-6d6d765964-pqm9q
查看kubesphere控制台日志
[root@k8s-master ~]# kubectl logs -n kubesphere-system ks-console-6d6d765964-pqm9q
W0429 15:18:08.046214 1 client_config.go:552] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
W0429 15:18:08.048107 1 client_config.go:552] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
W0429 15:18:08.056437 1 metricsserver.go:238] Metrics API not available.
W0429 15:18:08.056475 1 options.go:180] ks-apiserver starts without redis provided, it will use in memory cache. This may cause inconsistencies when running ks-apiserver with multiple replicas.
I0429 15:18:08.120881 1 interface.go:60] start helm repo informer
I0429 15:18:08.151071 1 apiserver.go:372] Start cache objects
I0429 15:18:08.920478 1 apiserver.go:576] Finished caching objects
I0429 15:18:08.920509 1 apiserver.go:297] Start listening on :9090
W0429 15:19:51.928048 1 jwt_token.go:52] token not found in cache
W0429 15:19:51.933761 1 jwt_token.go:52] token not found in cache
E0429 15:34:30.198386 1 am.go:978] role.rbac.authorization.k8s.io "admin" not found
E0429 15:34:30.198429 1 am.go:210] role.rbac.authorization.k8s.io "admin" not found
E0429 15:37:18.313887 1 utils.go:76] /workspace/pkg/kapis/resources/v1alpha2/handler.go:334 invalid character 'p' after top-level value
根据提供的日志信息
Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
这个警告表明 KubeSphere 在尝试使用集群内部配置(inClusterConfig)连接到 Kubernetes API 服务器,因为没有提供 kubeconfig 文件或 master 参数。通常情况下,当 KubeSphere 运行在 Kubernetes 集群内部时,这是可以工作的。Metrics API not available.
这个警告表明 Metrics API 不可用。你可能需要检查 Metrics Server 是否已经正确安装和运行。ks-apiserver starts without redis provided, it will use in memory cache. This may cause inconsistencies when running ks-apiserver with multiple replicas.
这个警告表明 ks-apiserver 没有配置 Redis,将使用内存缓存。如果你有多个 ks-apiserver 副本运行,可能会导致数据不一致。role.rbac.authorization.k8s.io "admin" not found
这个错误表明 “admin” 角色在 RBAC 授权中未找到。你可能需要检查 Kubernetes RBAC 配置。/workspace/pkg/kapis/resources/v1alpha2/handler.go:334 invalid character 'p' after top-level value
这个错误表明在处理 JSON 数据时遇到了非法字符 ‘p’。你可能需要检查与此相关的 JSON 数据是否格式正确。
以上都只是可能的问题和解决方案,具体情况可能需要根据你的环境和配置进行调整,此处由于我只进行过ks-apiserver
的调整,所以我优先排查ks-apiserver
的问题
查看ks-apiserver这个pod日志
kubectl logs -n kubesphere-system ks-apiserver-57f76fc7f8-655qq
[root@k8s-master ~]# kubectl logs -n kubesphere-system ks-apiserver-57f76fc7f8-655qq
W0429 14:01:03.227371 1 client_config.go:552] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
W0429 14:01:03.229726 1 client_config.go:552] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.
W0429 14:01:03.238273 1 metricsserver.go:238] Metrics API not available.
W0429 14:01:03.238311 1 options.go:180] ks-apiserver starts without redis provided, it will use in memory cache. This may cause inconsistencies when running ks-apiserver with multiple replicas.
I0429 14:01:03.265063 1 interface.go:60] start helm repo informer
I0429 14:01:03.294912 1 apiserver.go:372] Start cache objects
I0429 14:01:04.015285 1 apiserver.go:576] Finished caching objects
I0429 14:01:04.015325 1 apiserver.go:297] Start listening on :9090
ks-apiserver starts without redis provided, it will use in memory cache. This may cause inconsistencies when running ks-apiserver with multiple replicas.
: 这个警告是说 ks-apiserver
没有配置 Redis,因此将使用内存缓存。这可能在运行多个 ks-apiserver
副本时导致一些不一致性。这可能与你的问题有关,如果多个 ks-apiserver
副本之间的缓存状态不一致,可能导致一些奇怪的行为。你可能需要考虑配置一个 Redis 来解决这个问题
减少ks-apiserver副本数量
你可以通过编辑 ks-apiserver
的 Deployment 配置来更改副本数量。这可以通过 kubectl edit
命令完成:
kubectl -n kubesphere-system edit deployment ks-apiserver
这将在你的默认编辑器中打开一个 YAML 文件。找到 spec.replicas
字段并将其更改为 1。例如:
...
spec:
replicas: 1
...
保存并退出编辑器后,Kubernetes 将自动更新该 Deployment,以匹配新的配置。
如果你更喜欢命令行,你也可以使用 kubectl scale
命令直接更改副本数量:
kubectl -n kubesphere-system scale deployment ks-apiserver --replicas=1
这将立即将 ks-apiserver
的副本数量更改为 1。