Harbor部署及问题解决指南
此问题已经不适用当前版本:
证书问题解决请移至:
containerd 对接harbor仓库,证书问题解决_A ?Charis的博客-CSDN博客
首先,我们需要部署Harbor,可以选择使用Helm来进行部署。有关使用Helm部署Harbor的具体步骤,可以通过搜索引擎查找相关教程
在部署过程中,可能会遇到两个主要的问题:
**问题1:**在Helm中,可以选择让其自动生成一个secret,但这个证书可能无法获得操作系统的信任。可能会出现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机构的证书 cert_file = "/etc/containerd/ca/harbor.k8s.local.crt" # 使用openssl生成的harbor证书 key_file = "/etc/containerd/ca/harbor.com.key" # 使用openssl生成的harbor私钥文件 [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"]
需要注意的是,这里的证书和私钥文件必须是由你自己使用openssl生成的。如果你不熟悉如何使用openssl生成证书,可以通过搜索引擎查找相关教程。
完成配置后,需要重启containerd服务。
**步骤3:**使用openssl生成的证书替换掉Harbor部署时自动生成的证书。
如果你不熟悉如何使用Kubernetes的secret生成TLS证书,可以通过搜索引擎查找相关教程。默认的Harbor生成的secret为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
shell:
update-ca-trust
完成以上步骤后,你可以通过以下示例Pod来测试配置是否正确:
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上成功拉取并运行。
希望这篇指南可以帮助你成功部署Harbor并解决可能遇到的问题。如果你还有其他问题,欢迎随时向我提问。
更多推荐
所有评论(0)