在Kubernetes(K8S)集群中使用Harbor作为容器镜像仓库是一种非常常见的做法,它能够帮助我们管理、存储和分发Docker镜像。如果你是一名新手开发者,不知道如何在K8S集群中实现Harbor的部署和配置,别担心,接下来我将会逐步指导你完成这个过程。首先,我们来看看整个流程:

| 步骤 | 操作 |
| ----------------- | ------------------------|
| 步骤1 | 下载Harbor离线包 |
| 步骤2 | 准备Harbor的配置文件 |
| 步骤3 | 部署Harbor到K8S集群 |
| 步骤4 | 配置Harbor访问参数 |

接下来让我们一步步来实现吧。

步骤1: 下载Harbor离线包
首先需要从Harbor的官方网站下载离线包,下载地址为 https://github.com/goharbor/harbor/releases 。选择适合你的版本进行下载。

步骤2: 准备Harbor的配置文件
在下载好的Harbor离线包中,找到名为`harbor.yml`的配置文件,修改其中的内容以适应你的实际情况。比如修改`hostname`、`harbor_admin_password`等参数。

步骤3: 部署Harbor到K8S集群
使用以下YAML文件将Harbor部署到K8S集群中:

```yaml
apiVersion: v1
kind: Namespace
metadata:
name: harbor

---

apiVersion: v1
kind: Secret
metadata:
name: harbor-admin-secret
namespace: harbor
stringData:
secret: yourharboradminpassword

---

apiVersion: v1
kind: ConfigMap
metadata:
name: harbor-config
namespace: harbor
data:
harbor.yml: |
# 填入你修改后的harbor.yml配置文件内容

---

apiVersion: apps/v1
kind: Deployment
metadata:
name: harbor
namespace: harbor
spec:
replicas: 1
selector:
matchLabels:
app: harbor
template:
metadata:
labels:
app: harbor
spec:
containers:
- name: harbor
image: goharbor/harbor-core:#{HARBOR_VERSION}
volumeMounts:
- mountPath: /etc/harbor
name: harbor-config
volumes:
- name: harbor-config
configMap:
name: harbor-config

---

apiVersion: v1
kind: Service
metadata:
name: harbor
namespace: harbor
spec:
type: NodePort
selector:
app: harbor
ports:
- port: 80
targetPort: 80
nodePort: 30000
```

将上述文件保存到`harbor-deploy.yaml`中,然后通过`kubectl apply -f harbor-deploy.yaml`命令部署Harbor。

步骤4: 配置Harbor访问参数
现在你可以通过浏览器访问`http://NodeIP:30000`来查看Harbor是否成功部署。在浏览器中登录Harbor,默认的用户名密码为`admin`和`yourharboradminpassword`。接下来你可以上传镜像到Harbor中,并在K8S集群中使用这些镜像。

通过以上步骤,你已经成功地在K8S集群中部署了Harbor作为容器镜像仓库。希望这篇文章对你有所帮助,并能够顺利完成实践。祝你学习顺利!