琦彦の百宝箱
文章平均质量分 89
Java、k8s开发、运维等常用技巧总结
琦彦
Find out who you are,and be that person.
展开
-
【智算101】为什么用好大模型,离不开“向量数据库“呢
向量数据库则是专门为非结构化数据检索而设计,它将向量数据组成一个立体高维空间,在空间中进行模糊检索,能够快速输出权重最高的答案。原创 2024-06-11 09:22:20 · 722 阅读 · 0 评论 -
VMware 上 Linux 虚拟机的磁盘扩容
关注【云原生AI百宝箱】公众号,获取更多云原生消息本文适用 VMware 虚拟机,系统为 CentOS/RHEL 系或与之兼容的发行版,我的操作系统为 AlmaLinux 8.7。下面各项输出中所有包含 “almalinux” 字样的内容,均可替换为你的系统名字。比如你的系统是 CentOS,那么把我这里的输出信息中的 “almalinux” 都替换成 “centos” 就是你应该有的输出。转载 2024-04-25 15:36:45 · 1637 阅读 · 1 评论 -
【1024效率神器】还在Jenkins点点,快来体验Tekton的灵活自动化
与Jenkins不同,Tekton在容器和云原生环境中更加灵活,减少资源占用,支持松散耦合和重用,使各团队能够自主配置自己的管道,有利于事件驱动编排原创 2023-10-19 11:22:08 · 479 阅读 · 0 评论 -
kubectl-ai:K8S资源清单的GPT助手
琦彦,在 *云原生百宝箱 *公众号等你,与你一起探讨应用迁移,GitOps,二次开发,解决方案,CNCF生态,及生活况味。kubectl-ai 项目是一个kubectl使用 OpenAI GPT 生成和应用 Kubernetes 清单的插件。原创 2023-06-29 15:47:13 · 890 阅读 · 0 评论 -
Harbor使用公网证书
因为Harbor使用Nginx做代理,因此在公网证书审核通过后,在证书下载面板,单击Nginx服务器操作列的下载。。PEM格式的证书文件是采用Base64编码的文本文件,您可以根据需要将证书文件修改成其他格式。关于证书格式转换的具体操作,请参见。。上传证书到服务器某个目录,然后修改certificate和private_key。原创 2022-11-12 18:41:45 · 1892 阅读 · 0 评论 -
申请阿里云免费证书
阿里云免费SSL证书是赛门铁克(Symantec)品牌的,免费证书只能保护一个域名(带www和不带www可以通用)。阿里云个人账号和企业账号均可申请,多个域名可以申请多个免费证书,阿里云免费证书一个账户限制20个。原创 2022-11-12 18:37:30 · 10251 阅读 · 4 评论 -
配置对 Harbor 的 HTTPS 访问
默认情况下,Harbor 不附带证书。可以在没有安全性的情况下部署 Harbor,以便你可以通过 HTTP 连接到它。但是,在生产环境中,建议使用 HTTPS。如果你要使用Content Trust with Notary ,则必须使用 HTTPS。要配置 HTTPS,你必须创建 SSL 证书。你可以使用由受信任的第三方 CA 签名的证书,也可以使用自签名证书。本节介绍如何使用创建 CA,以及如何使用你的 CA 签署服务器证书和客户端证书。你也可以使用其他 CA 提供程序,例如。原创 2022-11-12 10:44:39 · 6416 阅读 · 0 评论 -
Harbor 镜像复制 每 30 分钟发生一次超时
AppData/Roaming/Typora/typora-user-images/image-20221028102845445.png)]你可以 git clone Harbor repo 然后更改上面的harbor/src/pkg/registry/client.go。在harbor.yml配置文件中,修改max_job_workers调整并发数量,提高单个镜像传输的带宽。目前无法从外部配置更改registry客户端的默认超时时间,但可以从代码更改它并自行构建镜像。原创 2022-10-28 20:02:44 · 654 阅读 · 0 评论 -
Harbor镜像层膨胀,占用存储过大
名,默认就是 latest,registry 会从 HTTP 请求中解析到这个 tag 名,然后根据 tag 名目录下的 link 文件找到该镜像的 manifest 的位置返回给客户端,客户端接着去请求这个 manifest 文件,客户端根据这个 manifest 文件来 pull 相应的镜像 layer。如果指的容器存储路径对应的宿主机路径,直接在宿主机上执行也是可以,从上文我们知道registry容器存储目录/storage,对应于宿主机的/data/registry。将本机的路径挂载到容器内。原创 2022-10-28 20:01:01 · 926 阅读 · 0 评论 -
Harbor断电重启postgres报错 could not locate a valid checkpoint record
Harborv2.2.2内置的数据库是postgres9.6.21,服务器突然断电,重启harbor后报错,信息如下。原创 2022-10-28 19:59:04 · 855 阅读 · 0 评论 -
Harbor新建仓库目标提示 the registry is unhealthy
两个harbor需要通过镜像复制策略来同步镜像,在仓库管理添加的harbor状态是unhealthy。原创 2022-10-28 19:57:50 · 1850 阅读 · 0 评论 -
镜像搬运工具 Skopeo 使用
作为公司内部 PaaS toB 产品的打包发布人员,容器镜像对我们打工人而言就像是工地上的砖头 🧱,而我的一部分工作就是将这些砖头在各个仓库之间搬来搬去,最终将这些砖头打包放在产品的安装包中,形成一个完整的 PaaS 产品安装包。转载 2022-10-21 08:39:56 · 1797 阅读 · 0 评论 -
收集yum install安装的软件的全量依赖 rpm 包
离线安装主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。有时候离线 rpm 包有比较难于收集齐全,但测试环境我们又可以通过完成某个软件的安装,那我们是否可以将yum 方式安装的软件,通过某种方式收集该软件的rpm 包和它依赖的 rpm 包。在离线的内网环境下进行安装一些软件的时候会出现依赖不完整的情况,一般情况下会使用如下方式进行下载依赖包Centos 7.6: 查看提供某个命令的rpm包: 查看rpm包所需的全部依赖。转载 2022-10-18 12:17:23 · 3173 阅读 · 0 评论 -
Docker load 大镜像(17G) 报错no space left on device
Docker load 大镜像 (17G) 报错 no space left on device原创 2022-10-13 09:32:35 · 2089 阅读 · 1 评论 -
Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧
Goland:快捷键,自动生成代码等效率小技巧原创 2022-10-02 21:49:41 · 7971 阅读 · 0 评论 -
Git-LFS:大文件也有了版本管理
GitHub限制存储库中允许的文件大小。如果尝试添加或更新大于50MB的文件,您将从Git收到警告。更改仍将成功推送到仓库,但您可以考虑删除提交,以尽量减少对性能的影响。GitHub阻止超过100MB的推送。要跟踪超出此限制的文件,必须使用GitLargeFileStorage(GitLFS)。更多信息请参阅“”。GitLFS”和“”。**核心思想**把需要进行版本管理、但又占用很大空间的那部分文件独立于Git仓库进行管理。...原创 2022-07-19 08:42:18 · 9054 阅读 · 0 评论 -
Harbor:修改默认的172网段
背景harbor默认启动会随机创建172网段的ip地址,跟集群规划的网段冲突。原创 2022-07-15 09:50:41 · 1370 阅读 · 2 评论 -
Kubectl 好用的命令行工具:oh-my-zsh 技巧和窍门
在 unix/linux 操作系统环境中,我们会经常讨论 shell、终端和命令行接口。Bash 可能是最有名的 shell,但在 Mac 电脑中,Zsh 可能是最为流行的 shell 了。Zsh 也被称为 z Shell,它扩展了 Bourne Shell (sh)的功能,提供了更新的特性以及对插件和主题的更多支持。从2019年的 MacOS Catalina 开始,Zsh 成为 Mac 电脑中默认的登录和交互式 shell。在 Mac 电脑上,你可以使用 Homebrew 来安装 Zsh。Linux(原创 2022-07-06 20:48:49 · 4069 阅读 · 0 评论 -
使用bitnamiredis-sentinel部署Redis 哨兵模式
获取 Bitnami Redis® Sentinel Docker 镜像的推荐方法是从Docker Hub Registry中提取预构建的镜像。要使用特定版本,你可以拉取版本化标签。你可以在 Docker Hub Registry 中查看可用版本的列表。如果你愿意,你也可以自己构建镜像。连接到其他容器使用Docker 容器网络,你的应用程序容器可以轻松访问在容器内运行的 Redis® 服务器。连接到同一网络的容器可以使用容器名称作为主机名相互通信。在此示例中,我们将创建一个 Redis® Senti原创 2022-06-26 20:57:10 · 9995 阅读 · 2 评论 -
如何在 shell 中实现并行执行
如何在 shell 中实现并行执行今天,有个同事问我,他的 shell 中要执行一个迭代200次的循环,因为每一次循环都需要消耗一定的时间,执行起来比较慢,问我可不可以改成并行执行,循环一次执行10个任务,循环20次来完成所有的任务。什么是并行?并行,是一种常见的任务执行过程模式,指可以同时执行两个或多个程序,与之相对的则是串行。还应该注意,并行不是并发,两者之间是有明显区别的,有些开发者经常搞混。并发是指服务系统支持两个或多个任务同时存在,同时存在并不意味着同时执行,因为服务系统单位时间上只执行一个任转载 2022-05-21 11:39:41 · 23187 阅读 · 1 评论 -
Kubectl命令再也不用记了,自动补全提示真好
Kubectl命令概览Kubernetes提供的kubectl命令是与集群交互最直接的方式,v1.6版本的kubectl命令参考图如下:Kubectl的子命令主要分为8个类别:基础命令(初学者都会使用的)基础命令(中级)部署命令集群管理命令故障排查和调试命令高级命令设置命令其他命令熟悉这些命令有助于大家来操作和管理kubernetes集群。Kubectl命令行提示Bash命令提示简介kubectl 的 Bash 补全脚本可以用命令 kubectl completion b原创 2022-05-09 08:39:49 · 2921 阅读 · 0 评论 -
解决Github不能下载,下载速度慢的小妙招
解决Github不能下载,下载速度慢的小妙招错误描述今天在github上使用 git clone 某个项目代码的时, git clone https://github.com/XXXX/xxx-blog.git 下载速度很慢,然后下载一段时间后,总是提示下面的错误信息:remote: Enumerating objects: 33, done.remote: Counting objects: 100% (33/33), done.remote: Compressing objects: 100原创 2022-04-13 15:58:44 · 21542 阅读 · 6 评论 -
基于GitHub/七牛云 + PicGo 搭建属于Typora的图床
基于GitHub/七牛云 + PicGo 搭建属于Typora的图床1 软件下载Typora 官网:TyporaPicGo 在 GitHub 上的地址:GitHub - PicGo2 方式一:GitHub2.1 创建图片库在自己的 GitHub 上创建一个库,当做图床,专门用来存储图片。具体操作流程与建仓库的流程一样。由于 GitHub 不允许存在空的仓库,也不允许存在空的文件夹,因此可以勾选默认创建一个 ReadMe 文件打开自己 GitHub 主页,点击New新建仓库。Rep原创 2022-04-09 21:00:00 · 1988 阅读 · 0 评论 -
find 命令小手册
find 命令小手册Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。语法find path -option [ -print ] [ -exec -ok command ] {} \;参数说明 :find 根据下列规则判断 path 和 expression,在命令列上第一个 - (转载 2022-03-26 19:15:32 · 317 阅读 · 0 评论 -
iptables常用命令小清单
iptables常用命令小清单iptables简介iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。**“四表”**是指 iptables 的功能,默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):filter 表:控制原创 2022-03-23 21:45:00 · 7908 阅读 · 0 评论 -
设计模式二三事
设计模式二三事设计模式是众多软件开发人员经过长时间的试错和应用总结出来的,解决特定问题的一系列方案。现行的部分教材在介绍设计模式时,有些会因为案例脱离实际应用场景而令人费解,有些又会因为场景简单而显得有些小题大做。本文会根据在美团金融服务平台设计开发时的经验,结合实际的案例,并采用“师生对话”这种相对诙谐的形式去讲解几类常用设计模式的应用。希望能对想提升系统设计能力的同学有所帮助或启发。引言奖励的发放策略任务模型的设计活动的迭代重构结语参考资料作者简介引言话说这是在程序员世界里一对转载 2022-03-10 20:45:42 · 4822 阅读 · 0 评论 -
限流算法如何选择?时间敏感,QPS,集群
限流是指在系统面临高并发、大流量请求的情况下,限制新的流量对系统的访问,从而保证系统服务的安全性。常用的限流算法有计数器固定窗口算法、滑动窗口算法、漏斗算法和令牌桶算法,下面将对这几种算法进行分别介绍,并给出具体的实现。本文目录如下,略长,读者可以全文阅读,同样也可以只看感兴趣的部分。计数器固定窗口算法原理计数器固定窗口算法是最基础也是最简单的一种限流算法。原理就是对一段固定时间窗口内的请求进行计数,如果请求数超过了阈值,则舍弃该请求;如果没有达到设定的阈值,则接受该请求,且计数加1。当时间窗口结束时转载 2022-02-24 20:40:27 · 740 阅读 · 0 评论 -
动画演绎分布式共识算法Raft
1. Raft 概述Raft 算法是分布式系统开发首选的共识算法。主要在分布式集群架构下进行领导者(主节点)的确认。比如现在流行的组件 Etcd、Consul、Nacos、RocketMQ、Redis Sentinel 底层都是采用Raft算法来确 认集群中的主节点,再通过主节点向其他节点下发指令。如果掌握了这个算法,就可以较容易地处理绝大部分场景的容错和一致性需求。比如分布式配置系统、分布式 NoSQL 存储等等,轻松突破系统的单机限制。Raft 算法是通过一切以领导者为准的方式,实现一系列值.翻译 2022-02-11 07:47:58 · 406 阅读 · 0 评论 -
Nacos高可用如何保证
Nacos 高可用介绍当我们在聊高可用时,我们在聊什么?系统可用性达到 99.99%在分布式系统中,部分节点宕机,依旧不影响系统整体运行服务端集群化部署多个节点Nacos 高可用,则是 Nacos 为了提升系统稳定性而采取的一系列手段。Nacos 的高可用不仅仅存在于服务端,同时也存在于客户端,以及一些与可用性相关的功能特性中,这些点组装起来,共同构成了 Nacos 的高可用。客户端高可用先统一一下语义,在微服务架构中一般会有三个角色:ConsumerProviderRegis转载 2022-02-10 10:30:12 · 4658 阅读 · 0 评论 -
Spring 中 BeanFactory 与 FactoryBean 的区别
Spring 中 BeanFactory 与 FactoryBean 的区别直接区别直面意思:Bean工厂、工厂Bean1、BeanFactory:以 Factory 结尾,表示它是一个工厂类(接口),用于管理 Bean 的一个工厂。在 Spring 中,BeanFactory 是 IOC 容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。2、FactoryBean:以 Bean 结尾,表示它是一个 Bean,不同于普通 Bean 的是:它是实现了 Factor转载 2022-02-10 10:06:20 · 1343 阅读 · 0 评论 -
Spring IOC 原理深层解析
Spring IOC 原理深层解析一、Spring IOC概念认识区别IOC与DI首先我们要知道IOC(Inverse of Control:控制反转)是一种设计思想,就是 **将原本在程序中手动创建对象的控制权,交由Spring框架来管理。**这并非Spring特有,在其他语言里面也有体现。IOC容器是Spring用来实现IOC的载体, IOC容器实际上就是个Map(key,value),Map 中存放的是各种对象。或许是IOC不够开门见山,Martin Fowler提出了DI(depende转载 2022-02-10 07:48:49 · 435 阅读 · 0 评论 -
从ReentrantLock的实现看AQS的原理及应用
从ReentrantLock的实现看AQS的原理及应用前言Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过ReentrantLock的基本特性和ReentrantLock与AQS的关联,来深入解读AQS相关独占锁的知识点,同时采取问答的模式来帮助大家理解AQS。由于篇转载 2022-02-10 07:44:38 · 238 阅读 · 0 评论 -
Spring Cloud Eureka 原理分析
Spring Cloud Eureka 原理分析1 简介在微服务架构下,服务端环境通常包含多个服务,同时每个服务也是一个无状态的多实例集群。这些服务和实例一般都是会动态变化的,可能会因为意外的故障或者人为的重启发版等原因,这些服务和实例的信息和数量随时会发生改变。因此微服务环境下需要一个服务注册中心来集中管理集群中各个服务实例的状态,这样服务的调用方就可以动态地从服务注册中心获取到当前可用的服务实例来发起调用。Eureka 就是服务发现中心的一种。Eureka 一开始是由 Netflix 开源的用于服转载 2022-02-10 06:42:40 · 488 阅读 · 0 评论 -
MySQL执行过程以及顺序
MySQL执行过程以及顺序前言:MySQL在我们的开发中基本每天都要面对的,作为开发中的数据的来源,MySQL承担者存储数据和读写数据的职责。因为学习和了解MySQL是至关重要的,那么当我们在客户端发起一个sql到出现详细的查询数据,这其中究竟经历了什么样的过程?MySQL服务端是如何处理请求的,又是如何执行sql语句的?本篇博客将来探讨这个问题:MySQL体系结构MySQL体系结构连接层最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接转载 2022-02-09 07:58:18 · 517 阅读 · 0 评论 -
系统高可用架构的几点思考
文章目录系统高可用架构一、高可用架构简介系统可用性的度量故障原因什么是高可用的系统架构二、高可用架构理论三、架构模式主备复制主从复制集群+分区四、高可用的应用负载均衡分布式 Session五、高可用的服务分级管理超时重试异步调用过载保护限流基于请求限流基于资源限流降级熔断幂等性设计六、高可用的存储数据备份失效转移失效确认访问转移数据恢复七、辅助手段异地多活发布流程系统监控参考资料系统高可用架构一、高可用架构简介系统可用性的度量系统不可用也被称作系统故障,业界通常用多个 9 来衡量系统的可用性。如转载 2022-02-09 07:43:06 · 814 阅读 · 0 评论 -
DDD领域驱动设计在互联网业务开发中的实践
至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD)。在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开发中所面临的问题。本文就先来讲一下这些问题,然后再尝试在实践中用DDD的思想来解决这些问题。过度耦合业务初期,我们的功能大都非常简单,普通.转载 2022-02-08 21:58:07 · 708 阅读 · 0 评论 -
图解5种IO模型
5种IO 模型同步阻塞、同步非阻塞、同步多路复用、异步阻塞(没有此情况)、异步非阻塞当调用一次 channel.read 或 stream.read 后,会切换至操作系统内核态来完成真正数据读取,而读取又分为两个阶段,分别为:等待数据阶段复制数据阶段阻塞 IO当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据(对于网络IO来说,很多时候数据在一开始还没有到达。比如,还没有收到一个完整的UDP包。这个时候kernel就要等待足够的数据到原创 2022-02-05 21:25:25 · 7512 阅读 · 3 评论 -
黄山归来不看岳:《Java开发手册(黄山版)》新增 11 条规约
黄山归来不看岳:《Java开发手册(黄山版)》新增 11 条新规约五岳归来不看山,黄山归来不看岳!从2015年到2022年,希望这是爱因斯坦的第三个小板凳,点点滴滴,希望对大家的程序员生涯有帮助《Java开发手册(黄山版)》下载1. 聊聊版本沿革最初的版本,没有名称,只有版本号,从1.0.0开始,后来感觉并不利于传播,改成以五岳来命名。因为华山最有武侠渊源,所以第一个版本叫做《华山版》,边上的码出真功有点向周星驰电影功夫最后的场景《如来神掌》致敬的味道;华山之后,去五岳至尊泰山朝圣,感受东海日原创 2022-02-05 10:33:51 · 5786 阅读 · 3 评论 -
深入分析ConcurrentHashMap的源码设计
深入分析ConcurrentHashMap的源码设计ConcurrentHashMap提供线程安全性和可伸缩性可伸缩性指的是一个应用程序在工作负载和可用处理资源增加时其吞吐量的表现情况。一个可伸缩的程序能够通过使用更多的处理器、内存或者I/O带宽来相应地处理更大的工作负载。锁住某个共享的资源以获得独占式的访问这种做法会形成可伸缩性瓶颈――它使其他线程不能访问那个资源,即使有空闲的处理器可以调用那些线程也无济于事**。为了取得可伸缩性,我们必须消除或者减少我们对独占式资源锁的依赖。**Concu转载 2022-02-04 20:58:12 · 298 阅读 · 0 评论 -
如何合理的规划一次jvm性能调优
JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响。但也有一些基础的理论和原则,理解这些理论并遵循这些原则会让你的性能调优任务将会更加轻松。为了更好的理解本篇所介绍的内容。你需要已经了解和遵循以下内容:1、已了解jvm 垃圾收集器2、已了解jvm 性能监控常用工具3、能够读懂gc日志4、确信不为了调优而调优,jvm调优不能解决一切性能问题...转载 2019-02-22 17:17:31 · 9972 阅读 · 0 评论