linux怎么查看本机内存大小
250
2022-10-30
第十二章 九析带你轻松完爆 helm3 harbor
本系列文章:第一章:helm3 一分钟轻松完爆第二章:helm3 轻松完爆公共仓库第三章:helm3 轻松完爆私有仓库第四章:helm3 轻松完爆 chart第五章:helm3 轻松完爆 release第六章:九析带你轻松完爆 helm3 gitlab第七章:九析带你轻松完爆 helm3 nginx-ingress第八章:九析带你轻松完爆 helm3 gitlab nfs第九章:九析带你轻松完爆 helm3 nexus第十章:九析带你轻松完爆 helm3 heapster第十一章:九析带你轻松完爆 helm3 kubernetes-dashboard第十二章:九析带你轻松完爆 helm3 harbor
目录
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 编辑 dns
14 访问 harbor 14.1 浏览器登录
14.2 客户端登录
14.3 客户端上传镜像
15 注意
1 前言
本文采用 helm v3.0.0;k8s v1.16.3。
2 添加 harbor 仓库
helm repo add harbor 下载 harbor
helm pull harbor/harbor
4 解压 harbor
tar -zxvf harbor-1.2.3.tgz
5 编辑 values.yaml
编辑如下:
expose: type: ingress tls: commonName: "jiuxi.harbor.org" ingress: hosts: core: jiuxi.harbor.orgexternalURL: "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: v1kind: PersistentVolumemetadata: name: pv-harbor-1g-1spec: capacity: storage: 1Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain nfs: server: 10.110.101.106 path: /data/nfs/harbor/1g-1---apiVersion: v1kind: PersistentVolumemetadata: name: pv-harbor-1g-2spec: capacity: storage: 1Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain nfs: server: 10.110.101.106 path: /data/nfs/harbor/1g-2---apiVersion: v1kind: PersistentVolumemetadata: name: pv-harbor-1g-3spec: capacity: storage: 1Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain nfs: server: 10.110.101.106 path: /data/nfs/harbor/1g-3
新建资源文件 pv-harbor-5g.yaml。不要执行。切记。
apiVersion: v1kind: PersistentVolumemetadata: name: pv-harbor-5g-1spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain nfs: server: 10.110.101.106 path: /data/nfs/harbor/5g-1---apiVersion: v1kind: PersistentVolumemetadata: name: pv-harbor-5g-2spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain nfs: server: 10.110.101.106 path: /data/nfs/harbor/5g-2
7 创建 nginx-ingress
创建 nginx-ingress 请参考《第七章》。不用紧张,分分钟轻松完爆。在创建 nginx-ingress 过程中,要特别注意 hostNetwork 设置为 true,此参数使 nginx-ingress pod 直接占用宿主机的 80、443 端口。
8 创建 nfs
mkdir /data/nfs/harbor/1g-1mkdir /data/nfs/harbor/1g-2mkdir /data/nfs/harbor/1g-3mkdir /data/nfs/harbor/5g-1mkdir /data/nfs/harbor/5g-2
修改 nfs 目录权限:
chmod 777 /data/nfs/harbor
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 编辑 dns
因为 ingress 创建时使用了域名 jiuxi.harbor.org,所以在浏览器所在主机上编辑 hosts 文件。需注意此 ip 并非 harbor pod 所在宿主机的 ip,而应该是 nginx-ingress-controller pod 所在宿主机的 ip。
14 访问 harbor
14.1 浏览器登录
打开浏览器,输入 / 密码: admin / hellojiuxi。
14.2 客户端登录
使用 docker cli 登录 harbor时,需首先设置免数字证书登录。编辑 docker 配置文件(/etc/docker/daemon.json),添加内容如下:
{ "insecure-registries" : ["jiuxi.harbor.org"]}
编辑完毕后,重启 docker:
systemctl daemon-reloadsystemctl restart docker
14.3 客户端上传镜像
首先必须在 harbor 创建项目:
docker pull busyboxdocker tag busybox jiuxi.harbor.org/stable/busyboxdocker push jiuxi.harbor.org/stable/busybox
14.4 客户端数字证书登录
如果你跟我一样有追求,想通过数字证书的方式进行登录,于是你将 /etc/docker/daemon.json 里面的 insecure-registries 删除,然后 systemctl daemon reload && systemctl restart docker。然后你看到了如下的错误:
x509: certificate signed by unknown authority
记住,首先不要尖叫,其次不要痛苦。你只需要按照如下三步就可以轻松完爆。
第一步:获取数字证书值:
kubectl get secret harbor-harbor-ingress -n harbor -o yaml
第二步:解码数字证书值(因为 secret 中证书信息值是采用 base64 编码过的,所以你在使用前还需要进行解码):
echo 'CA_VALUE' | base64 -d > ca.crt
第三步:在 docker 证书根目录下创建你 ingress 指定域名目录(比如我这里就是 jiuxi.harbor.org),并将上面生成的证书拷贝到此处:
mkdir -p /etc/docker/cert.d/jiuxi.harbor.org && mv ca.crt /etc/docker/cert.d/jiuxi.harbor.org
再次 docker 客户端登录 harbor,发现登录就如放p般轻松和随意,这时你就可以尖叫了。
15 注意
有时会有正确输入用户名和密码却无法登录的情况,原因在于 pod 并没有全部运行成功,必须确保所有 pod 都运行成功了再强势登录。
16 后记
一次意外断电,harbor pod 所在宿主机出现如下错误:
FATAL: data directory "/var/lib/postgresql/data" has group or world accessDETAIL: Permissions should be u=rwx (0700).编辑 harbor-database pod,修改 /va/lib/postgresql/data 的目录权限:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~