containerd对接harbor 解决HTTPS,SSL问题-全部解决!!!!

##harbo部署使用helm自己百度很简单。

#坑1:helm中有个secret 选择是auto 即自动生成,但这个证书不被操作系统信任!!!
即会爆 x509!!

#坑2:containerd的配置文件修改!!!跳过证书认证是无效的!!!!

解决步骤:

1.确保你的hosts或DNS能解析到你的harbor域名!!!

2.修改containerd配置文件:

      [plugins."io.containerd.grpc.v1.cri".registry.configs]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.k8s.local".tls]

          ca_file = "/etc/containerd/ca/ca.crt" #自己用openssl生成ca.crt,是CA机构的证书

          cert_file = "/etc/containerd/ca/harbor.k8s.local.crt" #自己用openssl生成的harbor.crt

          key_file = "/etc/containerd/ca/harbor.com.key" #自己用openssl生成的harbor.私钥文件
     ##必须配置,注意一个是CA机构的证书,是harbor服务器自己的证书和私钥不要搞混了!!!!这里配置跳过证书检查没有用!!!!

   ##不懂怎么openssl生成,百度!!!需要一个ca机构的证书和harbor的证书!!!!

   ##配置完重启containerd服务!!!必须 systemctl daemon-reload !!!

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.k8s.local".auth]

          username = "admin"

          password = "Harbor12345"

      [plugins."io.containerd.grpc.v1.cri".registry.headers]

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]

          endpoint = ["https://mnt026bf.mirror.aliyuncs.com"]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]

          endpoint = ["https://registry.aliyuncs.com/k8sxio"]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.k8s.local"]

          endpoint = ["https://harbor.k8s.local"]

3.请你使用openssl生成证书替换掉harbor部署时自己生成的证书!!!!

不懂k8s通过secret怎么生成tls证书,百度!!!

默认harbor生成的这个secrete为 harbor-ingress 可以看到有个属性值为  k8s/tls!!!

替换就是名字改一样即可!!!先删后改!!

4.最重要的!!!!配置自己操作系统对自己签名openssl证书的信任!!!!!!!

centos:

cp 你的harbor.crt /etc/pki/ca-trust/source/anchors/yourdomain.com.crt

cp 你的ca.crt /etc/pki/ca-trust/source/anchors/yourdomain.com.crt

update-ca-trust

5. 给一个测试pod.demo

apiVersion: v1

kind: Pod

metadata:

  name: harbor-registry-test

  namespace: jenkins

spec:

  containers:

  - name: test

    image: harbor.k8s.local/demo/nginx:v1.0.0

  imagePullSecrets:

  - name: harbor1

  nodeName: k8s-node04

##注意这个secret是你拿去harbor的登录密码!!

加nodeName是因为我只在node04上做了如上操作,并用master成功拉取并runing.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容