使用helm安裝jenkin和gitlab


一、使用服務介紹


存儲: 阿里雲NAS

k8s網絡插件: calico

 k8s版本: 1.15.2

二、helm安裝

https://www.cnblogs.com/zhangb8042/p/10205551.html

 

三、安裝gitlab(名字命名為mygitlab)

1、下載gitlab的helm的配置清單

helm  fetch stable/gitlab-ce
tar xf gitlab-ce-0.2.2.tgz 
cd gitlab-ce

 

2、修改values.yaml配置清單中的存儲內容(不修改存儲、提前創建好pv也行,node節點記得下載nfs-utils)

查看與修改values.yaml配置清單中的pvc內容,創建相應的NAS的pv,並修改資源清單中的pvc配置,改成掛載nas創建的pv,(redis和postgresql中的配置清單也要改)

修改例子:

 

persistence:
  gitlabEtc:
    enabled: true
    #size: 1Gi
    # storageClass:
    accessMode: ReadWriteMany
    resources:
      requests:
        storage: 1Gi
#例子2、postgresql
persistence:
  enabled: true
  # storageClass:
  accessMode: ReadWriteOnce
  resources:
      requests:
        storage: 10Gi
  #size: 8Gi
  subPath: "postgresql-db"

 

 

3、創建對應的pv

創建PV的模板

 

apiVersion: v1
kind: PersistentVolume
metadata:
   name: nas
spec:
   capacity:
     storage: 8Gi
   accessModes:
     - ReadWriteMany
   persistentVolumeReclaimPolicy: Retain
   nfs:
     path: /
     server: 055f84ad83-ixxxx.cn-hangzhou.nas.aliyuncs.com 

 

 

4、helm指定資源清單安裝

helm  install stable/gitlab-ce --name mygitlab -f values.yaml   -f charts/postgresql/values.yaml   -f charts/redis/values.yaml 

 

5、查看PV、PVC

[root@k8s-m gitlab-ce]# kubectl get pv
NAME                      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                             STORAGECLASS   REASON   AGE
mygitlab-gitlab-ce-data   10Gi       RWX            Retain           Bound    default/mygitlab-gitlab-ce-data                           32s
mygitlab-gitlab-ce-etc    1Gi        RWX            Retain           Bound    default/mygitlab-gitlab-ce-etc                            32s
mygitlab-postgresql       10Gi       RWO            Retain           Bound    default/mygitlab-postgresql                               32s
mygitlab-redis            10Gi       RWO            Retain           Bound    default/mygitlab-redis                                    32s
[root@k8s-m gitlab-ce]# kubectl get pvc 
NAME                      STATUS   VOLUME                    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mygitlab-gitlab-ce-data   Bound    mygitlab-gitlab-ce-data   10Gi       RWX                           15s
mygitlab-gitlab-ce-etc    Bound    mygitlab-gitlab-ce-etc    1Gi        RWX                           15s
mygitlab-postgresql       Bound    mygitlab-postgresql       10Gi       RWO                           15s
mygitlab-redis            Bound    mygitlab-redis            10Gi       RWO                           15s

 

6、設訪問地址

helm upgrade mygitlab --set externalUrl=http://your-domain.com stable/gitlab-ce

 

7、將gitlab的svc改成nodeport(畢竟沒有使用SLB服務)

kubectl  patch svc  mygitlab-gitlab-ce  -p  '{"spec":{"type":"NodePort"}}'

 

8、配置gitlab的ingress

vim my-nginx-deploy
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      name: nginx
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine 
        ports:
        - name: http
          containerPort: 80 
#ingress文件
[root@k8s-m ~]# cat git-ingress.yaml 
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-nginx
spec:
  rules:
  - host: git.test.com
    http:
      paths:
      - backend:
          serviceName: mygitlab-gitlab-ce
          servicePort: 80

9、導入與測試

[root@k8s-m ~]# kubectl get ingress
NAME            HOSTS          ADDRESS   PORTS   AGE
ingress-nginx   git.test.com             80      3m18s

 

 

四、helm安裝jenkins

1、下載資源清單文件

helm  fetch stable/jenkins

2、修改資源清單(主要還是查看與修改存儲)

tar xf jenkins-1.5.1.tgz 
cd jenkins/
vim values.yaml
persistence:
  enabled: true
  storageClass:
  annotations: {}
  accessMode: "ReadWriteOnce"
  resources:
      requests:
        storage: 10Gi

 

3、創建jenkins使用的PV

[root@k8s-m jenkins]# cat jenkins-pv.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
   name: myjenkins
spec:
   capacity:
     storage: 10Gi
   accessModes:
     - ReadWriteOnce
   persistentVolumeReclaimPolicy: Retain
   nfs:
     path: /
     server: 055f84ad83-ixxxx.cn-hangzhou.nas.aliyuncs.com 

4、創建jenkins服務

helm  install stable/jenkins  --name myjenkins  -f values.yaml 

 

5、查看

[root@k8s-m jenkins]# kubectl get pvc  myjenkins    
NAME        STATUS   VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
myjenkins   Bound    myjenkins   10Gi       RWO                           21s
[root@k8s-m jenkins]# kubectl get deploy  myjenkins    
NAME        READY   UP-TO-DATE   AVAILABLE   AGE
myjenkins   1/1     1            1           2m8s
##查看myjenkins的svc(使用外網ip的31638端口能直接訪問)
[root@k8s-m jenkins]# kubectl get  svc  myjenkins   
NAME        TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
myjenkins   LoadBalancer   10.97.245.156   <pending>     8080:31638/TCP   6m42s

6、查看jenkins的密碼等

helm  status myjenkins

 

 

 

五、配置gitlab與jenkins的連接(連接的url使用名稱空間,不要用ip)

 1、配置地址

https://www.cnblogs.com/zhangb8042/p/9278819.html

2、差異截圖

 

 

 

3、最后結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM