作者:申红磊,青云科技容器解决方案架构师,开源项目爱好者,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 发布!

KubeSphere 使用 HTTPS 协议集成 Harbor 镜像仓库指南的更多相关文章

  1. harbor镜像仓库-02-https访问配置

    harbor镜像仓库-02-https访问配置 harbordockerhttps harbor搭建部署参考上一章节 harbor镜像仓库-01-搭建部署 Harbor默认使用http,给harbor ...

  2. harbor镜像仓库-01-搭建部署

    harbor镜像仓库-01-搭建部署 dockerregistryharbor安装部署docker-compose harbor的https配置参考另一章节harbor镜像仓库-02-https访问配 ...

  3. Harbor镜像仓库

    Harbor镜像仓库 作者 刘畅 时间 2020-7-11 微信 目录 1.下载离线安装包 1 2.安装docker 1 3.安装docker-compose 2 4.自签TLS证书 2 4.1.创建 ...

  4. harbor镜像仓库-https访问配置

    1. 证书的生成 在测试或开发环境中,您可以选择使用自签名证书,而不是来自受信任的第三方CA的证书.以下内容将向您展示如何创建自己的CA,并使用您的CA签署服务器证书和客户端证书.   1.1 生成c ...

  5. 企业级 Harbor 镜像仓库

    Harbor是由VMWare公司开源的容器镜像仓库.事实上,Harbor是在Docker Registry上进行了相应 的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基 ...

  6. Monocular 集成harbor helm 仓库

      harbor 已经支持了helm 仓库(使用chartmuseum),Monocular 是一个不错的helm 仓库可视化工具 测试Monocular集成harbor 私服功能 使用docker- ...

  7. CentOS部署Harbor镜像仓库

    关于Harbor Harbor是用于存储和分发Docker镜像的镜像仓库服务,相比Docker Registry,Harbor在安全.标识.管理等方面做了增强,更适合企业使用: 官方网站:https: ...

  8. docker登录没有配置https的harbor镜像仓库

    已经搭建harbor 仓库 ,域名  172.16.1.99 出现问题: 客户端尝试登录 仓库 [root@localhost docker]# docker login 172.16.1.99:80 ...

  9. 私有化轻量级持续集成部署方案--06-私有镜像仓库-Harbor

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 针对私有镜像仓库的问题,Docker 官方提供了搭建仓库服务的镜像服务:registry,使用此镜像就可以部署私有仓 ...

  10. Docker镜像仓库Harbor搭建及配置

    一.harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distribut ...

随机推荐

  1. 机器人的运动控制是否可以引入生物学信息,生物学信息是否可以辅助机器人的智能控制算法的训练:《Robotic prosthetic ankles improve 'natural' movement, stability》

    相关内容: Robotic prosthetic ankles improve 'natural' movement, stability 看了上面的论文的介绍(内容没看到,不是open access ...

  2. Ubuntu18.04 server 双网卡,一个设置为静态IP, 一个设置为动态IP

    操作目的如题: 修改网络配置文件: sudo vim /etc/netplan/50-cloud-init.yaml 修改内容如下: # This file is generated from inf ...

  3. 【产品兼容认证】WhaleStudio 成功兼容TiDB数据库软件

    平凯星辰和白鲸开源宣布成功完成产品兼容认证 北京,2023年12月27日 - 平凯星辰(北京)科技有限公司(以下简称平凯星辰)旗下的 TiDB 产品与白鲸开源的 WhaleStudio 已成功完成产品 ...

  4. CH03_运算符

    CH03_运算符 算术运算符 作用:用于处理四则运算 示例: #include <iostream> using namespace std; int main() { int a = 1 ...

  5. 使用 updateAppConfig 更新 Nuxt 应用配置

    title: 使用 updateAppConfig 更新 Nuxt 应用配置 date: 2024/8/27 updated: 2024/8/27 author: cmdragon excerpt: ...

  6. MySQL服务端innodb_buffer_pool_size配置参数

    innodb_buffer_pool_size是什么? innodb_buffer_pool是 InnoDB 缓冲池,是一个内存区域保存缓存的 InnoDB 数据为表.索引和其他辅助缓冲区.innod ...

  7. vue+xlsx实现表格的导入导出

    前言 前端在开发过程中若是管理系统之类的业务系统,则大多都会涉及到表格的处理,其中最为常见的就是表格的导入导出.有很多办法都可以实现,其中最简单的还是使用插件xlsx. 实现目标 1.对表格数据进行增 ...

  8. Redisson 源码分析及实际应用场景之实现延迟队列

    redis 参考目录: 生产级Redis 高并发分布式锁实战1:高并发分布式锁如何实现 https://www.cnblogs.com/yizhiamumu/p/16556153.html 生产级Re ...

  9. OpenAI注册-临时手机号/邮箱

    OpenAI 在注册ChatGPT时,发生了一个错误,使用邮箱进行注册后,在注册界面会提示"Not available OpenAI's services are not available ...

  10. THREE.JS中 CubeTextureLoader 使用避坑

    最近在跟着教程学THREE.JS,毕竟在现在的前端开发市场上,THREE.JS太火爆了. 今天学到"纹理"这一块的时候,跟着教程敲代码,发现自己的没有正确显示,百思不得其解,打开控 ...