kubectl create namespace harbor
helm repo add harbor https://helm.goharbor.io
helm fetch harbor/harbor --untar
helm install harbor-helm harbor/
helm uninstall harbor-helm
helm install harbor-helm harbor/harbor \
--set database.type=external \
--set database.external.host=10.0.0.11 \
--set database.external.username=dbadmin \
--set database.external.password=dbadmin \
--set redis.type=external \
--set redis.external.addr=10.0.0.23:6379 \
--set redis.external.password=foobared \
--set harborAdminPassword=Harbor12345 \
--set externalURL=http://core.harbor.domain \
--set expose.tls.enabled=false \
--set expose.type=loadBalancer \
--set ipFamily.ipv6.enabled=false
kubectl port-forward pods/harbor-helm-nginx-cc76b85fb-mzj7z 8080:8080 -n harbor6
printenv |grep PASSWORD
helm upgrade --namespace harbor5 harbor-helm harbor/harbor -f ~/harbor/values.yaml
helm upgrade --namespace harbor5 harbor-helm harbor/harbor \
--set database.type=external \
--set database.external.host=10.0.0.11 \
--set database.external.username=dbadmin \
--set database.external.password=dbadmin \
--set redis.type=external \
--set redis.external.addr=10.0.0.23:6379 \
--set redis.external.password=foobared \
--set harborAdminPassword=Harbor12345 \
--set externalURL=http://core.harbor.domain \
--set expose.tls.enabled=false \
--set expose.type=loadBalancer \
--set ipFamily.ipv6.enabled=false
helm upgrade --namespace harbor6 harbor-helm harbor/harbor \
--set database.type=external \
--set database.external.host=10.0.0.11 \
--set database.external.username=dbadmin \
--set database.external.password=dbadmin \
--set redis.type=external \
--set redis.external.addr=10.0.0.23:6379 \
--set redis.external.password=foobared \
--set harborAdminPassword=Harbor12345 \
--set externalURL=http://core.harbor.domain.harbor6:8080 \
--set expose.tls.enabled=false \
--set expose.type=loadBalancer \
--set ipFamily.ipv6.enabled=false
sudo ktctl connect -n harbor6
helm upgrade --namespace harbor6 harbor-helm harbor/harbor \
--set database.type=external \
--set database.external.host=10.0.0.11 \
--set database.external.username=dbadmin \
--set database.external.password=dbadmin \
--set redis.type=external \
--set redis.external.addr=10.0.0.23:6379 \
--set redis.external.password=foobared \
--set harborAdminPassword=Harbor12345 \
--set externalURL=http://harbor-helm-core.harbor6 \
--set expose.tls.enabled=false \
--set expose.type=loadBalancer \
--set ipFamily.ipv6.enabled=false
curl http://harbor-helm-core.harbor6/v2/
sudo ktctl connect -n harbor6
helm upgrade --namespace harbor6 harbor-helm harbor/harbor \
--set database.type=external \
--set database.external.host=10.0.0.11 \
--set database.external.username=dbadmin \
--set database.external.password=dbadmin \
--set redis.type=external \
--set redis.external.addr=10.0.0.23:6379 \
--set redis.external.password=foobared \
--set harborAdminPassword=Harbor12345 \
--set externalURL=http://harbor.harbor6 \
--set expose.tls.enabled=false \
--set expose.type=loadBalancer \
--set ipFamily.ipv6.enabled=false
curl http://harbor.harbor6/v2/
kubectl expose deployment harbor-helm-core --port=80 --target-port=8080
sudo mkdir -p /etc/harbor/ssl/
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/harbor/ssl/harbor.key -out /etc/harbor/ssl/harbor.crt
helm upgrade --namespace harbor6 harbor-helm harbor/harbor \
--set database.type=external \
--set database.external.host=10.0.0.11 \
--set database.external.username=dbadmin \
--set database.external.password=dbadmin \
--set redis.type=external \
--set redis.external.addr=10.0.0.23:6379 \
--set redis.external.password=foobared \
--set harborAdminPassword=Harbor12345 \
--set externalURL=core.harbor.domain \
--set expose.tls.auto.commonName=letsencrypt-harbor \
--set expose.ingress.hosts.core=core.harbor.domain \
--set expose.ingress.annotations.kubernetes.io/tls-acme=true \
--set expose.ingress.annotations.certmanager.k8s.io/issuer=letsencrypt-harbor
kubectl get ing -n harbor6 -o yaml | grep -A 3 tls
kubectl get secret -n harbor6 harbor-ingress -o yaml
- Create an initialization container, give trival permissions to adjust folder permissions
参考链接

initContainers:
- name: trivy-permission-fix
securityContext:
runAsUser: 0
image: busybox
command: ['sh', '-c', 'chown -R 10000:1000/home/scanner']
volumeMounts:
- name: data
mountPath: /home/scanner
demo
docker tag SOURCE_IMAGE[:TAG] core.harbor.domain/mall/REPOSITORY[: TAG]
docker Push core.harbor.domain/mall/REPOSITORY[:TAG]
docker login -u admin -admin p Harbor12345. arbor.domain:8080
docker tag app-service:latest core.harbor.domain:8080/mall/app-service:latest
docker push core.harbor.domain:8080/mall/app-service:latest
127.0.0.1 harbor. arbor6
kubectl port-forward pods/harbor-helm-nginx-cc76b85fb-mzj7z 80-n harbor6
docker login -u admin -p Harbor12345 harbor. arbor6
docker null harbor.harbor6/mall/app-service:latest
kubectl port-forward pods/harbor-helm-nginx-cc76b85fb-mzj7z 80:8080 -n harbor6
127.0. 1 harbor.harbor6
crictl pull harbor.harbor6/mall/app-service:latest
- Access to NodePorts Service Type
- Configure
in kuboard

10.0.1.1139 harbor.harbor6
10.0.1.177 harbor.arbor6
- Mirror pull timeout problem
wget https://github.com/goharbor/harbor/releases/download/v2.9.1/harbor-offline-installer-v2.9.1.tgz
tar xvf harbor-offline-installer-v2.9.1.tgz
cd harbor
nerdctl -n k8s.io load -i harbor.v2.9.1.tar.gz