• Kubernetes


    1,基本概念

    • redmine集成openLDAP 实现统一认证

    2,使用Helm安装redmine

    2.1 下载代码

    git clone https://github.com/xiaoqshuo/k8s-cluster.git
    

    2.2 更改values.yaml相关配置,也可以通过--set设置

    redmineUsername:可选,默认为user
    redminePassword:可选
    redmineEmail:name@email.com # 用于项目通知 
    redmineLanguage: en
    smtpHost: smtp.exmail.qq.com
    smtpPort: 25
    smtpUser: name@email.com
    smtpPassword: password
    smtpTls: false  # 默认为True
    service:
      type: ClusterIP
    
    # 邮箱为:腾讯企业邮箱
    # 修改mariadb的storageClass: "gluster-heketi",使用gfs动态存储
    

    2.3 创建pv

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

    2.3.1 NFS(k8s-node01)

    [root@k8s-node01 redmine-helm]# pwd
    /nfs/redmine-helm
    
    [root@k8s-node01 redmine-helm]# more /etc/exports
    /nfs/es/ 192.168.2.0/24(rw,sync,no_subtree_check,no_root_squash)
    /nfs/rmp-cluster/ 192.168.2.0/24(rw,sync,no_subtree_check,no_root_squash)
    /nfs/redis-cluster/ 192.168.2.0/24(rw,sync,no_subtree_check,no_root_squash)
    /nfs/redis-sentinel/ 192.168.2.0/24(rw,sync,no_subtree_check,no_root_squash)
    /nfs/redmine-helm/ 192.168.2.0/24(rw,sync,no_subtree_check,no_root_squash)
    
    [root@k8s-node01 redmine-helm]# exportfs -rv
    exporting 192.168.2.0/24:/nfs/redmine-helm
    exporting 192.168.2.0/24:/nfs/redis-sentinel
    exporting 192.168.2.0/24:/nfs/redis-cluster
    exporting 192.168.2.0/24:/nfs/rmp-cluster
    exporting 192.168.2.0/24:/nfs/es
    

    2.3.2 修改 redmine.pv

    [root@k8s-master01 redmine-helm]# more redmine.pv
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: redmine-data
    spec:
      capacity:
        storage: 4Gi
      accessModes:
        - ReadWriteOnce
      volumeMode: Filesystem
      persistentVolumeReclaimPolicy: Recycle
      storageClassName: "redmine-data"
      nfs:
        # real share directory
        path: /nfs/redmine-helm
        # nfs real ip
        server: 192.168.2.101
    
    [root@k8s-master01 redmine-helm]# kubectl create -f redmine.pv
    persistentvolume/redmine-data created
    

    2.3.3 查看pv

    [root@k8s-master01 redmine-helm]# kubectl get pv | grep redmine-data
    redmine-data                               4Gi        RWO            Recycle          Available                                                                               redmine-data                       2m22s
    

    2.4 安装redmine

    helm install --name redmine .  --debug --namespace public-service
    
    [root@k8s-master01 redmine-helm]# helm install --name redmine .  --debug --namespace public-service
    [debug] Created tunnel using local port: '34106'
    
    [debug] SERVER: "127.0.0.1:34106"
    
    [debug] Original chart version: ""
    [debug] CHART PATH: /opt/redmine-helm
    
    NAME:   redmine
    REVISION: 1
    RELEASED: Tue Dec 18 17:24:21 2018
    CHART: redmine-7.0.0
    USER-SUPPLIED VALUES:
    
    ....
    配置文档
    ....
    
    LAST DEPLOYED: Tue Dec 18 17:24:21 2018
    NAMESPACE: public-service
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/Secret
    NAME             AGE
    redmine-mariadb  2s
    redmine-redmine  2s
    
    ==> v1/ConfigMap
    redmine-mariadb        2s
    redmine-mariadb-tests  2s
    
    ==> v1/PersistentVolumeClaim
    redmine-redmine  2s
    
    ==> v1/Service
    redmine-mariadb  2s
    redmine-redmine  1s
    
    ==> v1beta1/Deployment
    redmine-redmine  1s
    
    ==> v1beta1/StatefulSet
    redmine-mariadb  1s
    
    
    NOTES:
    1. Get the Redmine URL:
    
      echo "Redmine URL: http://127.0.0.1:3000/"
      kubectl port-forward --namespace public-service svc/redmine-redmine 3000:3000
    
    2. Login with the following credentials
    
      echo Username: user
      echo Password: $(kubectl get secret --namespace public-service redmine-redmine -o jsonpath="{.data.redmine-password}" | base64 --decode)
    
    

    2.4.1 查看pods pv pvc

    • pod
    [root@k8s-master01 redmine-helm]# kubectl get pod -n public-service | grep redmine
    redmine-mariadb-0                  1/1     Running   0          16m
    redmine-redmine-579bdb6749-4qjcg   1/1     Running   0          16m
    
    • pv
    [root@k8s-master01 redmine-helm]# kubectl get pv -n public-service | grep redmine
    pvc-b984ec62-02a6-11e9-87ec-000c2925b928   3Gi        RWO            Delete           Bound         public-service/data-redmine-mariadb-0                                     gluster-heketi                       2m59s
    redmine-data                               4Gi        RWO            Recycle          Bound         public-service/redmine-redmine                                            redmine-data                       23m
    
    • pvc
    [root@k8s-master01 redmine-helm]# kubectl get pvc -n public-service | grep redmine
    data-redmine-mariadb-0                                     Bound    pvc-b984ec62-02a6-11e9-87ec-000c2925b928   3Gi        RWO            gluster-heketi                 3m50s
    redmine-redmine                                            Bound    redmine-data                               4Gi        RWO            redmine-data                   3m52s
    

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

    [root@k8s-master01 redmine-helm]# kubectl create -f traefik-redmine.yaml
    ingress.extensions/redmine created
    
    [root@k8s-master01 redmine-helm]# more traefik-redmine.yaml
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: redmine
      namespace: public-service
      annotations:
        kubernetes.io/ingress.class: traefik
    spec:
      rules:
      - host: redmine.k8s.net
        http:
          paths:
          - backend:
              serviceName: redmine-redmine
              servicePort: 3000
    
    [root@k8s-master01 redmine-helm]# kubectl get ingress -n public-service  | grep redmine
    redmine   redmine.k8s.net             80      3m
    

    2.6 查看密码

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

    3, 登录 配置 redmine

    3.1 将 redmine.k8s.net 添加解析至集群

    3.2 登录 redmine

    3.3 语言配置

    3.4 密码修改

    3.5 LDAP配置

    • 主机名及端口

    3.6 用户配置

    • 上述虽然勾选了即时生成用户,但是并未生成,所以需要创建与之对应的用户。注意:我采用的email认证,为了防止重名,如果使用用户名的话登录名属性填写uid。

    3.6.1 创建一个项目:DevItem

    3.6.2 创建dev组

    3.6.3 创建对应用户

    • 注意上述使用的mail认证方式,所以登录名为邮箱,如果采用uid则写cn的名字

    3.6.4 登录测试

    3.7 邮件测试

    4,插件安装

    4.1 获取到redmine的pv地址的path

    [root@k8s-master01 redmine-helm]# kubectl get pv | grep redmine
    pvc-cf51d1c8-02ad-11e9-b0c8-000c2927a0d0   3Gi        RWO            Delete           Bound         public-service/data-redmine-mariadb-0                                     gluster-heketi                       16h
    redmine-data                               4Gi        RWO            Recycle          Bound         public-service/redmine-redmine                                            redmine-data                       17h
    
    [root@k8s-master01 redmine-helm]# 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.101
        Path:      /nfs/redmine-helm
        ReadOnly:  false
    Events:        <none>
    

    4.2 挂载该path至宿主机

    [root@k8s-master01 redmine-helm]# mount -t nfs 192.168.2.101:/nfs/redmine-helm /mnt
    

    4.3 下载压缩包并解压

    [root@k8s-master01 redmine-helm]# cd /mnt/plugins/
    
    [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
    

    测试未成功

    4.4 重启redmine即可,其他插件安装方式相同

    # 删除 redmine release
    [root@k8s-master01 redmine-helm]# helm delete redmine
    release "redmine" deleted
    
    [root@k8s-master01 redmine-helm]# helm del --purge redmine
    release "redmine" deleted
    
    # 重新创建 redmine
    [root@k8s-master01 redmine-helm]# helm install --name redmine .  --debug --namespace public-service
    
  • 相关阅读:
    Java基础6
    多行文本框回车换行设置
    CentOS7系统配置国内yum源和epel源
    System Integrity Protection (SIP) iOS10.15安装软件提示文件损坏问题解决方法
    转载:Spring Boot 不使用默认的 parent,改用自己的项目的 paren
    微软Speech语音合成技术
    反编译工具
    线性链表的代码实现
    不一样的鸡汤,你有房吗?你有车吗?你有房车吗?
    递归,迭代和回调
  • 原文地址:https://www.cnblogs.com/xiaoqshuo/p/10141307.html
Copyright © 2020-2023  润新知