kubernetes實戰(十二):k8s使用helm持久化部署redmine集成openLDAP


1、基本概念

  此次安裝的有Jenkins、Gitlab、Redmine,我公司目前使用的是獨立於k8s集群之外單獨部署的Jenkins等服務,此文章會介紹三種服務基於k8s的部署方式,之后集成之前部署的openLDAP實現統一認證。之后將進行簡單持續集成持續部署的演示,最后再結合我公司的項目進行實戰操作,應付出現的各種使用場景。

 

2、使用Helm安裝redmine

[root@k8s-master01 ci]# git clone https://github.com/dotbalo/helm.git
[root@k8s-master01 ci]# cd redmine/redmine/

  更改values.yaml相關配置,也可以通過--set設置

redmineUsername:可選,默認為user
redminePassword:可選
redmineEmail:用於項目通知
smtpHost: smtp.xxx.com
smtpPort: 465
smtpUser: dukuan@xxx.com
smtpPassword: xxx
smtpTls: true
serviceType: ClusterIP
# 修改mariadb的storageClass: "gluster-heketi",使用gfs動態存儲

   注意:redmine的持久化使用的nfs

  創建redmine的pv

[root@k8s-master01 redmine]# kubectl create -f redmine.pv

  安裝redmine

helm install --name redmine .  --debug --namespace public-service

  安裝成功后如下:

NOTES:
1. Get the Redmine URL:

  NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        Watch the status with: 'kubectl get svc --namespace public-service -w redmine-redmine'


  export SERVICE_IP=$(kubectl get svc --namespace public-service redmine-redmine --template "{{index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}")
  echo http://$SERVICE_IP/

2. Login with the following credentials

  echo Username: admin
  echo Password: $(kubectl get secret --namespace public-service redmine-redmine -o jsonpath="{dmine-password}" | base64 --decode)

   查看pods

[root@k8s-master01 redmine]# kubectl get po -n public-service
NAME                               READY     STATUS    RESTARTS   AGE
redmine-mariadb-0                  1/1       Running   0          20m
redmine-redmine-6995ddf776-s5zww   1/1       Running   0          20m

  創建ingress,也可以直接在values.yaml指定

[root@k8s-master01 redmine]# kubectl create -f traefik-redmine.yaml

  訪問redmine

  查看密碼

[root@k8s-master01 redmine]# kubectl get secret --namespace public-service redmine-redmine -o jsonpath={.data.redmine-password} | base64 --decode 
7AOZGCVJOQ

 2.1 redmine配置

  語言配置

  密碼修改

  LDAP配置

   填寫如下

  連接測試

2.2 用戶配置

  上述雖然勾選了即時生成用戶,但是並未生成,所以需要創建與之對應的用戶。注意:我采用的email認證,為了防止重名,如果使用用戶名的話登錄名屬性填寫uid。

  創建一個項目:DevItem

  創建dev組

  創建對應用戶

  注意上述使用的mail認證方式,所以登錄名為郵箱,如果采用uid則寫cn的名字

  加入組和項目

  登錄測試

 

3、郵件測試

  點擊發送測試郵件

 

 

4、插件安裝

  下載地址:http://www.redmineup.com/pages/plugins/agile

  將安裝包解壓並復制到redmine的插件目錄,默認為/home/redmine/data/plugins

  獲取到redmine的pv地址的path

 

[root@k8s-master01 ~]# kubectl get pv | grep redmine
pvc-f81dace8-fc4f-11e8-bf2f-000c298bf023   3Gi        RWO            Delete           Bound    public-service/data-redmine-mariadb-0              gluster-heketi              19h
redmine-data                               4Gi        RWO            Recycle          Bound    public-service/redmine-redmine                     redmine-data                19h
[root@k8s-master01 ~]# kubectl describe pv redmine-data
Name:            redmine-data
Labels:          <none>
Annotations:     pv.kubernetes.io/bound-by-controller: yes
Finalizers:      [kubernetes.io/pv-protection]
StorageClass:    redmine-data
Status:          Bound
Claim:           public-service/redmine-redmine
Reclaim Policy:  Recycle
Access Modes:    RWO
Capacity:        4Gi
Node Affinity:   <none>
Message:         
Source:
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    192.168.2.2
    Path:      /k8s/redmine
    ReadOnly:  false
Events:        <none>

  掛載該path至宿主機

[root@k8s-master01 ~]# mount -t nfs 192.168.2.2:/k8s/redmine /mnt/

  上次壓縮包並解壓

[root@k8s-master01 plugins]# unzip redmine_agile-1_4_7-light.zip
[root@k8s-master01 plugins]# rm -f redmine_agile-1_4_7-light.zip 
[root@k8s-master01 plugins]# pwd
/mnt/plugins

  重啟redmine即可,其他插件安裝方式相同

 

贊助作者:

  


免責聲明!

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



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