Alan-cheng Rick 我也碰到了同样的问题,组件一切正常,devops-controller一直报以下错误: E0906 09:47:48.329925 1 devopsproject_controller.go:163] error syncing ‘qingtian-devopsp5bcz’: [ServiceError:500] Get “http://devops-jenkins.kubesphere-devops-system/crumbIssuer/api/json/api/json”: dial tcp: lookup devops-jenkins.kubesphere-devops-system on 10.96.0.10:53: no such host, requeuing 我不明白它解析出的devops-jenkins的host为什么是10.96.0.10:53,它明明是下图的IP:10.244.1.185
Alan-cheng Rick 我理解你说的问题了,这确实是K8S DNS解析hostname失败的一种情况。 但我不确定 dev-controller 在这里访问的devops-jenkins.kubesphere-devops-system 是否是正确的? 我理解的是 dev-controller 这个应用在此时是要访问 devops-jenkins 这个 service?但通过设置 devops =true 初始的service却是 devops-jenkins-agent. 所以我按照我的理解创建了一个名字为 devops-jenkins 的 service,其除metadata.name以外的配置与 devops-jenkins-agent 相同. 如下图 但是我碰到了以下错误。所以我将新创建的 devops-jenkins service 的 port 修改为 80 经过第二步的修改后,它现在确实可以访问通了,但其从 devops-jenkins pod 调度的资源却返回了 404错误码。所以我又核对了 service 的 targetPort = 50000,然后去到 devops-jenkins pod 容器本身做了curl测试,发现其本身确实返回了 404,之后我又去核对 devops-jenkins pod 的容器配置,发现它还有另外一个服务端口 8080,所以我将 curl port 转为 8080,资源拉取到了。我确定了问题所在,并修改 devops-jenkins service 的 targetPort 为 8080(原 50000). 这之后我i再次尝试创建 devops项目,庆幸的是它成功了,但过程很困难,我使用的是 3.3.0版本的 kubesphere。
Rick agent 的端口是 50000,jenkins 的是 8080 https://github.com/kubesphere-sigs/ks-devops-helm-chart/blob/464a1a9854561ef5666433b8d975b89cced07494/charts/ks-devops/charts/jenkins/templates/jenkins-agent-svc.yaml#L15 https://github.com/kubesphere-sigs/ks-devops-helm-chart/blob/464a1a9854561ef5666433b8d975b89cced07494/charts/ks-devops/charts/jenkins/values.yaml#L68 我没遇到过这个端口发生错误的情况,不太清楚是什么导致的端口错误。
Alan-cheng Rick Rick,我明白了。这个并不是端口错误,而应该是有service创建失败了。 应该是因为 jenkins-master-svc.yaml 的这个脚本并未被触发,或者说它在devops组件开启后,通过 jenkins-master-svc.yaml 创建的 service 创建失败了,我应该再去尝试查看下 devops 的安装日志,看看是否有service安装失败的记录
Alan-cheng Rick 下图当中的 devops-jenkins 是我手动创建的。 它并不是在我开启 devops组件 后初始化安装成功的,也就是说当我开启 devops-jenkins 组件后,这个service并未被创建出来哦。 它是我在之后的故障分析中自己手动创建出来的
Alan-cheng Rick Rick你好,我在哪里可以看到 devops组件 各个 service、pod 的创建记录,因为我猜测在我开启devops组件后,某个service是创建失败了,我想核实它们的创建记录,包含创建成功或失败的记录