Kubernetes学习笔记-项目简单部署

继续之前的移除Nacos迁移至K8s,现在把项目服务简单的部署到Kubernetes上面。

  • 项目服务配置

    • Kubernetes的ConfigMap有以下几种创建方式:
      • kubectl create configmap special-config --from-literal=special.k1=v1 --from-literal=special.k2=v2
      • kubectl create configmap special-config --from-file=special-config.properties
      • kubectl apply -f special-config.yaml
    • 这里使用第三种方式创建ConfigMap。
      • 根据项目服务的需要新建common-config.yaml、service-config.yaml两个ConfigMap文件,文件内容见下方。
      • kubectl apply -f common-config.yaml
      • kubectl apply -f service-config.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:name: common-confignamespace: default
    data:common-config.yml: |spring:main:allow-bean-definition-overriding: truemvc:throw-exception-if-no-handler-found: truemessages:basename: i18n/messagesdatasource:driver-class-name: com.mysql.cj.jdbc.Drivertype: com.zaxxer.hikari.HikariDataSourcehikari:connection-timeout: 10000validation-timeout: 10000idle-timeout: 30000max-lifetime: 60000maximum-pool-size: 20minimum-idle: 10read-only: falseconnection-test-query: SELECT 1 FROM DUALserver:undertow:threads:io: 4worker: 32buffer-size: 1024direct-buffers: truemax-http-post-size: 10485760max-http-header-size: 16384compression:enabled: truemime-types:- application/json- application/xml- application/javascript- text/html- text/xml- text/plain- text/javascript- text/cssmin-response-size: 1024management:endpoints:enabled-by-default: trueweb:exposure:include: healthshutdown:enabled: truemybatis-plus:mapper-locations: classpath*:mapper/**/*.xmlconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    
    apiVersion: v1
    kind: ConfigMap
    metadata:name: service-confignamespace: default
    data:service-config.yml: |spring:profiles:active: devapplication:name: demo-servicedatasource:url: jdbc:mysql://192.168.0.1:3306/demo-service?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8username: rootpassword: 123456server:port: 18080servlet:context-path: /demo-service
    
  • 项目服务打包镜像

    • 项目打包:mvn clean -X -U package -DskipTests
    • 创建Dockerfile文件,简单内容见下方
    • 构建镜像:docker build -t swr.cn-east-3.myhuaweicloud.com/develop/demo-service:latest .
    • 上传镜像:docker push swr.cn-east-3.myhuaweicloud.com/develop/demo-service:latest
    FROM swr.cn-east-3.huaweicloud.com/develop/java:jdk1.8_jmxEXPOSE 18080
    EXPOSE 18081ENV DEF_JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8 -Dhttps.protocols=TLSv1.2"
    ENV APP_JAR_PATH=app.jarADD target/*.jar /app.jarENTRYPOINT ["sh", "-c", "java ${DEF_JAVA_OPTS} -jar /app.jar"]
    
  • 项目服务部署

    • 创建管理应用Pod。
      • 新建Deployment.yaml文件,简单内容见下方。
      • 执行命令:kubectl apply -f Deployment.yaml
      • 查看Pod状态:kubectl get pods
      • 查看Pod日志:kubectl logs
      apiVersion: apps/v1
      kind: Deployment
      metadata:name: demo-service
      spec:replicas: 1selector:matchLabels:app: demo-servicetemplate:metadata:labels:app: demo-servicespec:imagePullSecrets:- name: imagesecretcontainers:- name: demo-serviceimage: swr.cn-east-3.myhuaweicloud.com/develop/demo-service:latestimagePullPolicy: Alwaysports:- containerPort: 18080
      
    • 可以为动态变化的Pod提供稳定的访问入口,实现服务发现和负载均衡。
      • 新建Service.yaml文件,简单内容见下方。
      • 执行命令:kubectl apply -f Service.yaml
      • 查看Service信息:kubectl get svc
      • 访问项目服务:http://192.168.0.1:32749/demo-service/doc.html
      apiVersion: v1
      kind: Service
      metadata:name: demo-service
      spec:selector:app: demo-serviceports:- protocol: TCPport: 18080targetPort: 18080type: NodePort
      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36907.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LINUX操作系统】 动静态库的链接原理

初识linux(16) 动静态库(手搓动静态库!)-CSDN博客 完成了对动静态库使用的学习,现在浅显理解下动态库加载的原理。 1. 宏观认知 磁盘中的应用程序main和动态库libmystdio.so先加载到内存中 加载到内存后&am…

广东启动“跨境电商+产业带”系列活动 三年打造30个产业振兴样板

大湾区经济网湾区财经快讯,近日,2025年广东省“跨境电商+产业带”助力“百千万工程”系列活动在中山市古镇镇启动。作为外贸领域新质生产力的重要载体,跨境电商将通过赋能县域特色产业带转型升级,为城乡融合与乡村振兴…

穿透递归的本质:从无限梦境到可控魔法的蜕变之路

穿透递归的本质:从无限梦境到可控魔法的蜕变之路(C实现) 一、递归:程序员的盗梦空间 在计算机科学的宇宙中,递归是最接近魔法本质的编程范式。它像一面镜子中的镜子,引导我们通过自我相似性破解复杂问题。…

基于django+vue的购物商城系统

开发语言:Python框架:djangoPython版本:python3.8数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 热卖商品 优惠资讯 个人中心 后台登录 管理员功能界面 用户管理 商品分类管理…

WordPress靶场攻略

后台修改模板 修改404.php为一句话木马 访问404.php,验证有没有成功 http://47.122.51.245:8080/wp-content/themes/twentyfifteen/404.php?cmdphpinfo(); 上传主题 创建6.php,写入图中代码 自己随便下载一个主题包,将1.php和主题包压缩在一起,提交上…

JVM常用概念之对象对齐

问题 对象对齐有什么规范吗?对象对齐是8个字节吗? 基础知识 许多硬件实现要求对数据的访问是对齐的,即确保所有 N 字节宽度的访问都在 N 的整数倍的地址上完成。即使对于普通的数据访问没有特别要求,特殊操作(特别是原子操作&#xff09…

K8S学习之基础三十七:prometheus监控node资源

Prometheus v2.2.1 ​ 编写yaml文件,包含创建ns、configmap、deployment、service # 创建monitoring空间 vi prometheus-ns.yaml apiVersion: v1 kind: Namespace metadata:name: monitor-sa# 创建SA并绑定权限 kubectl create serviceaccount monitor -n monito…

leetcode127.单词接龙

本题的思路就是将所有可转换的序列相连,构成图,然后选择起始词作为广度优先遍历的起点,那么就能找到转换的最小步骤数 而这里的两个单词是否相连不是真的把他们弄成一张图,而是采用暴力枚举,逐个尝试替换字母&#xf…

Tr0ll2靶机详解

一、主机发现 arp-scan -l靶机ip:192.168.55.164 二、端口扫描、漏洞扫描、目录枚举、指纹识别 2.1端口扫描 nmap --min-rate 10000 -p- 192.168.55.164发现21端口的ftp服务开启 以UDP协议进行扫描 使用参数-sU进行UDP扫描 nmap -sU --min-rate 10000 -p- 19…

Pycharm接入DeepSeek,提升自动化脚本的写作效率

一.效果展示: 二.实施步骤: 1.DeepSeek官网创建API key: 创建成功后,会生成一个API key: 2. PyCharm工具,打开文件->设置->插件,搜索“Continue”,点击安装 3.安装完成后&…

如何在 Node.js 中使用 .env 文件管理环境变量 ?

Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置。.env 文件已经成为一种流行的本地管理这些变量的方法,而无需在代码存储库中公开它们。本文将探讨 .env 文件为什么重要,以及如何在 Node.js 应用程序中有效的使用它。 为什么使用 .env 文…

《视觉SLAM十四讲》ch13 设计SLAM系统 相机轨迹实现

前言 相信大家在slam学习中,一定会遇到slam系统的性能评估问题。虽然有EVO这样的开源评估工具,我们也需要自己了解系统生成的trajectory.txt的含义,方便我们更好的理解相机的运行跟踪过程。 项目配置如下: 数据解读: …

软考高级信息系统管理工程师通关100题(21-40)附记忆口诀

文章目录 21.常用存储模式的技术与应用对比22.物联网架构23.云计算服务提供的资源层次24.大数据25.区块链26.人工智能27.虚拟现实VR28.IT治理的内涵29.IT 治理活动30.IT治理本质31.IT审计目标32.IT审计方法33.治理系统设计34.数据管理能力成熟度评估模型35.项目管理原则36.管理…

Redisson 分布式锁原理

加锁原理 # 如果锁不存在 if (redis.call(exists, KEYS[1]) 0) then# hash结构,锁名称为key,线程唯一标识为itemKey,itemValue为一个计数器。支持相同客户端线程可重入,每次加锁计数器1.redis.call(hincrby, KEYS[1], ARGV[2], 1);# 设置过期时间redis.call(pexpi…

主流加固方案深度剖析(梆梆/腾讯/阿里)

1. 加固技术演进与核心原理 1.1 移动端加固技术图谱 graph TD A[代码防护] --> A1[混淆] A --> A2[虚拟化] A --> A3[动态加载] B[数据防护] --> B1[资源加密] B --> B2[协议加密] C[运行时防护] --> C1[反调试] C --> C2[环境检测] C --> C…

大模型之蒸馏模型

蒸馏模型(Distilled Model)是一种通过知识蒸馏(Knowledge Distillation)技术训练得到的轻量级模型,其核心思想是将一个复杂的大模型(称为教师模型)的知识“迁移”到一个更小、更高效的模型&…

iPaaS集成平台中的API可视化编排能给企业带来什么作用

随着企业数字化转型的加速,API(应用程序接口)作为企业数字化资产的核心组成部分,其数量和复杂性不断增加。为了满足业务敏捷化交付的要求,API可视化编排平台应运而生。谷云科技作为这一领域的领先者,其API可…

演员马晓琳正式加入创星演员出道计划,开启演艺事业新篇章

3月19日,演员马晓琳正式加入“创星演员出道计划”,不仅得到参演都市爱情喜剧《和我结婚吧》角色的机会,还获得文旅精品网剧《醉梦灵州》的出演机会,自此开启全新影视之路。对表演抱有极大热情的马晓琳,相信未来可以凭借…

绿盟科技春招面试

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…