Helm部署微服务

Helm部署微服务

环境:harbor------》192.168.211.150
Helm ------》192.168.211.131
mysql ------》192.168.211.132
注意:容器可以出公网,不需要把数据库部署在K8S内部

# 一份比较简单的helm模板在百度网盘中,有需要自提取,后续一些新的功能会增加到网盘中。
百度网盘链接:https://pan.baidu.com/s/1eyr6M0X29QGl0fMkioUjxg?pwd=dAAf 
提取码:dAAf

1、使用maven构建镜像

注意:这一步我省略了,因为开发在打包jar包时已经帮我完成构建了,如果不懂用maven打包建议百度。

2、创建镜像,上传镜像

[root@k8s-master1 xxl]# vim Dockerfile
# 这是项目作者写的Docker,拿过来用就可以了
FROM openjdk:8-jre-slim
MAINTAINER xuxueli
ENV PARAMS=""
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD ./xxl-job-admin-2.4.0-SNAPSHOT.jar ./
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /xxl-job-admin-2.4.0-SNAPSHOT.jar $PARAMS"]

# 查找到修改的文件,建议先拷贝一份jar包到其他目录
[root@k8s-master1 test]# jar -tvf xxl-job-admin-2.4.0-SNAPSHOT.jar | grep application.properties

# 将目录解压到当前
[root@k8s-master1 test]# jar -xvf xxl-job-admin-2.4.0-SNAPSHOT.jar BOOT-INF/classes/application.properties

# 修改jar中数据库地址,更改下面三个地方 (application.properties是连接数据库的配置)
[root@k8s-master1 test]# vim BOOT-INF/classes/application.properties
spring.datasource.url=jdbc:mysql://192.168.211.132:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=("数据库用户名")
spring.datasource.password=("数据库密码"# 将修改的新文件替换到jar中
[root@k8s-master1 test]# jar -uvf xxl-job-admin-2.4.0-SNAPSHOT.jar BOOT-INF/classes/application.properties
adding: BOOT-INF/classes/application.properties(in = 2276) (out= 887)(deflated 61%)

# 进入数据库创建xxl_job数据库
create database xxl_job;
use xxl_job;
source /("存放sql文件的目录")/tables_xxl_job.sql;
# 能看到如下的表说明sql文件导入成功
mysql> show tables;			
+--------------------+
| Tables_in_xxl_job  |
+--------------------+
| xxl_job_group      |
| xxl_job_info       |
| xxl_job_lock       |
| xxl_job_log        |
| xxl_job_log_report |
| xxl_job_logglue    |
| xxl_job_registry   |
| xxl_job_user       |
+--------------------+
8 rows in set (0.00 sec)


# 创建镜像
[root@k8s-master1 xxl]# docker build -t java-xxl:v1 .

[root@k8s-master1 xxl]# docker tag java-xxl:v1 仓库地址/项目/java-xxl:v1

[root@k8s-master1 xxl]# docker push 仓库地址/项目/java-xxl:v1

3、创建helm模板

注意:helm模板在上方的百度网盘链接中

[root@k8s-master1 ~]# tree chart_Microservices
chart_Microservices
├── Chart.yaml
├── templates
│   ├── _helpers.tpl
│   ├── NOTES.txt
│   └── template.yaml
└── values.yaml

1 directory, 5 files


注意:如果在添加Harbor作为chart仓库时一直报错x509的错误,需要加上ca-file证书文件。如果还是不行就用openssl重新生成证书!!!!!

# 将helm模板打包
[root@k8s-master1 ~]# helm package chart_Microservices/

# 要在harbor上启用Helm Charts功能,启动后在项目中就可以看到带有Helm Charts功能
[root@localhost harbor]# ./install.sh --with-chartmuseum

# 安装push插件
[root@k8s-master1 ~]# yum install git -y

[root@k8s-master1 ~]# helm repo add --username admin --password Harbor12345 myrepo https://192.168.211.150/chartrepo/library/ --ca-file /etc/docker/certs.d/192.168.211.150/ca.crt

[root@k8s-master1 ~]# helm cm-push chart_Microservices-0.1.0.tgz https://192.168.211.150/chartrepo/library/ --username admin --password Harbor12345 --ca-file /etc/docker/certs.d/192.168.211.150/ca.crt

[root@k8s-master1 ~]# helm repo update		#上传完需要更新仓库,否则安装会报错

[root@k8s-master1 ~]# helm repo list		#查看仓库

[root@k8s-master1 ~]# helm repo remove myrepo	#删除仓库

# 修改helm模板并安装(加上--dry-run为测试,实施部署)
[root@k8s-master1 ~]# helm install xxl-job myrepo/chart_Microservices --version 0.1.0 --set image.repository=192.168.211.150/xxl/xxl-job --set image.tag=v2 --set ingress.enabled=true --set service.enabled=true --set service.port=8080 --set namespace=mc --set replicaCount=1 --set readinessProbe.tcpSocket.port=8080 --set livenessProbe.tcpSocket.port=8080 --set ingress.number=8080 --set ingress.host=www.dada.com

[root@k8s-master1 ~]# kubectl get pod,ingress,svc -n mc
NAME                          READY   STATUS    RESTARTS   AGE
pod/xxl-job-ffd6f5875-zkbcr   1/1     Running   0          26m

NAME                                CLASS   HOSTS          ADDRESS                           PORTS   AGE
ingress.networking.k8s.io/xxl-job   nginx   www.dada.com   192.168.211.131,192.168.211.132   80      26m

NAME              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
service/xxl-job   ClusterIP   10.0.0.163   <none>        8080/TCP   26m

访问xxl-job页面
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值