本系列文章:
第一章:helm 一分钟轻松完爆
第二章:helm 轻松完爆公共仓库
第三章:helm 轻松完爆私有仓库
第四章:helm 轻松完爆 chart
目录
1 前言
2 添加 harbor 仓库
3 下载 harbor
4 解压 harbor
5 编辑 values.yaml
6 编写 pv
7 创建 nginx-ingress
8 创建 nfs
9 创建 harbor 命名空间
10 安装 harbor
11 创建 pv
12 检查 pvc
13 查看 nginx-ingress 服务端口
14 编辑 dns
15 访问 harbor
16 注意
1 前言
本文采用 helm v3.0.0;k8s v1.16.3。
2 添加 harbor 仓库
helm repo add harbor https://helm.goharbor.io
3 下载 harbor
helm pull harbor/harbor
4 解压 harbor
tar -zxvf harbor-1.2.3.tgz
5 编辑 values.yaml
编辑如下:
expose:
tls:
commonName: "jiuxi.harbor.org"
ingress:
hosts:
core: jiuxi.harbor.org
externalURL: https://jiuxi.harbor.org
harborAdminPassword: "hellojiuxi"
6 编写 pv
本文不介绍 pv 和 pvc,相信你敢玩 helm,应该不算新手。如果你真不知道 pv 和 pvc 也没有关系;可以把它们理解为情侣关系,即 pvc 一定要 c 了 pv 才愿意干活,当然不能白 c,要给“钱”, pv 收到钱会存到某个地方,比如鞋盒。理解了没?不用谢。
查看 values.yaml 文件,发现 pvc 一共有 5 个。并且有 2 种规格:A杯(1Gi)、 C杯(5Gi)
新建资源文件 pv-harbor-1g.yaml。不要执行。切记。
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-harbor-1g-1
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.110.101.106
path: /data/nfs/harbor
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-harbor-1g-2
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.110.101.106
path: /data/nfs/harbor
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-harbor-1g-3
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.110.101.106
path: /data/nfs/harbor
新建资源文件 pv-harbor-5g.yaml。不要执行。切记。
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-harbor-5g-1
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.110.101.106
path: /data/nfs/harbor
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-harbor-5g-2
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.110.101.106
path: /data/nfs/harbor
7 创建 nginx-ingress
创建 nginx-ingress 请参考《第七章》。不用紧张,分分钟轻松完爆。
8 创建 nfs
创建 nfs 请参考《第八章》。不用紧张,容易到让你尖叫。
9 创建 harbor 命名空间
kubectl create ns harbor
10 安装 harbor
## 第一个 harbor 是 release;第二个是命名空间;第三个是解压后根目录
helm install harbor -n harbor harbor
11 创建 pv
harbor 安装成功之后,pvc 会处于 pending 状态。因为并没有创建实际的 pv。
注意创建顺序,规格要按照从小到大。为什么?你想一想,死劲想一想。
创建小规格 pv:
kubectl apply -f pv-harbor-1g.yaml
小规格 pv 创建结束后,注意查看一下创建状态,等到状态都为 Bound 后,再创建大规格 pv:
kubectl apply -f pv-harbor-5g.yaml
12 检查 pvc
kubectl get pvc -n harbor
13 查看 nginx-ingress 服务端口
注意端口不是 443。切记。本人是 32734。各人根据自己实际情况。
kubectl get svc -n kube-system
14 编辑 dns
创建 ingress 时使用了域名 jiuxi.harbor.org。所以在浏览器所在主机上编辑 hosts 文件。
15 访问 harbor
打开浏览器,输入 https://jiuxi.harbor.org:32734。
用户名 / 密码: admin / hellojiuxi。
16 注意
有时会有正确输入用户名和密码却无法登录的情况,原因在于 pod 并没有全部运行成功,必须确保所有 pod 都运行成功了再强势登录。