第九章 九析帶你輕鬆完爆 helm nexus

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

第九章:九析帶你輕鬆完爆 helm nexus

目錄

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

clipboard7.png

        若是有以下報錯信息,說明您當前的 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

spacer.gifclipboard81.png

        發現 pod 處於 pending 狀態,檢查緣由:

kubectl describe pod -n sonatype-nexus sonatype-nexus-sonatype-nexus-76567c5749-5qnqrspacer.gifclipboard82.png

        發現 pvc 處於未綁定狀態,進一步確認以下:

kubectl get pvc -n sonatype-nexus

spacer.gifclipboard83.png


9 建立 pv

        查看 pvc 的配置信息:

kubectl get pvc -n sonatype-nexus -o yaml

spacer.gifclipboard9.png

        根據 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

clipboard92.pngspacer.gif        發現 pvc 和 pv 沒羞沒臊地天然牽手了(Bound)。是否是以爲合二爲一的感受很爽,別裝正經,你懂我說的意思。


10 訪問 nexus

        查看 nexus 服務對外提供的端口,注意不是 8081。

kubectl get svc -n sonatype-nexus

spacer.gifclipboard101.png

        打開瀏覽器訪問 http://10.110.101.100:30126,發現 helm 已經輕鬆完爆了 nexus。clipboard102.png

相關文章
相關標籤/搜索