部署完以后ks-apigateway无法启动,查看报错,应该是因为redis服务没起来。
NAME READY STATUS RESTARTS AGE
pod/ks-account-5f4c9d4b8f-4d574 1/1 Running 0 79m
pod/ks-account-5f4c9d4b8f-79mff 1/1 Running 0 79m
pod/ks-account-5f4c9d4b8f-h2t6g 1/1 Running 0 79m
pod/ks-apigateway-65dd54f989-99k2m 0/1 CrashLoopBackOff 17 64m
pod/ks-apigateway-65dd54f989-9thg6 0/1 CrashLoopBackOff 17 64m
pod/ks-apigateway-65dd54f989-qghdd 0/1 CrashLoopBackOff 17 64m
pod/ks-apiserver-6d7ddd7d-5kg9z 1/1 Running 0 79m
pod/ks-apiserver-6d7ddd7d-6gg9b 1/1 Running 0 79m
pod/ks-apiserver-6d7ddd7d-mdgt9 1/1 Running 0 79m
pod/ks-console-6f7f75bb48-4bm9z 1/1 Running 0 79m
pod/ks-console-6f7f75bb48-mxtrv 1/1 Running 0 79m
pod/ks-console-6f7f75bb48-x96h7 1/1 Running 0 79m
pod/ks-controller-manager-6dd9b76d75-qdkf2 1/1 Running 0 79m
pod/ks-controller-manager-6dd9b76d75-s2wbj 1/1 Running 0 79m
pod/ks-controller-manager-6dd9b76d75-w9rsn 1/1 Running 0 79m
pod/ks-installer-556774c9fb-zj229 1/1 Running 0 81m
pod/openldap-0 1/1 Running 0 79m
pod/openldap-1 1/1 Running 0 79m
pod/redis-ha-haproxy-7d856799d5-8rd26 1/1 Running 0 4m58s
pod/redis-ha-haproxy-7d856799d5-94ts7 1/1 Running 0 4m58s
pod/redis-ha-haproxy-7d856799d5-kxd96 1/1 Running 0 4m58s
pod/redis-ha-server-0 0/2 Init:CrashLoopBackOff 5 4m58s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ks-account ClusterIP 10.103.243.149 <none> 80/TCP 79m
service/ks-apigateway ClusterIP 10.99.136.128 <none> 80/TCP 79m
service/ks-apiserver ClusterIP 10.98.13.216 <none> 80/TCP 79m
service/ks-console NodePort 10.107.26.241 <none> 80:30880/TCP 79m
service/openldap ClusterIP None <none> 389/TCP 79m
service/redis ClusterIP 10.110.84.244 <none> 6379/TCP 80m
service/redis-ha ClusterIP None <none> 6379/TCP,26379/TCP 80m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/ks-account 3/3 3 3 79m
deployment.apps/ks-apigateway 0/3 3 0 79m
deployment.apps/ks-apiserver 3/3 3 3 79m
deployment.apps/ks-console 3/3 3 3 79m
deployment.apps/ks-controller-manager 3/3 3 3 79m
deployment.apps/ks-installer 1/1 1 1 81m
deployment.apps/redis-ha-haproxy 3/3 3 3 80m
NAME DESIRED CURRENT READY AGE
replicaset.apps/ks-account-5f4c9d4b8f 3 3 3 79m
replicaset.apps/ks-apigateway-65dd54f989 3 3 0 79m
replicaset.apps/ks-apiserver-6d7ddd7d 3 3 3 79m
replicaset.apps/ks-console-6f7f75bb48 3 3 3 79m
replicaset.apps/ks-controller-manager-6dd9b76d75 3 3 3 79m
replicaset.apps/ks-installer-556774c9fb 1 1 1 81m
replicaset.apps/redis-ha-haproxy-7d856799d5 3 3 3 80m
NAME READY AGE
statefulset.apps/openldap 2/2 79m
statefulset.apps/redis-ha-server 0/3 80m
进一步查看redis日志,发现是因为redis的初始化容器没起来,报错如下:
Could not connect to Redis at redis-ha:26379: Name does not resolve
Initializing config..
/readonly-config/init.sh: line 84: Could not resolve the announce ip for this pod: not found
谷歌搜了一下这个错,应该是有个announce
服务没起来。继续搜了一下ks-installer
文档,发现有如下描述:
When HAProxy is enabled, it will attempt to connect to each announce-service of each redis replica instance in its init container before starting.
It will fail if announce-service IP is not available fast enough (10 seconds max by announce-service).
A such case could happen if the orchestator is pending the nomination of redis pods.
Risk is limited because announce-service is using `publishNotReadyAddresses: true`, although, in such case, HAProxy pod will be rescheduled afterward by the orchestrator.
所以,这个announce
应该如何运行?kubesphere会自动创建吗?但是我部署完以后并没有看到