跨境物流火爆,运无界完成数千万元战略融资
06-18
背景:我的基础环境都是kubernetes,参见:云项目。因此,springboot云项目部署在kubernetes集群中。
其实我还是反对使用springboot云架构的。我读过一些文章,例如:我仍然更喜欢使用服务网格:istio。
既然决定了springboot cloud on kubernets,就先这样玩吧……关于打包,Maven可以直接接手。但程序喜欢自己写,所以我只把Dockerfile放在项目中。
它只负责图像级别:image.pngimage.png1。 Kubernetes使用configmap部署springboot项目。
百度搜索了关键词 springboot kubernetes configmap: image.png 比如就是图中的这个,但是感觉不是我想要的,所以就想简单的调整一下我的变量。然后无意中看到:因为只是为了简单的测试,所以不想让他们对文件进行硬编码,其他的流程就省略了。
我刚刚打包并测试了它。 1. 更改使用的参数并参考原始配置文件:image.txt。
pngimage.png 修改:变量名都是自己写的,主要是测试是否能达到效果。当然,参数最好根据实际需要和程序规范一下,${}的格式也是一样的。
image.pngimage.png 提取 8 个参数并使它们可变。2.生成jar包并构建docker镜像。
docker 包没有集成到我的 jenkins 管道中(我不会过多参与程序的库)。生成jar包image.png并将jar包上传到我有docker环境的机器上。
服务器打包成 docker image:cat Dockerfile 代码语言: txt copy FROM openjdk:8-jdk-alpineVOLUME /tmpADD target/game-1.0-SNAPSHOT.jar game-1.0-SNAPSHOT.jarENTRYPOINT ["java","-Djava. security.egd=file:/dev/./urandom","-jar","/game-1.0-SNAPSHOT.jar"]image.png 代码语言:txt copy docker build -t ccr.ccs.tencentyun.com/ xxxx/xxxx:0.2 .docker推送ccr.ccs.tencentyun.com/xxxx/xxxx:0.2image.png3.生成configmap文件 cat spring-boot.yaml 代码语言:txt 复制 apiVersion: v1kind: ConfigMapmetadata: name: spring-configdata : dev-config.json: '{ "redis.database.host": "xxxx", "redis.database .port": "xxxx", "redis.database.password": "xxxx", "mysql.database.url": "jdbc:", "mysql.database.username": " XXXX”,"mysql.database.password": "xxxxx", "cloud.nacos.server-addr": " "cloud.nacos.discovery.server-addr": " }'image.pngapply 部署配置映射文件: 代码语言:txt 副本kubectl apply -f spring-config.yaml -n qadescribe:image.png4。部署 springboot 服务 cat test.yaml 代码语言:txt 复制 apiVersion: apps/v1kind: Deploymentmetadata: name: pvp-testspec:replicas: 1 策略:rollingUpdate : maxSurge: 1 maxUnavailable: 0 选择器:matchLabels: app: pvp-test template:元数据:标签:应用程序:pvp-test 规格:容器:-名称:pvp-test 图像:ccr.ccs.tencentyun.com/xxxx/xxxx :0.2 env:-名称:SPRING_PROFILES_ACTIVE 值:“qa”-名称:SPRING_APPLICATION_JSON valueFrom : configMapKeyRef: 名称: spring-config key: dev-config.json envFrom: - configMapRef:名称:部署端口:-containerPort:名称:game-http -containerPort:名称:game-tcp 资源:请求:内存:“M”cpu:“m”限制:内存:“M”cpu:“m”imagePullSecrets:-名称:tencent---api版本:v1kind:Servicemetadata:名称:pvp-test 标签:app:pvp-testspec:端口:- 端口:名称:game-http targetPort:- 端口:名称:game-tcp targetPort:选择器:app :pvp-test 代码语言:txt copy kubectl apply -f 2.yaml -n qa 注意:imagePullSecrets 是下载镜像的秘钥。
如果你有公共仓库,可以忽略它。我的仓库使用的是腾讯云个人版。
自己创建的秘钥名字叫tencent。测试时,仓库配置文件被命名为1 2个这样的yaml文件。
请原谅我。 5、查看部署结果和nacos注册状态。
代码语言:txt copy kubectl get pods -n qakubectl messages -f pvp -test-7f49fcdb9-dsjlz -n qaimage.png 启动时出现错误,先忽略这个。因为我看了一下,我的服务居然已经注册到nacos里了……我最初想要的终于实现了!图片.png图片.png图片.png图片.png6。
关于错误报告:字面上的意思,对吗?用户“system:serviceaccount:qa:default”无法获取命名空间“qa”中 API 组“”中的资源“configmaps”。这是对 RBAC 集群角色角色绑定的回顾。
cat configmap-get.yaml 代码语言: txt 复制种类: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: 命名空间: qa 名称: configmap-getrules:- apiGroups: [""] 资源: ["configmap"] 动词: ["get"] 绑定到 serviceaccount:qa:default 代码语言: txt 复制 kubectl create clusterrolebinding configmap-get-configmap --clusterrole=configmap-get --serviceaccount=qa:default 杀掉容器,继续查看日志新容器代码语言:txt copy kubectl delete pods pvp-test-7f49fcdb9-dsjlz -n qakubectl messages -f pvp-test-7f49fcdb9-ck9m6 -n qaimage.pngimage.png 还是报错...仔细看日志....参数应该是configmaps....,我错过了一个s吗?修改 configmap-get.yaml 文件如下: Code language: txt copy kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: namespace: qa name: configmap-getrules:- apiGroups: [""] resources: [" configmaps" ] verbs: ["get"] apply 重新部署集群角色。删除旧的pod,再次查看日志: 代码语言:txt copy kubectl apply -f configmap-get.yamlkubectl delete pods pvp-test-7f49fcdb9-ck9m6 -n qaimage.png 好了,这次终于成功了。
后记:今天复习了几个知识点。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-18
06-18
06-18
06-18
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用