harbor已经部署完成,如何在k8s上连harbor
时间: 2023-07-18 12:05:40 浏览: 116
在 Kubernetes 上使用 Harbor 时,首先需要将 Harbor 的证书添加到 Kubernetes 的信任列表中,以便 Kubernetes 可以安全地与 Harbor 进行通信。可以通过以下步骤在 Kubernetes 中添加 Harbor 证书:
1. 从 Harbor UI 中获取证书
在 Harbor 网站的“管理员”>“系统设置”>“证书”菜单下,可以看到所有已签署的证书。选择需要使用的证书并点击“下载”按钮,将证书保存到本地。
2. 将证书添加到 Kubernetes 的信任列表中
在 Kubernetes 集群上,找到用于存储信任证书的 secret,一般是 `default-token-xxxxx`,其中 `xxxxx` 是一串随机字符。可以通过以下命令查找 secret:
```
kubectl get secrets
```
然后将证书文件添加到该 secret 中:
```
kubectl create secret generic harbor-cert --from-file=ca.crt=/path/to/harbor.crt --namespace=<namespace>
```
其中,`/path/to/harbor.crt` 是上一步下载的证书文件路径,`<namespace>` 是要使用此证书的 Kubernetes 命名空间。
3. 配置 Kubernetes 中的 Docker 镜像仓库
可以通过在 `~/.docker/config.json` 文件中添加以下内容来配置 Kubernetes 中的 Docker 镜像仓库:
```
{
"auths": {
"<harbor-address>": {
"auth": "<base64-encoded-username-and-password>"
}
}
}
```
其中,`<harbor-address>` 是 Harbor 的地址,`<base64-encoded-username-and-password>` 是使用 base64 编码后的用户名和密码,格式为 `username:password`。
4. 部署应用程序
现在可以在 Kubernetes 上部署应用程序,并将 Docker 镜像推送到 Harbor 中。在部署 YAML 文件中指定使用 Harbor 中的 Docker 镜像时,需要使用前缀 `<harbor-address>/<project-name>/<image-name>`,其中,`<harbor-address>` 是 Harbor 的地址,`<project-name>` 是项目名称,`<image-name>` 是 Docker 镜像名称。例如:
```
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: harbor.example.com/myproject/myimage:latest
ports:
- containerPort: 8080
```
这样就可以在 Kubernetes 中使用 Harbor 了。
阅读全文