创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。

操作系统信息

Kubernetes版本信息

容器运行时

KubeSphere版本信息
版本 v3.3.1,使用kk离线安装

问题是什么

内网里边
在使用kubesphere连接外部harbor时验证失败,docker login可以连接,也可以下载镜像

目前配置如下

nodelocaldns配置如下

coredns配置如下

    • qczrzlK零S

      zhangteng 进ks-apiserver容器看下/etc/ssl/certs/ca.crt 证书是否和docker中配置的一致

        qczrzl

        ks-apiserver容器

        路径:/etc/ssl/certs/ca.crt

        docker容器

        路径:/etc/docker/certs.d

        cbit.hub.com中ca.crt

        dockerhub.kubekey.local中ca.crt

        dockerhub.kubesphere.local中ca.crt

        以上截图分别是证书ca.crt,大佬帮忙给看看,提供下思路

          • qczrzlK零S

            zhangteng cbit.hub.com中ca.crt,用这个命令看下证书内容是否包含指定域名 openssl x509 -text -noout -in ca.crt

              qczrzl

              这应该是包含的,这是我自建harbor私有仓库生成的证书

              大佬是不是应该使用dockerhub.kubekey.local这个证书呀

                • qczrzlK零S

                  zhangteng 你现在要连接的harbor配置的是哪个证书,你ks-apiserver应该就用这个证书吧

                    qczrzl

                    我连接harbor配置的是cbit.hub.com这个证书的,ks-apiserver容器里边的证书和cbit.hub.com这个证书一样,现在验证不通过

                    大佬在帮忙提供点思路

                    • qczrzlK零S

                      coredns这里你应该要配置172.20.46.184 cbit.hub.com 吧,是不是指向的域名错了,再就是你把cbit.hub.com和172.20.46.184两个域都配置进harbor的证书试试

                        qczrzl

                        说明一点,外部harbor是在184服务器上搭建的,kubesphere是在60服务器上搭建的不知道配置字典中coredns是否配置正确

                        搭建harbor的时候生成证书的时候已经把cbit.hub.com 和服务器ip 已经配置进去了v3.txt

                        v3.txt文件

                        目前将域名改成cbit.hub.com还是验证失败,意思好像是说不能解析这个ip

                          • qczrzlK零S

                            • 已编辑

                            zhangteng 这里可能有误解,你用x509 v3 扩展文件 v3.txt 生成的证书,比如命令是

                            openssl x509 -req -sha512 -days 3650 \
                                -extfile v3.txt \
                                -CA ca.crt -CAkey ca.key -CAcreateserial \
                                -in cbit.hub.com.csr \
                                -out cbit.hub.com.crt

                            配置到harbor的应该是扩展后的证书

                            然后这里配置到ks-apiserver的应该是cbit.hub.com.crt 这个文件的内容,用openssl x509 -text -noout -in cbit.hub.com.crt

                            输出应该是

                            我之前没有对应的harbor自签证书环境,刚花时间搭了个,用的就是这个cbit.hub.com域名和我自签的证书,配置到ks-apiserver后验证通

                              qczrzl

                              使用 openssl x509 -text -noout -in cbit.hub.com.crt

                              我现在要修改的地方是不是就是以下地方

                                qczrzl

                                修改完内容还是这个错误。重启了ks-apiserver

                                容器日志

                                容器中证书

                                harbor184服务器配置文件

                                /opt/harbor/cert/cbit.hub.crt

                                zhangteng

                                4.x 支持跳过证书验证

                                3.x 可以通过添加 annotation 实现

                                secret.kubesphere.io/force-insecure: 'true'

                                  hongming

                                  这个配置加上需要重新启动服务么,是不是加上这个配置点击验证,提示验证通过么

                                    • qczrzlK零S

                                      zhangteng 我刚好像复现了你这个问题,我将harbor.yml配置文件中的hostname改为我harbor节点的ip 192.168.101.200,然后重新生成harbor配置并重启harbor,然后就报跟你一样的错

                                      这个我再修改回正确的harbor.yml中的hostname 配置项,然后./prepare 重新生成配置,再重启harbor后就正常了

                                      docker-compose down

                                      docker-compose up -d

                                        qczrzl

                                        大佬目前harbor配置文件中hostname就是配置的域名

                                        我现在需要怎么修改呢,麻烦大佬给我哥提示吧,很困扰啊

                                          • qczrzlK零S

                                            zhangteng 额,配置没问题,你可以执行下 prepare脚本,然后再重启harbor试试,实在不行你留个微信吧,这样回复来回复去效率很低

                                              qczrzl

                                              大佬可以了,把harbor服务停止了执行了下prepare脚本,启动后在验证,就可以了,感谢大佬的支持,非常感谢

                                              qczrzl

                                              大佬镜像仓库验证成功为什么还是搜不到镜像呢

                                              镜像仓库