一、使用服務介紹
存儲: 阿里雲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、最后結果

