- 博客(714)
- 收藏
- 关注
原创 【云原生技术】helm中Chart.yaml、values.yaml、_helpers.tpl 各自的写法与作用
Chart.yaml、values.yaml、_helpers.tpl 各自的写法与作用在一个标准的 Helm Chart 中,通常会包含以下关键文件: - **Chart.yaml** - **values.yaml** - **templates/`_helpers.tpl`** - 以及若干模板文件(`deployment.yaml`、`service.yaml` 等) 下面分别介绍这几个文件的作用、常见字段及其含义。
2025-03-24 04:30:00
191
原创 【云原生技术】jenkins如何实现用helm部署
编写 Helm Chart你需要事先准备好包含所有 Kubernetes 资源定义(Deployment、Service、Ingress等模板文件)的Chart,以及对应的。测试无误后打包成.tgz,或者直接放到 Chart 仓库(例如 ChartMuseum、Artifactory等)。Jenkins 环境准备在运行 Pipeline 的 Jenkins Agent 上安装 Helm CLI。这一步是必须的,否则无法执行命令。
2025-03-24 00:30:00
245
原创 【云原生技术】helm upgrade --install my-release /path/to/chart详解
(网络/权限允许),这个命令就能完成部署或升级。若遇到问题,可先试试。检查是否都配置正确。
2025-03-23 02:15:00
243
原创 【云原生技术】Helm 的工作原理与代码组织方式
所谓“众多 kind 的资源 YAML”就是放在templates/下的文件,写好模板语法并引用中的参数。Helm 在“真正部署”时会把这些模板渲染成标准的 Kubernetes YAML,再通过 kubeconfig 调 K8S API 去创建/更新资源。实际编写时,你只负责在模板里写常规 YAML + 模板语法占位符,Helm 会帮你把它们组合起来。这样就可以既灵活配置,又统一管理发布版本、回滚历史。
2025-03-23 01:00:00
14
原创 【云原生技术】“Helm CLI 通过 kubeconfig 连接 K8S”的具体操作方式
Helm 本身是一个命令行工具,需要在运行它的环境(主机、容器或 Jenkins Agent)里预装helm。让 Helm 访问 Kubernetes 的方式,主要就是kubeconfig(或 ServiceAccount Token)+helm命令行参数/环境变量。你可以选择最适合你们团队的途径:简单脚本、Jenkins Pipeline,或者 Java 调用子进程等。无论哪种方式,都离不开“Helm CLI + kubeconfig”这样的基本组合。
2025-03-22 01:00:00
16
原创 【云原生技术】集群上“支持 Helm”通常意味着什么?
如果你现在用的是 Helm 3,集群上“支持 Helm”更多是指“集群无需额外组件即可被 Helm CLI 访问”。但是从外部机器(Java 服务器)去发起 Helm 命令,依旧需要。因为 Helm 并不是一个对外暴露 HTTP API 的服务,它是一个命令行工具/Go 库,通过本地 kubeconfig 去操作 Kubernetes。命令行程序(以及正确的 kubeconfig),才能完成 install/upgrade 等操作。
2025-03-22 00:45:00
839
原创 【云原生技术】 Helm 与普通 K8S 部署方式的区别
Helm 不像普通 K8S 部署那样,有现成的 REST API 接口可直接调用”,这个理解是对的。如果想以“Helm 方式”在 K8S 上部署,通常你就需要在执行环境里安装 Helm CLI,或者再封装一层 Helm Service(基于 Helm SDK)。Helm CLI 最终还是要通过 kubeconfig 访问 K8S API,但你无法直接用 Java 代码、用普通 K8S Client 方法就完成 Helm 的模板渲染和发布管理功能,这是 Helm 自己的特有逻辑。
2025-03-22 00:45:00
18
原创 【云原生技术】CI 系统必须能够访问 Kubernetes 集群,才能顺利完成 Helm 命令操作
需要注意的细节都在于访问权限、网络、RBAC,以及对 Helm CLI 的依赖。Helm 本质上是一个命令行工具(CLI),一旦 Pipeline 中要用到它,就必须能在命令行里找到。如果 CI 里需要自动化地执行回滚,也要依赖 Helm CLI。只要 CI 能正确“拿到”集群访问凭据,并能连通 Kubernetes,就能顺利完成 Helm 命令操作。命令,并且具备访问 Kubernetes 的凭据与网络权限,就能完成 Helm 部署操作。所以,从可行性和维护性看,如果你的目标就是复用 Helm 的特性,
2025-03-21 01:00:00
25
原创 【云原生技术】heml部署举例
Helm 官方提供的主要是 Go 语言的库(SDK),它能让你在 Go 代码里直接调用 Helm 的各种操作(install、upgrade、rollback 等)。在 Helm 中,“my-sample-app”指的是一个 Helm Chart(即一系列 Kubernetes 资源模板),它本身并不是 Docker 镜像。如果你们对 Helm “模板化、打包、版本回滚”这类特性并没有强需求,或者你们已经有一套自定义的运维/配置管理方法,那么可以直接使用。:简单易实现,不需要额外引入远程服务或大规模改造。
2025-03-21 00:45:00
80
原创 【云原生技术】helm是什么,和普通部署有什么区别吗?
Helm 是一个 Kubernetes 的应用包管理工具,可以将一组 Kubernetes 资源(如 Deployment、Service 等)打包成一个可复用的“Chart”。简而言之,Helm 相当于 Kubernetes 的“包管理器”,用来简化应用部署、升级和回滚等操作。总的来说,Helm 可以显著简化 Kubernetes 上的应用部署和管理流程,帮助团队更好地进行版本管理、环境配置和自动化运维。Helm 可以跟踪应用的部署历史,比如升级到新版本时,可以随时回滚到旧版本,极大地减少了运维风险。
2025-03-20 00:45:00
642
原创 【云原生技术】maven版本和jdk版本的关系?
简单来说,Maven 版本和 JDK 版本的关系是紧密相连的。选择合适的 Maven 版本时,务必考虑到你的 JDK 版本,以确保构建过程顺利。安装 JDK:如果你是 Java 开发者,首先安装 JDK。安装 Maven:如果你的项目使用 Maven 作为构建工具,则在安装 JDK 后安装 Maven。
2025-03-20 00:30:00
616
原创 【云原生技术】节点隔离、自愈和双活介绍
1. 节点隔离 (Node Isolation)含义常见场景和机制作用2. 自愈 (Self-Healing)含义常见机制作用3. 双活 (Dual-Active / Active-Active)含义常见场景难点与挑战作用总结在分布式系统与高可用架构中,经常会提到“节点隔离(Isolation)”、“自愈(Self-healing)”、“双活(Active-Active或Dual-Active)”等概念。它们分别针对系统中不同层面的问题和需求,以提高可用性、容错性及业务连续性。节点隔离。
2025-03-20 00:15:00
894
原创 【云原生技术】如何查看jenkins的maven版本
你也可以在执行 Maven 构建的控制台输出中查看 Maven 的版本。要升级 Maven,可以按照以下步骤操作,这里分为在服务器上手动升级和通过 Jenkins 界面升级两种情况。通过以上步骤,你可以选择在服务器上手动升级 Maven,或者通过 Jenkins 界面进行管理。这几种方法都可以帮助你查看服务器上 Jenkins 使用的 Maven 版本。更新系统的环境变量,确保新版本的 Maven 在系统路径中。启动一个 Maven 构建,确保它使用的是新版本的 Maven。下载最新版本的 Maven。
2025-03-19 04:45:00
580
原创 【云原生】ERROR][ERROR] Some problems were encountered while processing the POMs :[ ERROR] Non-resolvable
这个错误通常是因为 Maven 在构建时无法从配置的仓库里找到指定的依赖(例如 SNAPSHOT 版的 com.lance.framework:lance-framework-dependencies)。
2025-03-19 00:15:00
443
原创 【云原生技术】在多环境(测试/开发)共存、且存在差异配置时,如何更好地管理、记录和避免遗漏。
这样才能在规模或团队人数增加时,确保不同环境的配置/代码差异始终在可见、可管、易审的状态下。如果只是依靠上线前人工检查清单,有效但可能仍有遗漏或耗时。在多环境(测试/开发)共存、且存在差异配置时更好地管理、记录和避免遗漏。以上几列能满足大部分场景,当然你可根据自身需求再添加。
2025-03-18 02:30:00
870
原创 【云原生技术】SonarQube 报错org.sonar.java.AnalysisException: Your project contains .java files
SonarQube 在分析你的项目时,发现项目中存在.java源文件却没有提供对应的已编译.class换句话说,Sonar 在做 Java 代码分析时需要看到编译后生成的字节码,否则无法进行完整的语言规则扫描。
2025-03-18 00:30:00
148
原创 【云原生技术】pod的event事件和日志的区别
*在实际生产环境中,很多公司都会把 Kubernetes Event 采集到统一的日志平台中,方便监控、告警和故障排查。是 Pod 内部运行的容器标准输出(stdout)和标准错误输出(stderr)的内容。
2025-03-17 01:00:00
1443
原创 【云原生技术】“部署步骤”完成后,如何增加一套详细的部署日志
但要注意:一个 Pod 里可能有多个容器(主容器+sidecar等),只有全部容器都 Running & Ready,整个 Pod 才算健康。有时大家会把“Pod 状态日志”一并叫成“Pod 状态信息”,把“Kubernetes Event”简称为“Event 日志”。容器的状态(ContainerStatus)**是两个不同的维度,平时最常用来判断 Pod 是否“工作正常”的是。Pod 是容器的“壳”,只有当 Pod 状态是Running且容器就绪探针通过,才能说容器真正启动成功。
2025-03-17 01:00:00
450
原创 【云原生技术】ssh usr@ip ’cat aa.text‘是进入到目标服务器还是在自己的服务器执行?
上执行的,不是在本机执行。简单来说,您通过 SSH 登录到目标服务器,然后在该服务器上运行指定的命令。)都写在 heredoc 当中,会被远端的 Shell 解释并执行,所以生成或追加日志的。如果希望将输出保存到本地,需要把重定向符号放在本地 Shell。在远程执行,但输出流重定向由本地 Shell 处理,生成的。(Here Document)的写法。的操作是由本地 Shell 完成,因此。(或者你指定的结束符号)之间的多行文本,就一定是「在目标服务器上执行」,而是。)上执行的,但将其输出重定向写入。
2025-03-16 00:45:00
847
原创 【云原生技术】容器云配置是用于干嘛的?
简单来说,“容器云配置”就是将应用容器化后,在云端平台(如 Kubernetes)对它的部署、网络、存储、安全、监控等各方面进行集中管理和调度的配置。藉由这些配置,可以让容器在不同环境中。地部署运行,同时具备。
2025-03-16 00:30:00
112
原创 【云原生技术】 `ssh -l 目标服务器 ‘java -version‘`情况排查jdk版本问题
时,如果该用户的环境变量或 PATH 没有特殊改动,一般就会直接使用新的默认 Java 17,而不再显示 1.8。这样您就能查清为何 SSH 返回的是 Java 1.8,而非 17,并具体修正目标服务器上的默认 Java 设置。换句话说,服务器上可能装了多个 JDK,但您没有显式指定要用哪个 JDK,就会用系统里默认的。如果该默认链接指向的是 1.8,那远程执行自然会显示 Java 1.8。时,系统默认调用的是当前“全局默认链接”的 Java,也就是通过。的 Java 解释器(即远程主机上的 JDK)。
2025-03-15 01:45:00
990
原创 【云原生技术】.kube详细介绍一下及举例说明
1. `.kube` 目录的作用2. `.kube/config` 文件结构3. 示例 `.kube/config` 文件4. 管理多个 Kubernetes 集群5. 使用 `kubectl` 命令结论.kube目录是 Kubernetes 客户端kubectl用于存储用户的配置文件和相关信息的本地目录。该目录通常位于用户的主目录下,即~/.kube。下面是对.kube目录的详细介绍及相关内容的示例。
2025-03-14 02:00:00
907
原创 【云原生技术】如何将 SonarQube 集成到项目中
SonarQube 是一个开源的持续代码质量管理平台,支持多种编程语言,并提供代码分析、代码覆盖率、潜在错误等功能。这将从 Docker Hub 下载 SonarQube 镜像并在后台运行 SonarQube 实例。要通过 Maven 进行 SonarQube 扫描,您需要将 SonarQube 插件添加到。在 SonarQube Web 界面中,您可以创建一个新项目。这将分析您的代码并将结果发送到 SonarQube 服务器。在您的 Java 项目的根目录下,创建一个名为。和一个令牌,用于后续的配置。
2025-03-14 00:45:00
351
原创 【云原生技术】如何将 JDK 和 Maven环境打包到 Docker 镜像中,并在 Kubernetes 环境下执行编译操作
准备文件: 确保将 JDK、Maven 的压缩文件、准备 kubectl 和 .kube 配置: 确保您有 kubectl 的二进制文件和 .kube/config 文件,这个配置文件应包含关于 Kubernetes 集群的连接信息(API 服务器地址、token、证书等)和.ssh文件准备好。编写 Dockerfile: 创建一个 Dockerfile,将上述文件复制到镜像中并配置环境。构建 Docker 镜像: 使用 Docker CLI 构建镜像。在 Kubernetes 中使用镜像进行操作。
2025-03-13 01:00:00
396
原创 【云原生技术】jenkins重启后台怎么重启
如果您使用了如 Nginx 或 Apache 的反向代理,您需要确保在重启 Jenkins 之后这些代理服务的配置是正常的,重启 Nginx 或 Apache,确保反向代理连接到 Jenkins 的端口。重启 Jenkins 服务器可以通过几种不同的方法来实现,具体取决于您的 Jenkins 是如何安装和配置的。如果您需要在服务器上直接通过命令行重启 Jenkins,请根据 Jenkins 的安装方式选择相应的命令。根据您的具体环境和需求,您可以选择合适的方法来重启 Jenkins。
2025-03-13 00:45:00
290
原创 【云原生技术】如何将 JDK 和 Maven环境打包到 Docker 镜像中,并在 Kubernetes 环境下执行编译操作
准备文件: 确保将 JDK、Maven 的压缩文件、准备 kubectl 和 .kube 配置: 确保您有 kubectl 的二进制文件和 .kube/config 文件,这个配置文件应包含关于 Kubernetes 集群的连接信息(API 服务器地址、token、证书等)和.ssh文件准备好。编写 Dockerfile: 创建一个 Dockerfile,将上述文件复制到镜像中并配置环境。构建 Docker 镜像: 使用 Docker CLI 构建镜像。在 Kubernetes 中使用镜像进行操作。
2025-03-12 14:32:10
233
原创 【云原生技术】如何通过自动化脚本可以在虚机部署时配置 SSH 的免密登录
通过自动化脚本可以在部署时配置 SSH 的免密登录。务必注意安全性和密钥管理,以确保系统的稳定和安全。即使目标机器上没有安装sshpass,只需通过 SSH 密钥对的方式也能配置免密登录。确保您在安全的网络环境中执行此操作,并妥善管理密钥以维护系统的安全性。
2025-03-12 14:17:35
326
原创 【云原生技术】在 Kubernetes 中,当使用 PVC(Persistent Volume Claim)、ConfigMap 或 Secret 作为数据卷挂载时,挂载目录必须配置
挂载目录:您必须指定挂载目录(mountPath),这是容器内访问这些数据的路径。items:可以为ConfigMap或Secret指定多个键,不同的键会在挂载目录下生成多个文件,文件名由每个条目的path决定,如果不指定,默认取key。这样,您在 Pod 中就可以方便地访问ConfigMap或Secret中的数据了。对文件内容的更改将自动反映在挂载的文件中。
2025-03-12 14:12:20
1029
原创 【DevOps技术】Jenkinsfile中,进入容器执行命令通常有两种方式
• 默认行为:docker.image().inside() 每次启动新容器,执行后自动删除。• 适用场景:适合需要环境隔离的 CI/CD 流水线。• 依赖持久化:通过挂载卷解决容器内文件不保留的问题。通过这种方式,Jenkins 确保了每次构建的独立性和可重复性,同时避免了资源泄漏。
2025-03-11 19:32:38
24
原创 【DevOps技术】Docker 容器的文件系统持久性和 Maven 依赖管理机制
• 首次启动容器:镜像中的 Maven 仓库目录(如 /root/.m2/repository)是空的,执行 mvn clean package 时,依赖会从私服下载到容器的本地仓库(容器层)。• 如果容器未被删除:第二天再次运行 mvn clean package 时,容器层中的依赖仍然存在,Maven 会优先使用本地仓库的依赖(无需重新下载)。• 如果容器被删除后重启:新容器会基于原始镜像重新创建,容器层是全新的,此时本地仓库为空,Maven 会重新从私服下载依赖。容器销毁重建时本地仓库重置。
2025-03-11 19:24:56
383
原创 【软件系统分析师】共享存储方式SMP、分布式存储方式MPP、共享虚拟内存SVM的定义、优缺点、关系和举例
1. SMP(Symmetric Multi-Processing,对称多处理)1.1 基本概念1.2 优点1.3 缺点1.4 通俗举例2. MPP(Massively Parallel Processing,大规模并行处理)2.1 基本概念2.2 优点2.3 缺点2.4 通俗举例3. SVM(Shared Virtual Memory,共享虚拟内存)3.1 基本概念3.2 关键机制3.3 优点3.4 缺点3.5 通俗举例4. 三者之间的关系与区别5. 小结SMP。
2025-03-08 00:45:00
573
原创 【软件系统分析师】“c”这两大类的含义、优缺点以及通俗易懂的例子
在计算机领域(无论是软件架构还是硬件系统),“耦合”指的是两个或多个组件(或者子系统)之间依赖与联系的紧密程度。耦合度越高,组件之间越依赖彼此的内部实现;耦合度越低,组件之间越能独立演进、替换。根据不同的架构或实现方式,可以分为“紧耦合/直接耦合”和“松耦合/间接耦合”这两大类。下面详细介绍它们的含义、优缺点以及通俗易懂的例子。
2025-03-07 00:30:00
816
原创 【软件系统分析师】多处理机与并行处理机系统
多处理机(Multi-processor)与并行处理机(Parallel processor)在计算机架构中都涉及到“多核、多CPU”协同工作,但它们的实现方式和应用场景会有所差异。下面是详细的介绍和一些示例,帮助我们更好地理解它们各自的特点与用途。它们都旨在通过“并行”来提升计算效率,但实现方式与硬件组织会有所不同。在实际应用中,需要根据计算需求和规模来选择适合的并行架构。
2025-03-07 00:15:00
750
原创 【软件系统分析师】控制器、处理机和处理单元的关系
如 GPU(图形处理器/图形处理单元,Graphics Processing Unit)、NPU(神经网络处理单元,Neural Processing Unit)等,这些单元专门处理图形渲染、深度学习、加密计算等特定类型的工作。在一些高性能计算或大规模并行系统中,“Processing Unit”可以泛指所有参与运算的执行实体,无论是在单个 CPU 核心、GPU 核心,还是分布于多台机器的节点,都可以抽象为一个“处理单元”。负责执行具体的算术运算(加减乘除)和逻辑运算(与、或、非、比较等)。
2025-03-06 09:12:33
626
原创 【软件系统分析师】处理器是什么?处理器是什么?
例如,某个镜像可以基于基础的 Ubuntu 镜像,然后再在其上安装一些库,再放入你的应用程序,形成几层叠加的结构。容器停止或销毁后,这些临时数据也会消失,而镜像的只读层则不受影响。构建好的镜像可以上传到镜像仓库(如 Docker Hub,Harbor 等),其他需要使用该镜像的人或服务器可以从仓库拉取(下载)镜像,然后以此快速创建容器进行部署。简而言之,镜像好比“应用的模板”——包含应用运行所需要的一切环境和文件,不管你把它拿到哪台机器上,只要有对应的容器运行环境,就能快速启动并确保运行环境一致。
2025-03-06 09:05:10
294
原创 【DevOps】`.kube` 目录是 Kubernetes 中干嘛的?
文件是 YAML 格式的,通常包含以下几部分:以下是一个示例 Kubernetes 配置文件。这个示例包含了一个集群及它的认证信息。解释每个字段:apiVersion: 该字段指定配置文件的版本,此处为 。kind: 指定配置的类型,此处为 。clusters: 包含一个或多个 Kubernetes 集群的信息块,每个集群的信息包括服务器地址和证书。contexts: 用于定义哪些用户和集群组合在一起。current-context: 指示默认使用的上下文。users: 包含与 Kubern
2025-02-26 17:35:23
872
原创 【DevOps】离线将 JDK 17、Maven 3.8.6打包到 Docker 镜像中,并在 Kubernetes 中编译 Java 项目
有离线环境下的jdk17和maven3.8.6的linux压缩安装包,如何把jdk17和maven3.8.6环境和setting打包到镜像里面,需要编译的时候就在K8S里面进入到这个镜像里面去编译打jar包。通过以上步骤,您可以验证 Docker 镜像中包含的 JDK 和 Maven 的版本是否正确,并测试该环境下的 Java 项目编译能力。目录下生成的 JAR 文件表明 JDK 和 Maven 均已正确安装,并且可以成功编译项目。在容器中,可以创建一个简单的 Java 项目进行编译测试。
2025-02-26 17:31:04
312
原创 【DevOps】jenkins重启后台怎么重启
重启 Jenkins 服务器可以通过几种不同的方法来实现,具体取决于您的 Jenkins 是如何安装和配置的。
2025-02-25 17:06:16
322
原创 【DevOps】流水线任务中,实现虚拟机的自动部署功能
即使目标机器上没有安装sshpass,只需通过 SSH 密钥对的方式也能配置免密登录。确保您在安全的网络环境中执行此操作,并妥善管理密钥以维护系统的安全性。
2025-02-25 11:31:51
725
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人