注意:可在我 百度網盤 直接下載 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。