首页 > 其他分享 >KubeSphere 使用 HTTPS 协议集成 Harbor 镜像仓库指南

KubeSphere 使用 HTTPS 协议集成 Harbor 镜像仓库指南

时间:2022-11-10 18:34:09浏览次数:60  
标签:configmap Harbor KubeSphere 添加 HTTPS coredns local nodelocaldns

作者:申红磊,青云科技容器解决方案架构师,开源项目爱好者,KubeSphere Member。
上面两篇文章讲了如何部署 HTTPS Harbor对接 HTTP 的 Harbor 镜像仓库;接下来详细介绍一下,如何添加基于 HTTPS 的 Harbor 镜像仓库对接使用说明。

因为 KubeSphere 无法直接解析 Harbor 域名,需要在 CoreDNS 添加解析记录,否则会报 no such host。

NodeLocal DNSCache

NodeLocal DNSCache 通过在集群上运行一个 DNSCache Daemonset 来提高 clusterDNS 性能和可靠性。相比于纯 CoreDNS 方案,nodelocaldns + CoreDNS 方案能够大幅降低 DNS 查询 timeout 的频次,提升服务稳定性。

nodelocaldns 通过添加 iptables 规则能够接收节点上所有发往 xxx.xxx.xx.xx 的 DNS 查询请求,把针对集群内部域名查询请求路由到 CoreDNS;把集群外部域名请求直接通过 Host 网络发往集群外部 DNS 服务器。

将 nodelocaldns 解析都转发给 coredns

#forward ./etc/resolv.conf指向coredns service ip
#search coredns service ip
$ kubectl get svc coredns -n kube-system
NAME      TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
coredns   ClusterIP   10.233.0.3   <none>        53/UDP,53/TCP,9153/TCP   28d
#修改nodelocaldns的配置configmap的值
$ kubectl edit cm nodelocaldns -n kube-system
## 将 forward ./etc/resolv.conf 调整为:forward . 10.233.0.3
apiVersion: v1
data:
  Corefile: |
    cluster.local:53 {
        errors
        cache {
            success 9984 30
            denial 9984 5
        }
        reload
        loop
        bind 169.254.25.10
        forward . 10.233.0.3 {
            force_tcp
        }
        prometheus :9253
        health 169.254.25.10:9254
    }
    ...
## 保存、重启、或者手动重启,效果一样

在 coredns 中添加主机记录

#修改 coredns configmap 文件,添加主机记录
$ kubectl edit cm coredns -n kube-system
....
    }
    kubernetes cluster.local in-addr.arpa ip6.arpa {
       pods insecure
       fallthrough in-addr.arpa ip6.arpa
       ttl 30
    }
    hosts  {
         192.168.100.2  dockerhub.kubekey.local
         fallthrough
    }
    prometheus :9153
....
## 保存或者重启coredns一下进行验证

如果此时添加 harbor 对接信息,会提示 证书问题, x509 的错误提示

Get"https://dockerhub.kubekey.local/v2/":x509:certificate signed by unknown authority

x509

在 KubepShere 中的 ks-apiserver 中添加镜像仓库 CA 证书。

通过 configmap 加载 CA 证书

查看 CA 证书的位置,在 Harbor 部署时,查看证书生成的位置及值:

#目录位置: ls /etc/docker/certs.d/
$ cat /etc/docker/certs.d/dockerhub.kubekey.local/ca.crt
-----BEGIN CERTIFICATE-----
MIIDATCCAemgAwIBAgIBADANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtyZWdp
c3RyeS1jYTAeFw0yMjA0MjExNjUzNTJaFw0zMjA0MTgxNjUzNTJaMBYxFDASBgNV
BAMTC3JlZ2lzdHJ5LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
vs0k1cS3S4L9tvTvJomlMwNN8eGSk8hujGKm6SQHAYicFsNmfYevfthJsufuikIq
ggxwyL9nExr470l4hN31PN/ztIKZh/57IKF6XZrF5Ld3fBxOvVGSTarZraIkxkPe
/N5HfJdAWh5CTKtdsOpal3CmP+6tbRQ6qQN5D9lO97Tid79W8a58jI7FHyeYS08D
VlBjDCip81mI4YsgMaXmatS0HjtLtCvQNsL5Py2KKAhHb+Rd0iepICUT2uUwR1Cu
RpO+FkiAxM8WXF/6IndiIsoC2XCh6pELadcKCNNy5IREC/+JbjveNZOuYU4KPJn5
TYZxzalJ8nWRHpi6neFHAQIDAQABo1owWDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0T
AQH/BAUwAwEB/zAdBgNVHQ4EFgQUtcd+vBgIbcmB8O7ZeSBwFOCPj/QwFgYDVR0R
BA8wDYILcmVnaXN0cnktY2EwDQYJKoZIhvcNAQELBQADggEBABxAVx3Wkfic/SWY
Z1T0kv+zq8NW1YyHDw13mRwcjV+lRI0/WtANEBAbAejmZJkhhz7uc/N9egXF6cOY
PLoxvLXQJGxQKfBqrGkFhAlFt4FWJm0g7fXq/a6Fo/EStRmW9Oio0dFJHQ/F6Lon
DK/1bx0s27JJqBmU4WnmGF1U2prYuJ3/C8mwxWb49K+z1s1sDQQOCp/jt8gabc2R
GAZgcYhIj+HUXAEl14+GhpoLqJbJ5ngVLxz08YDMTGp1pQ8uYeE1m29yTOThMGrC
owVM1fSSHs5UtKQ2/tVcxi5Mf+WUWZr2D2km0dI9BJyXwtQwGKhp3lwJX5e0NTZi
+6a/23U=
-----END CERTIFICATE-----
#界面创建configmap:工作台>企业空间>System-workspace>项目>kubesphere-system>配置>配置字典,新建harbor4shl-ca

编辑 ks-apiserver deployment 文件,进行 configmap 的挂载:

保存更新。

验证

本文由博客一文多发平台 OpenWrite 发布!

标签:configmap,Harbor,KubeSphere,添加,HTTPS,coredns,local,nodelocaldns
From: https://www.cnblogs.com/kubesphere/p/16878007.html

相关文章

  • SpringBoot启用Https(二十六)
    死亡的日子终究会到来,在那一天到来之前,别忘记,来我坟前再看一眼上一章简单介绍了SpringBoot自定义日志Starter(二十五),如果没有看过,​​请观看上一章​​关于这一章节的内......
  • nginx 使用ssl证书配置https协议
    如果能给你带来帮助,不胜荣幸,如果有错误也请批评指正,共同学习,共同进步。第一,需要去申请或者购买ssl证书(这步略过,因为开发过程中没有给我提供证书和域名,只有ip地址),我从......
  • K8s系列---【KubeSphere部署完mysql8.0再部署mysql5.0导致mysql5.0启动失败的问题】
    KubeSphere部署完mysql8.0再部署mysql5.0导致mysql5.0启动失败的问题1.报错InnoDB:Tableflagsare0inthedatadictionarybuttheflagsinfile./ibdata1are0x......
  • K8s系列---【KubeSphere部署Mysql】
    KubeSphere部署Mysql(有状态副本集)扫盲:什么是有状态副本集?例如,部署一个mysql,如果服务挂了,K8s会自动拉起一个mysql服务,但是拉起的mysql服务仍然得有服务挂掉之......
  • K8s系列---【KubeSphere多租户账号创建流程】
    kubeSphere多租户账号创建流程系统默认用户为超级管理员。使用超级管理员创建HR账号,HR负责整个集团的账号创建。 ......
  • K8s系列---【Linux单节点部署KubeSphere】
    1、开通服务器4c8g;centos7.9,查看系统版本cat/etc/redhat-release;防火墙放行30000~36727,指定hostname。hostnameset-hostnamenode12、安装2.1准备kubekeyexpo......
  • K8s系列---【Linux多节点部署KubeSphere】
    1、准备三台服务器4c8g(master)8c16g*2(worker)centos7.9,查看系统版本cat/etc/redhat-release内网互通每个机器都有自己hostname防火墙放开30000~32767端口2、......
  • 登入阿里仓库报错:Error response from daemon: Get https://registry.cn-hangzhou.ali
    一、报错提示[root@wangzy~]#dockerlogin--username=你的用户名registry.cn-hangzhou.aliyuncs.comPassword:Errorresponsefromdaemon:Gethttps://registr......
  • Flask配置https访问协议
    在工作中总有会遇到不得不使用https服务的时候,如我在工作中就遇到了苹果ipa安装包请求地址必须使用https协议不然会提示证书错误.接下来就简单描述下flask怎么启动http......
  • [Kyana]服务器php+https配置
    00|前排提示本文涉及的apache、nginx和caddy三者并无优劣之分,各有擅场,在个人博客使用时选取自己喜欢的即可。如无特殊提示,本文默认环境为UbuntuServer20.04(Linux5.4)......