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。