- 博客(25)
- 收藏
- 关注
原创 Kubespray部署企业级高可用K8S指南
Kubespray 是一个自由开源的工具,它提供了 Ansible剧本(playbook)来部署和管理 Kubernetes 集群。它旨在简化跨多个节点的 Kubernetes 集群的安装过程,允许用户快速轻松地部署和管理生产就绪的 Kubernetes 集群。它支持一系列操作系统,包括 Ubuntu、CentOS、Rocky Linux 和 Red Hat Enterprise Linux(RHEL),它可以在各种平台上部署 Kubernetes,包括裸机、公共云和私有云。
2025-03-02 20:35:37
1106
原创 Kubernetes集群声明式文件YAML
YAML 的意思是:仍是一种标记语言,但为了强调这种语言以数据做为中心,而不是以标记语言为重点。是一个可读性高,用来表达数据序列的格式。
2025-02-28 14:42:15
619
原创 剖析IO原理和零拷贝机制
当用户进程调用该select,select会监听所有注册好的IO,如果所有IO都没注册好,调用进程就阻塞。在IO模型中,select函数是一个非常重要的系统调用,它允许一个程序同时监视多个文件描述符(通常是套接字描述符),以查看它们中的任何一个是否可以进行I/O操作(例如读、写或异常条件)。事件驱动的,即如果某个流准备好了,会以事件通知,知道具体是哪个流,因此不需要遍历,函数的时间复杂度为O(1)。当有数据准备好时,无法感知具体是哪个流OK了,所以需要一个一个的遍历,函数的时间复杂度为O(n)。
2025-02-24 00:06:38
1200
原创 使用Dify将AI机器人嵌入到你的前端页面中及chrome的扩展应用
Dify使开发AI应用变得简单,毕竟Dify是封装了调用大模型的技术栈,肯定是有局限性,但是现有的功能也可以实现不少有用的场景啦!这个界面是使用dify配置的一个“聊天助手”的应用,助手使用的是deepseek-r1的大模型,并将这个机器人嵌入了html中。写一个html,嵌入iframe代码,这里加了点样式(ps:代码我是用cursor生成的!这时候你就有一个网页版本的聊天机器人了,新打开一个网页,一定是要有数据的网页,空白页不展示。跳转到安装Dify扩展程序的界面,安装!模块,里面有大佬们配置的模板!
2025-02-20 12:12:46
7054
30
原创 MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用
本篇文章基于Ollamal搭建本地DeepSeek,Ollamal是一个可以构建大模型的工具,Ollamal也提供了很多模型。本地部署了Dify,使用Dify做了个简单的AI应用,Dify是一个大模型应用构建工具,可以快速搭建和部署生成式Al应用程序。内容里也记录了作者本人踩的很多坑!!供大家避雷!!!
2025-02-20 01:35:39
2440
原创 Session介绍及使用场景
Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从用户注册进入系统到注销退出系统之间所经过的时间,这段时间内用户的操作空间也被包括在内。在Web开发中,Session是一种用于跟踪用户状态的重要机制,它允许服务器在多个请求之间识别和记住特定的用户,从而实现个性化的用户体验和安全的用户认证。
2025-02-17 15:44:20
636
原创 Cookie介绍及使用场景
Cookie 是一种小型文本文件,通常由网站服务器发送到用户的浏览器,并保存在用户的计算机硬盘或内存中。它们用于存储一些特定的信息,以便服务器能够识别并记住用户的数据,如用户偏好、登录状态、购物车内容等。
2025-02-17 15:03:11
985
原创 RocketMQ及和Kafka的区别
但是当topic变多了,Kafka下的partition也会增多,对应的segment文件也会变多,同时写多个topic下的partition就相当于写多个文件,不同的topic下的文件存放在磁盘的不同地方,这样的话即使segment内部是顺序写,但是针对于不同topic下的文件是随机写。消费消息是有可能失败的,失败后一般可以设置重试,如果多次重试失败,RocketMQ会将消息放在一个专门的队列中,方便我们单独做处理,这种专门存放失败消息的队列就是死信队列,kafka不支持,需要程序员实现。
2025-02-10 21:24:29
1936
原创 Kafka的架构解析
B服务消费消息队列的消息,更新offset,如果处理的不及时,消息就会堆积在队列里,如果B服务重启,消息就都丢失了!如果B服务消费情况较差,可以增加消费者,增大消息队列的消费速度,与此同时可以增加生产者的数量,提高消息的吞吐量。所以我们的数据不应该放在内存里,应该放在磁盘上,即使服务挂了,重启服务后也可以从磁盘中读取数据。组件过多,每个组件都有自己的数据和状态,所以需要有个组件来统一维护这些状态信息,于是我们有了。,获取Kafka状态,以此判断,是不是有broker挂了,某些消费组消费到哪里了。
2025-02-10 19:53:58
1108
原创 K8S--边车容器
由于这些容器被定义为 Init 容器,所以它们享有与其他 Init 容器相同的顺序和按序执行保证, 从而允许将边车容器与常规 Init 容器混合使用,支持复杂的 Pod 初始化流程。(Sidecar) 容器独立于其他 Init 容器以及同一 Pod 内的主应用容器, 这些容器可以启动、停止和重新启动,而不会影响主应用容器和其他 Init 容器。边车容器可以直接与主应用容器交互,因为与 Init 容器一样, 它们总是与应用容器共享相同的网络,并且还可以选择共享卷(文件系统)。边车容器与主应用容器同时运行。
2025-01-16 17:10:42
1147
原创 K8S--配置存活、就绪和启动探针
存活探针决定何时重启容器。例如,当应用在运行但无法取得进展时,存活探针可以捕获这类死锁。如果一个容器的存活探针失败多次,kubelet 将重启该容器。存活探针不会等待就绪探针成功。如果你想在执行存活探针前等待,你可以定义,或者使用启动探针。许多长时间运行的应用最终会进入损坏状态,除非重新启动,否则无法被恢复。Kubernetes 提供了存活探针来发现并处理这种情况。在本练习中,你会创建一个 Pod,其中运行一个基于镜像的容器。下面是这个 Pod 的配置文件。
2025-01-14 18:35:46
1130
2
原创 K8S之为容器生命周期设置postStart和preStop处理函数
创建一个包含一个容器的 Pod,该容器为 postStart 和 preStop 事件提供对应的处理函数。done" ]在上述配置文件中,你可以看到 postStart 命令在容器的/usr/share目录下写入文件message。命令 preStop 负责优雅地终止 nginx 服务。当因为失效而导致容器终止时,这一处理方式很有用。在 shell 中,验证。
2024-12-31 18:28:19
1081
原创 kubernetes之Pod 的生命周期
Pod 遵循预定义的生命周期,起始于Pending阶段, 如果至少其中有一个主要容器正常启动,则进入Running,之后取决于 Pod 中是否有容器以失败状态结束而进入Succeeded或者Failed阶段。和一个个独立的应用容器一样,Pod 也被认为是相对临时性(而不是长期存在)的实体。Pod 会被创建、赋予一个唯一的 ID(UID), 并被调度到节点,并在终止(根据重启策略)或删除之前一直运行在该节点。如果一个节点死掉了,调度到该节点的 Pod 也被计划在给定超时期限结束后删除。
2024-11-13 22:38:38
1036
原创 Pod生命周期中的不同阶段及容器的状态
Pod 的 status 字段是一个PodStatus对象,其中包含一个phase字段。Pod 的阶段(Phase)是 Pod 在其生命周期中所处位置的简单宏观概述。该阶段并不是对容器或 Pod 状态的综合汇总,也不是为了成为完整的状态机。Pod 阶段的数量和含义是严格定义的。除了本文档中列举的内容外,不应该再假定 Pod 有其他的 phase 值。
2024-11-13 19:48:26
1704
1
原创 Kubernetes的最小部署单元Pod
Pod是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。Pod是一组(一个或多个) 容器。这些容器共享存储、网络、以及怎样运行这些容器的规约。Pod中的内容总是并置(ps:放在一起)的并且一同调度,在共享的上下文中运行。Pod所建模的是特定于应用的 “逻辑主机”,其中包含一个或多个应用容器, 这些容器相对紧密地耦合在一起。在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。除了应用容器,Pod还可以包含在Pod启动期间运行的。
2024-11-12 18:06:51
1047
原创 Kubernetes回滚Deployment/扩容Deployment/暂停和恢复Deployment上线过程
当自动缩放器缩放处于上线进程(仍在进行中或暂停)中的 RollingUpdate Deployment 时, Deployment 控制器会平衡现有的活跃状态的 ReplicaSet(含 Pod 的 ReplicaSet)中的额外副本, 以降低风险。Deployment 被触发上线时,系统就会创建 Deployment 的新的修订版本。在你更新一个 Deployment 的时候,或者计划更新它的时候, 你可以在触发一个或多个更新之前暂停 Deployment 的上线过程。复制动作发生在修订版本创建时。
2024-11-08 20:02:54
837
原创 解析Kubernetes部署及更新Deployment
例如,假定你在创建一个 Deployment 以生成 nginx:1.14.2 的 5 个副本,但接下来 更新 Deployment 以创建 5 个 nginx:1.16.1 的副本,而此时只有 3 个 nginx:1.14.2 副本已创建。例如,如果仔细查看上述 Deployment ,将看到它首先创建了一个新的 Pod,然后删除旧的 Pod, 并创建了新的 Pod。Deployment 控制器每次注意到新的 Deployment 时,都会创建一个 ReplicaSet 以启动所需的 Pod。
2024-11-07 22:12:53
2218
原创 解析yaml形式创建Kubernetes的Deployment
你必须在 Deployment 中指定适当的选择算符和 Pod 模板标签(在本例中为 app: nginx)。此标签可确保 Deployment 的子 ReplicaSet 不重叠。所生成的哈希值被添加到 ReplicaSet 选择算符、Pod 模板标签,并存在于在 ReplicaSet 可能拥有的任何现有 Pod 中。Deployment 控制器将 pod-template-hash 标签添加到 Deployment 所创建或收留的每个 ReplicaSet。下面是一个 Deployment 示例。
2024-11-06 21:34:32
1000
原创 基于腾讯云服务器使用Minikube启动dashboard并外网访问
2.1章节展示的是内网的地址:http://127.0.0.1:45117/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/:http://外网地址:8989/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/由于上面暴露的是8989端口,需要将8989暴露出来。
2024-11-05 12:03:41
1317
原创 同步Centos9时钟
查看当前系统时间 date修改当前系统时间 date -s "2018-2-22 19:10:30查看硬件时间 hwclock --show修改硬件时间 hwclock --set --date “2018-2-22 19:10:30”同步系统时间和硬件时间 hwclock --hctosys保存时钟 clock -w
2024-11-04 13:24:30
255
原创 Minikube基于CentosStream9安装k8s及dashboard
为了更深入地了解集群状态,minikube捆绑了Kubernetes仪表板,使您可以轻松适应新环境。minikube需要基于容器使用,我这里安装docker。直接启动是会报错的,需要从root用户切到个人用户。1 查看当前用户是否在docker组。2 添加当前用户到docker用户组。等待minikube安装完成后。等待启动,这里是个漫长的过程。3 即刻生效更新用户组。
2024-11-01 20:54:25
1193
1
原创 免费虚拟机安装及镜像安装
在 VMware 被 Broadcom 收购后,于 2024 年 5 月 13 日正值 25 周年之际推出了桌面虚拟化平台的新版本 Workstation Pro 17.5.2 和 Fusion Pro 13.5.2,并且宣布这两个产品对个人使用完全免费。由于 Pro 版已免费提供给个人使用,之前免费的 VMware Workstation Player 和 Fusion Player 已停产。产品 下载地址 访问码。
2024-11-01 17:55:07
455
原创 JVM基础
描述:所有的新生代首先会在Eden区进行内存分配,当Eden区满时会进行一次Minor GC操作,将Eden区进行回收,此时判断存活的对象会被复制进入Survivor from区(年龄加1),对于大对象直接进入老年代,实际上是为了保证Eden区具有充足的空间可用的一种策略,采用-XX:PretenureSizeThreshold参数可以设置多大的对象可以直接进入老年代内存区域。Java编译器会在编译时直接把这个变量出现的地方替换成它的值,因此即使程序使用该静态变量,也不会导致该类的初始化。
2023-05-19 16:58:47
156
1
原创 分布式定时任务调度Quartz
Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目。
2023-05-19 16:49:42
3921
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人