k8s中部署jira-8.1.0
·
Kubernetes部署JIRA-8.1.0
1. 准备
| k8s-master | 192.168.0.136 |
| k8s-node01 | 192.168.0.57 |
| k8s-node02 | 192.168.0.227 |
| nfs-server | 192.168.0.57 |
| mysql | 192.168.0.227 |
2. 部署单机MySQL
- 192.168.0.227 主机执行
编写安装脚本
[root@ecs-ebd0-0003 ~]# vim mysql.sh
#!/bin/bash
yum install libaio -y
mkdir -p /server/package /application /data/mysql/data /data/binlog/mysql-bin
cd /server/package && wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mv /server/package/mysql-5.7.28-linux-glibc2.12-x86_64 /application/mysql
yum remove `rpm -qa | grep mariadb` -y
useradd -s /sbin/nologin mysql
echo -e "export PATH=/application/mysql/bin:$PATH" >> /etc/profile
chown -R mysql.mysql /application && chown -R mysql.mysql /data
/application/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
log_error=/data/mysql/data/mysql.err
log_bin=/data/binlog/mysql-bin
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
cat >/etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
EOF
systemctl start mysqld
systemctl enable mysqld
执行脚本
[root@ecs-ebd0-0003 ~]# sh mysql.sh
[root@ecs-ebd0-0003 ~]# sourch /etc/profile
创建jira数据库、用户以及授权
[root@ecs-ebd0-0003 ~]# mysql -uroot -p -e "create database jira default charset utf8mb4;" -e "create user 'jira'@'%' identified by 'jira@123';" -e "grant all on jira.* to 'jira'@'%';"
3.部署JIRA
3.1准备资源
-
Kubernetes Cluster
-
namespace
[root@ecs-ebd0-0001 ~]# kubectl create ns test -
StorageClass
[root@ecs-ebd0-0001 ~]# kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE managed-nfs-storage fuseim.pri/ifs Delete Immediate false 53h
-
-
镜像
已准备镜像包:jira-8.1.0.tar.gz
镜像为 cptactionhank/atlassian-jira-software:8.1.0
(若有harbor,则可将镜像打包后上传至私有镜像仓库)# 将镜像包上传并还原镜像 [root@ecs-ebd0-0001 ~]# docker load -i jira-8.1.0.tar.gz -
k8s 资源清单
- 注意namespace的修改,本次以test为例
[root@ecs-ebd0-0001 ~]# vim jira.yaml apiVersion: v1 kind: Service metadata: labels: app: jira name: jira namespace: test spec: ports: - port: 8080 targetPort: 8080 selector: app: jira --- apiVersion: v1 kind: Service metadata: name: jira-headless namespace: test labels: app: jira spec: ports: - port: 8080 name: jira-server clusterIP: None selector: app: jira --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: jira name: jira namespace: test spec: replicas: 1 selector: matchLabels: app: jira serviceName: jira-headless template: metadata: labels: app: jira name: jira spec: nodeSelector: app: jira containers: - name: jira image: cptactionhank/atlassian-jira-software:8.1.0 resources: requests: memory: "2Gi" cpu: "2000m" limits: memory: "4Gi" cpu: "4000m" volumeMounts: - name: jira-home mountPath: /var/atlassian/jira volumeClaimTemplates: - metadata: name: jira-home spec: accessModes: [ "ReadWriteMany" ] storageClassName: managed-nfs-storage resources: requests: storage: 10Gi --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: jira namespace: test spec: entryPoints: - web routes: - match: Host(`jira.test.com`) && PathPrefix(`/`) kind: Rule services: - name: jira port: 8080
3.2创建 k8s 资源
[root@ecs-ebd0-0001 ~]# kubectl apply -f jira.yaml
service/jira created
service/jira-headless created
statefulset.apps/jira created
ingressroute.traefik.containo.us/jira configured
3.3Web 登陆及基本信息配置
- 由于本次实验未做公网DNS解析,所以需要windows本地配置hosts解析才能进行域名访问
浏览器访问
http://jira.test.com

配置数据库连接


- 若想破解实现长期使用,可按照后续发布的破解文章进行操作,然后再继续执行以下步骤
- 破解万不可进行商用,建议自己测试使用
配置 license


点击 “yes” ,会自动将密钥信息添加至密钥框中


设置管理员账户及密码


选择后续登陆JIRA默认使用的语言

选择头像

创建一个新项目




至此,基本信息配置完成
后续会发布如何对JIRA进行破解操作
备注:由于每次启动jira都需要连接一个完全空的数据库,因此一旦pod重启,会导致pod重启失败。因此,不建议在k8s中运行,建议二进制或docker部署
更多推荐
所有评论(0)