- 博客(80)
- 资源 (2)
- 收藏
- 关注
原创 kubernetes java app 部署使用harbor私服 问题集合
本文介绍了SpringBoot应用在Kubernetes集群中的部署过程及常见问题解决方案。主要内容包括:1)Jenkins流水线配置,实现代码拉取、镜像构建推送和K8s部署;2)Dockerfile优化,采用多阶段构建并解决AppArmor权限问题;3)K8s部署文件调整,处理镜像占位符替换、Harbor认证和资源限制;4)排查了jar包缺少主类、容器启动失败等典型问题;5)最终通过禁用AppArmor、添加镜像拉取密钥等措施实现成功部署。文章总结了部署过程中遇到的主要是权限和镜像源问题,并提供了具体的解
2026-03-17 17:14:22
68
原创 kubernetes Jenkins 二进制安装指南
Jenkins 默认从国外下载插件,国内访问很慢,需要换源。Jenkins 运行依赖 Java,必须先安装 JDK。不配置gitlab插件的方法:(2)需要创建jenkinsfile。配置gitlab的方法(1)
2026-03-07 01:03:44
332
原创 Jenkins 各种部署集成方式与使用场景对比
本文分析了Jenkins的三种部署方式:二进制安装适合小团队(1-5人),简单易用但扩展性差;Docker方式适合中小团队(5-20人),提供环境隔离和快速迁移;K8s Pod方式适合大团队(20人以上),具备高可用和弹性扩展能力。建议团队从二进制安装入门,逐步演进到Docker容器化,最终采用K8s实现企业级DevOps。不同方式在部署复杂度、可用性和扩展性方面存在显著差异,团队应根据规模和需求选择合适的部署方案。
2026-03-03 01:22:37
55
原创 Kubernetes 高可用集群搭建
本文介绍了在企业内网环境中快速部署Kubernetes v1.35.x集群的方案。集群采用高可用架构,包含3个主控节点(2C4G)、3个工作节点(4C8G)和1个负载均衡节点,使用VIP 192.168.0.112实现高可用。部署过程包括:1)所有节点前置准备(主机名配置、系统优化、时间同步);2)containerd安装;3)Kubernetes组件安装;4)HAProxy+Keepalived配置;5)集群初始化和节点加入;6)Calico网络插件部署。方案强调使用二进制安装包部署,适合资源受限的内网环
2026-02-28 11:28:27
668
原创 Kubernetes 证书说明
文件类型核心内容性质作用安全要求.key非对称加密私钥机密 / 私有签名、解密、生成 CSR绝对保密,防泄露.crt数字证书(含公钥)公开分发公钥、身份认证、验签可公开,防篡改.key 是自己藏的 “钥匙”,.crt 是对外展示的 “身份证(带公钥)”,二者配对才能实现完整的加密和身份验证,是 HTTPS、SSL/TLS、SSH 等安全服务的基础。
2026-02-28 03:53:54
593
原创 kubernetes 源码编译(ubuntu) kubernetes-1.34.1
Kubernetes 1.34.1源码编译指南: 安装依赖:包括构建工具、开发库和Docker(可选) 配置Go环境:需安装指定版本(如1.24.0)并设置PATH 安装Bazel:通过Bazelisk自动匹配源码要求的版本 准备源码:解压后初始化git并同步子模块依赖 编译命令:使用make all指定平台为linux/amd64,输出至out_put/linux/bin 关键变量:需正确配置GOPATH、GOROOT及PATH环境变量。编译前需确认工具链版本与源码要求一致。
2025-10-25 02:27:11
273
原创 k8s etcd服务安装维护
摘要: etcd是云原生领域的高可用分布式键值存储系统,基于Raft算法实现强一致性,支持TLS加密和RBAC权限控制。主要应用于Kubernetes集群存储、服务发现和配置中心等场景。文章详细介绍了etcd v3.6.5在Ubuntu 22.04上的高可用集群部署步骤,包括配置生成、证书管理(使用cfssl工具)、systemd服务设置及TLS验证等关键流程,并提供了常见错误排查方法(如日志分析、证书校验和网络检查)。部署需确保三节点配置一致性,且生产环境必须启用TLS加密通信。
2025-10-24 02:27:46
681
原创 线程池 ThreadPoolExecutor ForkJoinPool
线程池 ThreadPoolExecutor ForkJoinPool 异步线程执行实现方式 CompletableFuture
2025-10-03 16:11:47
736
原创 TransmittableThreadLocal
TransmittableThreadLocal 是阿里巴巴开源的一个线程本地变量传递工具,解决了 原生ThreadLocal在线程池场景下无法传递上下文的问题。
2025-10-01 11:35:32
344
原创 jdk1.8 ConCurrentHashMap CAS乐观锁 + Synchronized
ConCurrenthashMap jdk1.8 锁实现 cas synchronized 相比 1.7 分段锁的区别与提升
2025-09-28 01:38:48
371
原创 Vue学习--- vue3 安装 ElementUi Element Plus 依赖 与引用
ElementUi 官网vue2 依赖 ElementUi , vue3 依赖 Element Plus。
2024-08-06 01:55:08
534
原创 Vue学习---vue 项目结构
test 选装了测试模块(Unit Testing / E2E Testing)才会有的文件夹 main.js 文件是一个很重要的文件,是浏览器解析最先加载的入口文件。src / store store文件夹是你选配了Vuex之后才会有的文件,主要用于项目内某些状态的保存。
2024-07-30 14:17:18
492
原创 yarn-session模式提交flink任务步骤
bin/bash # # 清理一下结果文件夹的数据 hadoop fs -rmr hdfs://namenode_host/flink_test/result/ ./bin/flink run ./examples/batch/WordCount.jar \ --input hdfs://namenode_host/flink_test/data/ \ --output hdfs://namenode_host/flink_test/result/每个session都可以运行多个Flink应用。
2024-07-18 12:48:04
1364
原创 Vue学习---创建非默认选项项目vue2 vue3
选择 Manually select features。首次创建保存历史组件选项,同第一个截图。选择初始化创建的组件。
2024-07-16 22:42:19
369
原创 Vue学习---vue选项式api(Option API)和组合式api(Composition API)
选项式API和组合式API各有优势,Vue 3推荐使用组合式API进行开发,因为它更加灵活和现代化,同时也更容易与Vue的其他新特性如Vuex、Vite等集成。Vue中的选项式API和组合式API是两种不同的编写组件逻辑的方法。
2024-07-10 12:40:03
577
原创 序列化 反序列化 transient关键字
Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输,一般当我们使用缓存cache(内存空间不够有可能会本地存储到硬盘)或远程调用rpc(网络传输)的时候,经常需要让我们的实体类实现Serializable接口,目的就是为了让其可序列化。当然,序列化后的最终目的是为了反序列化,恢复成原先的Java对象,要不然序列化后干嘛呢,所以序列化后的字节序列都是可以恢复成Java对象的,这个过程就是反序列化。
2024-07-05 23:27:44
554
原创 重写(override) 重载(overload)
但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。访问权限不能比父类中被重写的方法的访问权限更低。返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
2024-07-05 22:24:27
233
原创 volatile 的特性
在程序运行时,为了提高执行性能,编译器和处理器会对指令进行重排序,JMM 为了保证在不同的编译器和 CPU 上有相同的结果,通过插入特定类型的内存屏障来禁止特定类型的编译器重排序和处理器重排序,保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。插入一条内存屏障会告诉编译器和 CPU:不管什么指令都不能和这条 Memory Barrier 指令重排序。volatile 只能保证对单次读/写的原子性。内存屏障,又称内存栅栏,是一个 CPU 指令。
2024-07-05 21:16:01
409
原创 接口和抽象类有什么区别?
f. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问权限可以是任意的,但接口中定义的变量只能是 public static final 类型的,并且默认即为 public static final 类型。接口可以说成是一种特殊的抽象类,接口中的所有方法都必须是抽象的,接口中的方法定义默认为 public abstract 类型,接口中的成员产量类型默认为 public static final。c. 抽象类中可以包含非抽象普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的方法。
2024-07-05 19:59:01
287
原创 基本数据类型与包装类
(因为被final修饰),但是我们应用对象,正是因为面向对象的几个特征:封装、继承、多态、抽象。本质是上,编译器编译时自动添加:int a = new Integer(100).intValue();int 4个字节 -2^31~2^31-1(-2147483648~2147483647)short 2个字节 -2^15~2^15 - 1(-32768~+32767)char 1个字节 -2^7~2^7-1(-128 ~127)//将字符串”120”按照十进制转换为int,则结果为120。
2024-07-04 01:20:39
423
原创 final、finally、finalize的区别与用法
finalize: 是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。final: 用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。finally: 是异常处理语句结构的一部分,表示总是执行。(类,方法,属性,参数)
2024-07-04 01:13:59
411
原创 String StringBuilder StringBuffer
可变字符串序列,线程安全,效率低于 StringBuilder。final 修饰类,不可拓展,字符串序列不可变。可变字符串序列,非线程安全,效率高,速度快。(适合单线程操作场景使用)
2024-07-04 01:12:13
215
原创 Java中创建(实例化)对象的五种方式
3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。5、通过I/O流(包括反序列化),如运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。如:Object obj = Class.forName("java.lang.Object").newInstance();4、调用对象的clone()方法。(3).clone(勉强算)
2024-07-04 00:58:30
317
原创 MySQL的四种事务隔离级别
4、持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作。3、隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之。1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据。也就是说事务是一个不可分割的整体,就像化学中学过的原子,
2024-07-04 00:54:59
269
原创 Vue学习---vue.js
vue.js将网页分割成客服用的组件,每个组件都有自己的html css 与javaScript 来渲染网页中的一个对应的位置。Vue.js 2.0 与 Vue.js 1.0 内部变化非常大,整个渲染层都重写了,api层变化很小。把框架分层作用:可以只用最核心的视图层渲染功能来快速开发一些需求,也可以使用全家桶来开发大型应用。Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架。vue.js 有足够的灵活性来适应不同的需求,可以根据自己的需求选择不同的层级。状态管理方案:Vuex。
2024-07-03 22:52:41
194
原创 Vue学习---环境配置
屏幕上的【此电脑】-单击右键-【属性】-【高级系统设置】-【环境变量】npm install express -g // -g代表全局安装。官网地址:https://nodejs.org/ lts版本。配置完成后,全局安装一个最常用的 express 模块进行测试。安装路径\nodejs\node_modules。安装路径\node_global。node_global的路径。vue cli 脚手架安装。
2024-07-03 15:04:22
243
原创 rabbitMq
AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一个提供统一消息服务的应用层标准高级队列是什协议,是协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/不同产品,不同的开发语言等条件的限制。中的实现有等。(应用层协议,开放标准,与实现无关)RabbitMQ是实现了高级协议()的开源消息代理软件(亦称面向消息的RabbitMQ服务器是用语言编写的,而集群和是构建在框架上的。所有主要的。
2024-07-01 02:46:48
1474
原创 redis(五) 集群模式---cluster模式(cluster)
3主3从的6个服务,没对主从不需要replicaof 指定,需要masterauth 密码相互授权。ClusterServersRedissonConfig 配置。ClusterLettuceRedisConfig 配置。6个节点,构成3主3从集群模式。可以在任意节点上执行。
2024-06-27 02:15:10
1348
数据库基础知识.sql
2009-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1