GitHub地址
https://github.com/goharbor/harbor-helm
- 创建nfs存储的目录
cd /root/data
mkdir harbor
cd harbor
mkdir registry
mkdir chartmuseum
mkdir jobservice
mkdir database
mkdir redis
mkdir trivy
-
将共享目录以读写权限暴露给192.168.48.0/24网段中的所有主机
vim /etc/exports
-
重启nfs服务
systemctl restart nfs
-
更改目录权限,给harbor下所有目录下授权
cd /root/data
chmod 777 -R harbor
- 创建PV
#harbor.yaml
#registry-PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: harbor-registry
labels:
app: harbor-registry
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "harbor"
mountOptions:
- hard
nfs:
path: /root/data/harbor/registry
server: 192.168.48.200
---
#harbor-chartmuseum-pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: harbor-chartmuseum
labels:
app: harbor-chartmuseum
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "harbor"
mountOptions:
- hard
nfs:
path: /root/data/harbor/chartmuseum
server: 192.168.48.200
---
#harbor-jobservice-pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: harbor-jobservice
labels:
app: harbor-jobservice
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "harbor"
mountOptions:
- hard
nfs:
path: /root/data/harbor/jobservice
server: 192.168.48.200
---
#harbor-database-pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: harbor-database
labels:
app: harbor-database
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "harbor"
mountOptions:
- hard
nfs:
path: /root/data/harbor/database
server: 192.168.48.200
---
#harbor-redis-pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: harbor-redis
labels:
app: harbor-redis
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "harbor"
mountOptions:
- hard
nfs:
path: /root/data/harbor/redis
server: 192.168.48.200
---
#harbor-trivy-pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: harbor-trivy
labels:
app: harbor-trivy
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "harbor"
mountOptions:
- hard
nfs:
path: /root/data/harbor/trivy
server: 192.168.48.200
- 创建PVC
# harbor-pvc.yaml
#harbor-registry-pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: harbor-registry
spec:
accessModes:
- ReadWriteOnce
storageClassName: "harbor"
resources:
requests:
storage: 10Gi
selector:
matchLabels:
app: harbor-registry
---
#harbor-chartmuseum-pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: harbor-chartmuseum
spec:
accessModes:
- ReadWriteOnce
storageClassName: "harbor"
resources:
requests:
storage: 2Gi
selector:
matchLabels:
app: harbor-chartmuseum
---
#harbor-jobservice-pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: harbor-jobservice
spec:
accessModes:
- ReadWriteOnce
storageClassName: "harbor"
resources:
requests:
storage: 2Gi
selector:
matchLabels:
app: harbor-jobservice
---
#harbor-database-pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: harbor-database
spec:
accessModes:
- ReadWriteOnce
storageClassName: "harbor"
resources:
requests:
storage: 2Gi
selector:
matchLabels:
app: harbor-database
---
#harbor-redis-pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: harbor-redis
spec:
accessModes:
- ReadWriteOnce
storageClassName: "harbor"
resources:
requests:
storage: 2Gi
selector:
matchLabels:
app: harbor-redis
---
#harbor-trivy-pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: harbor-trivy
spec:
accessModes:
- ReadWriteOnce
storageClassName: "harbor"
resources:
requests:
storage: 2Gi
selector:
matchLabels:
app: harbor-trivy
-
创建pv资源
-
创建一个harbor命名空间
kubectl create namespace harbor
-
创建pvc资源,并指定命名空间 harbor
kubectl apply -f harbor-pvc.yaml -n harbor
-
查看pv,pvc是否绑定
-
从github下载或者使用helm pull 把包下载下载
-
修改values.yaml
# expose.type 默认的ingress,简单起见 修改为nodeport
# externalURL: http://192.168.48.200:30002
# 修改persistentvolume中的jobservice为
jobservice:
existingClaim: "harbor-jobservice"
storageClass: "harbor"
subPath: ""
accessMode: ReadWriteOnce
size: 5Gi
- 使用helm 安装
#harbor-helm-master 文件夹名字
helm install harbor harbor/harbor -f /root/harbor-helm-master/values.yaml -n harbor