zhangwenhuai
安装环境 自建的K8S 1.18
默认SC 是 ceph,
kubesphere在自建K8S中安装报错
自己使用 SC 是可以 的
zhangwenhuai 从报错看起来一系列的存储适配都没找到匹配的,如何匹配呢?
kevendengK零S
看起来是ProvisionerCapability这个CRD没有安装成功
这个CRD是探测存储类的快照/克隆/扩容等能力,并在console中启用对应功能所需的,对你在CLI中以及console中使用其他功能不会有影响
可以试试手动安装此CRD,看下是哪里出问题了:
kubectl -n kubesphere-system exec -it $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -- kubectl apply -f kubesphere/ks-crds/storage.kubesphere.io_provisionercapabilities.yaml
kevendeng
执行安装后并没有报错
kevendengK零S
- 已编辑
zhangwenhuai
看来这个CRD又被创建成功了,看看是什么时候创建的呢:
kubectl get crds provisionercapabilities.storage.kubesphere.io
以及,既然CRD已存在了,试试看安装之前失败的那些CR:
kubectl -n kubesphere-system exec -it $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -- kubectl apply -R -f kubesphere/ks-crds/provisonercapability
手动模拟创建这部门 也没有 报错,但是 执行部署安装的时候报错,是为什么呢?
kevendeng
目前是这样的效果,如何继续触发安装呢?
kevendengK零S
zhangwenhuai 在你初次安装(14:41)时,provisionercapabilities.storage.kubesphere.io
这个CRD由于某些原因没有创建成功,而红圈中的执行步骤依赖于此CRD,因此同样执行失败。
而该CRD在之后(14:57)被创建成功,因此你手动执行红圈中的步骤也能成功了。
kevendeng 那接下来如何继续安装呢?
kevendengK零S
- 最佳回复由 zhangwenhuai 选择
zhangwenhuai 将ks-installer对应pod删除即会重新触发安装:
kubectl delete -n kubesphere-system pod $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}')
kevendeng 现在触发重新安装了, 有什么办法 可以复盘一下 当时为什么没有 安装上
provisionercapabilities.storage.kubesphere.io CRD 对象呢?
kevendengK零S
zhangwenhuai 从ks-installer的日志来看,kubectl apply CRD的操作确实是执行成功了,但api内CRD直到10分钟后才创建成功,这很不正常,因为这个过程虽然是异步的,但一般会立刻完成。
建议检查下你初次安装的时间段内,kube-apiserver处理该CRD请求的日志,看看是否有什么异常,导致这个过程卡住了。
refer:https://stackoverflow.com/questions/57115602/how-to-kubectl-wait-for-crd-creation