注意:可在我 百度网盘 直接下载 helm、minio 以及修改好的 gitlab、nginx-ingress、nexus 资源包nginx
本系列文章:git
第一章:helm 一分钟轻松完爆api
第二章:helm 轻松完爆公共仓库浏览器
第三章:helm 轻松完爆私有仓库app
第四章:helm 轻松完爆 chartide
第五章:helm 轻松完爆 releasegitlab
第六章:九析带你轻松完爆 helm gitlabui
第七章:九析带你轻松完爆 helm nginx-ingressspa
第八章:九析带你轻松完爆 helm gitlab nfs3d
目录
1 前言
2 搜索 nexus
3 下载 nexus
4 解压缩 nexus
5 配置修改
6 建立命名空间
7 安装 nexus
8 状态检查
9 建立 pv
10 访问 nexus
1 前言
本文使用 helm v3.0.0 版本。
2 搜索 nexus
helm search repo sonatype-nexus
3 下载 nexus
下载 stable/sonatype-nexus:
mkdir -p /root/helm/charts && cd /root/helm/charts
helm pull stable/sonatype-nexus
4 解压缩 nexus
tar -zxvf sonatype-nexus-0.1.6.tgz
5 配置修改
编辑 nexus 的 values.yaml 配置文件,修改 service type 为 NodePort:
service:
type: LoadBalancer 改为 NodePort
6 建立命名空间
在 k8s 中为 nexus 创建命名空间。
kubectl create ns sonatype-nexus
7 安装 nexus
cd /root/helm/charts
## 第一个 sonatype-nexus 是 release 名,第二个是命名空间,第三个是目录名
helm install sonatype-nexus -n sonatype-nexus sonatype-nexus
若是有以下报错信息,说明您当前的 k8s 版本比较时尚:
Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"
执行以下语句进行 apiVersion 替换。
grep -irl "extensions/v1beta1" sonatype-nexus/ | grep deployment | xargs sed -i 's#extensions/v1beta1#apps/v1#g'
语句执行效果就是将 templates 目录下的 deployment.yaml 文件的 apiVersion 从 extensions/v1beta1 这样的备胎身份变成 apps/v1 接盘侠身份。
8 状态检查
kubectl get all -n sonatype-nexus
发现 pod 处于 pending 状态,检查缘由:
kubectl describe pod -n sonatype-nexus sonatype-nexus-sonatype-nexus-76567c5749-5qnqr
发现 pvc 处于未绑定状态,进一步确认以下:
kubectl get pvc -n sonatype-nexus
9 建立 pv
查看 pvc 的配置信息:
kubectl get pvc -n sonatype-nexus -o yaml
根据 pvc 声明信息建立 pv 资源文件 pv-nexus.yaml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: sonatype-nexus
spec:
capacity:
storage: 8Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.110.101.106
path: /data/nfs/nexus
本人的 pv 存储用的是 nfs。有关 nfs 的安装和配置请看哥的<<第八章>>内容。nfs 很简单,轻松完爆就是,不要不耐烦。记住哥的一句话:“我听到的我会忘记,我看到的我会记住,我真正操做过我才理解”。哥通常不喜欢大的说教,好比动不动扯什么原理,直接去作就是了,你操做过以后就会明白,理论是屎,操做远比理论简单,学那么多理论、听那么多道理只会让你举步维艰。很差意思,我又放飞自我了。若是你听进去了我说的话,我只能对你说不用谢。
执行 pv 建立语句:
kubectl apply -f pv-nexus.yaml
发现 pvc 和 pv 没羞没臊地天然牵手了(Bound)。是否是以为合二为一的感受很爽,别装正经,你懂我说的意思。
10 访问 nexus
查看 nexus 服务对外提供的端口,注意不是 8081。
kubectl get svc -n sonatype-nexus
打开浏览器访问 http://10.110.101.100:30126,发现 helm 已经轻松完爆了 nexus。