- 博客(89)
- 收藏
- 关注
原创 python循环
洗发水15元/瓶,香皂2元/个,牙刷5元/个,100购买这些商品,要尽可能把钱花完。列出所有组合 输出示例:洗发水: 0 瓶, 香皂: 2 个, 牙刷: 9 个, 价格 XX 元。while 和 for 的区别,while是不定循环,循环次数不固定。for的循环次数通常是固定的。洗发水:最多买 100÷15=6 瓶,即x的范围是 0~6。continue作用:跳过 continue 后面的语句。香皂:最多买 100÷2=50,即y的范围是0~50。牙刷:最多买100÷10,即z的范围是0-10。
2025-02-06 00:45:21
572
原创 使用istio实现权重路由
*概述:**Istio 是一个开源的 服务网格(Service Mesh)解决方案,主要用于管理、保护和监控微服务架构中的服务通信。它为微服务提供了基础设施层的控制功能,不需要更改应用程序的代码,从而解决服务之间的安全性、流量管理、可观察性等问题**工作机制:**通过在每个服务的旁边部署一个(通常是 Envoy)。这个代理会拦截所有进出该服务的流量,并将其发送到 Istio 的控制平面进行管理和监控。应用程序本身不需要进行修改,所有的功能都通过配置管理。
2025-02-03 15:05:19
975
原创 python中的if判读
3.os模块中的文件结合if判断。注意运行时不要输入带有引号的文件路劲。创建一个包含 1 到 10 的平方的列表,使用常规的方法可以这样写。0、None、空字符串都是 False。列表生成式案例,需求去除 _dsb。判断分为显式布尔值和隐式布尔值。是一个字符串列表,包含一些以。2.python多分支判断语句。3.python多分支判断语句。1.判断输入的字符是否为数字。找出包含dsb的关键字,2.多个判断表达式运用。
2025-02-01 10:38:54
316
原创 zookeeper的介绍和简单使用
zookeeper是一个开源的分布式协调服务,由Apache软件基金会提供,主要用于解决分布式应用中的数据管理、状态同步和集群协调等问题。通过提供一个高性能、高可用的协调服务,帮助构建可靠的分布式系统。Zookeeper采用Leader-Follower架构,集群通常由奇数个节点组成,以确保在网络分区或节点故障时仍能实现一致性与可用性。核心机制是ZAB协议(Zookeeper Atomic Broadcast),一种崩溃恢复的原子广播协议,保证了在网络分区和崩溃时的最终一致性和持久性。
2025-01-22 21:59:42
1238
原创 K8S的探针说明和使用方式
K8S中探针(Probes)是用于检查容器的健康状况和可用性的机制。探针可以自动判断应用的运行状态,并根据需要重启容器、替换容器或将流量路由到健康的实例。从而确保应用始终处于健康、可用的状态,并帮助自动化故障恢复
2025-01-19 23:49:23
1025
原创 filestream安装使用全套+filebeat的模块用法
filebeat模块是官方提供的一种对各种中间件进行日志采集的解决方案,用于简化常见服务(如 NGINX、MySQL、Apache 等)日志的采集、解析和可视化过程。模块在/etc/filebeat/modules.d/ 下, 启用模块本质上是将 /etc/filebeat/modules.d/ 目录下的文件更名为*.ymlfilebeat启用,禁用和查看模块# 查看支持的模块# 进行模块开启操作# 查看已开启的模块# 禁用模块。
2025-01-12 23:53:52
932
原创 filebeat采集应用程序日志和多行匹配
多行匹配官方文档为什么需要多行匹配,java程序报错很有特点,基本上看到行首连续出现的 at ,然后往上看就能快速定位问题。1.先看图。ES官方介绍了4种多行匹配模式描述:正则表达式匹配的行被视为前一行的延续或新多行事件的开始false如果设置为true:匹配到的行作为一个事件的开始,不匹配的行会参与到多行合并如果设置为false:匹配的行会参与到多行合并,反之不匹配的就作为一个事件的开始2.方式1的匹配模式示例:java报错采集提示:看懂官方的需要正则表达式基础示例图,正则匹配到的。
2025-01-02 23:59:24
1472
原创 pod生命周期和pod的优雅终止
postStart是在容器创建后执行的钩子函数,执行的时机是在容器启动后,用户定义的进程开始运行之前。常见的使用场景包括但不限于:初始化任务:例如,为容器中的应用程序创建配置文件或数据库表设置环境:为容器的应用程序准备环境,如初始化网络、存储或依赖服务健康检查:执行容器启动前的自定义健康检查如果postStart钩子执行成功,容器进程才会正常启动。如果钩子执行失败,容器将被标记为启动失败,并且 Kubernetes 会按照重启策略进行处理。postStart钩子可以是同步或异步的。
2024-12-29 23:23:21
463
原创 K8S中,pod的创建流程
OCI(Open Container Initiative)是一个由docker社区发起的项目,Docker、containerdCNI(Container Network Interface)网络配置:为容器分配IP地址、配置网络接口、设置路由CSI(Container Storage Interface),存储卷的创建与删除:支持动态创建和删除持久存储卷。卷的挂载与卸载:将存储卷挂载到容器中,使得容器能够读写数据。
2024-12-28 01:06:44
537
原创 helm函数
在 Helm 中,default 函数用于为变量提供默认值,以确保模板渲染不会因为变量未定义或为空值而失败在 Helm 模板中,toYaml 函数用于将变量转换为 YAML 格式的字符串。结合 nindent 函数,可以自动添加缩进,保持模板的可读性和结构的正确性,特别是在嵌套字段较多时大大简化书写with 语句使模板进入一个指定的上下文,从而简化对嵌套结构的访问
2024-12-25 23:59:48
631
原创 helm的常见使用方式
1.删除之前的helm,增加文件,内容如下欢迎使用wzy自定义Chart程序,当前的Chart版本号是: {{.Chart.Name}}:{{.Chart.Version}}正在使用的 应用 版本号为: {{.Chart.Name}}:{{.Chart.AppVersion}}当前的release名称: {{.Release.Name}}名称空间: {{.Release.Namespace}}修订版本: {{.Release.Revision}}
2024-12-24 00:45:31
303
原创 helm的介绍和安装
1.1 资源对象难以管理的问题helm是k8s资源清单的管理工具,它就像Linux下的包管理器,比如centos的yum,ubuntu的apthelm:命令行工具,主要用于k8s的chart的创建,打包,发布和管理。chart:应用描述,一系列用于描述k8s资源相关文件的集合。release:基于chart的部署实体,一个chart被helm运行后会生成一个release实体。这个release实体会在k8s集群中创建对应的资源对象。
2024-12-23 23:59:30
513
原创 K8S中的服务质量QOS
在 K8S 中,Pod 的 QoS(Quality of Service,服务质量) 是指对 Pod 资源(如 CPU、内存等)分配的一种分类机制,根据资源请求和限制的设置,确定 Pod 的优先级和资源调度策略
2024-12-22 23:58:04
445
原创 K8S中的PV、PVC介绍和使用
persistent volume claims持久卷声明,声明了应用程序所需要的存储大小、访问模式(如只读或读写)等。PVC 通过匹配已有的 PV 来获取存储资源,从而为容器提供所需的存储空间。如果有多个PV,那么PVC会择优匹配。
2024-12-22 01:40:01
865
原创 ansible的流程控制
Ansible 剧本的流程控制通过任务的顺序执行、条件语句(when)、循环(with_items 等)、错误处理(ignore_errors 和 block)、以及任务标签和角色来实现。可以根据条件动态控制任务执行,使用循环处理重复操作,通过块和故障恢复机制确保任务的容错性,并通过标签灵活选择任务的执行范围
2024-12-19 23:39:13
1193
原创 ansible剧本快速上手
1.在剧本中定义一个目录变量,此变量只会在当前剧本中生效# 自定义一个关于目录的变量vars:tasks:- name: 创建变量中的目录file:- name: debug测试变量空格问题debug:msg: "变量内容:{{ dir }}"引用变量时,什么时候加引号?2️⃣不加引号:变量前有参数了。
2024-12-18 00:39:39
720
原创 prometheus的介绍和二进制安装prometheus
二进制安装prometheus,以及如何使用node-exporter监控linux主机。附带prometheus的安装脚本和systemd管理prometheus
2024-12-16 01:25:04
960
原创 cephFS的使用以及K8S对接cephFS
1.创建两个存储池分别用于存储mds的元数据和数据2.创建一个文件系统,名称为"zhiyong18-cephfs"3.查看创建的存储池发现:存储池的状态无法正常使用,而且集群是有错误的(HEALTH_ERR),因此我们需要先解决这个问题在web页面中也有提示:All MDS ranks are unavailable. The MDS daemons managing metadata are down, rendering the filesystem offline.
2024-12-14 23:58:15
1154
原创 elasticsearch设置密码访问
默认ES是没有设置用户认证访问的,所以每次访问时,直接调相关API就能查询和写入数据。现在做一个认证,只有通过认证的用户才能访问和操作ES。
2024-12-13 23:55:50
1125
原创 ansible安装和常用模块的使用
ansible模块类似linux的命令举例:yum模块类似yum命令,目录/文件增删改查类似file模块…ansible模块使用说明命令模块 (默认)-a ‘要执行的命令’🔔 命令里不支持特殊符号shell支持特殊符号。仍要注意特殊字符script使用脚本模块使用…模块ansible-doc -s +模块名获取对应模块帮助ansible-doc +模块名/EXA获取示例。
2024-12-12 01:09:41
669
原创 top命令和系统负载
系统监视工具,查看swap统计信息以及系统的整体状态。vmstat还可以关于进程、内存、分页、块 I/O、陷阱和 CPU 活动的详细信息vmstat 5 3显示虚拟内存统计信息,每 5 秒报告一次,共报告 3 次vmstat -d查看磁盘信息打印sda磁盘信息vmstat -s显示各种事件的总计vmstat -t在输出中包含时间戳vmstat输出列说明r运行队列中等待 CPU 的进程数量b等待 I/O 的进程数量swpd已使用的虚拟内存(swap)的大小,单位是 KB。
2024-12-11 23:51:57
947
原创 mysql的执行计划分析和索引下推以及索引长度计算
执行计划(Execution Plan)是数据库查询优化的重要工具,用于展示数据库如何执行 SQL 查询的详细过程。它包含了查询操作的步骤、各个步骤的执行顺序、使用的索引、访问的表、连接方式、预计的成本等信息可以显示SQL语句最终执行方案,可以用于判断是否使用的最优索引方案。
2024-12-11 01:29:07
773
1
原创 K8S使用hostpath、NFS作为volumes案例
卷通过将宿主机文件系统上的路径挂载到 Pod 中,使得 Pod 内的容器可以访问该路径。1.创建一个pod,然后在 pod调度到的节点创建目录:/hostpath-test。可以实现pod访问宿主机上特定的日志文件或数据目录。可以实现在宿主节点和 Pod 之间共享数据。3.查看worker233节点数据被保留了。2.进入pod写入数据,然后删除pod。
2024-12-10 23:15:13
606
原创 K8S的常见volumes存储卷
emptydir是一种 K8S的一种存储卷类型,通常用在一个 Pod 中的多个容器之间共享数据挂载主机文件系统中的目录或文件。pod调度到节点,就会占用对应节点的目录从 ConfigMap 中挂载配置数据
2024-12-10 01:20:06
509
原创 docker的网络类型和使用方式
创建容器查看ip,2个容器的IP并不相同停止容器c1导致c2没有ip开启容器c1可以解决c2没网的问题# 没有手动添加hosts可以ping通。
2024-12-09 01:54:14
906
原创 harbor仓库安装和配置https证书
ca/ca.key包含生成的 RSA 私钥,用于签署证书和证书签名请求(CSR)。ca/ca.crt包含自签名的 X.509 证书,用于作为证书颁发机构(CA)的身份验证,供其他证书的验证使用。包含为生成的 RSA 私钥,用于保护与该域名相关的通信。证书签名请求,包含公钥和主体信息,通常用于向 CA 申请证书。扩展配置文件,为生成的证书提供附加信息,例如密钥用途和备用名称。由 CA 签名的 X.509 证书,适用于,可以用于 SSL/TLS 加密,确保与该域名的安全通信。
2024-12-08 23:53:02
901
原创 mysql的索引分类和索引优化
索引是帮助MySQL高效获取数据的排好序的数据结构;存储的内容是指向表中数据的指针。索引有多种:主键索引、辅助索引、前缀索引、联合索引。不同的索引应用场景不同。
2024-12-08 00:51:22
1308
原创 linux的磁盘管理
parted内部命令说明磁盘引导类型GPT/MBRp查看当前分区mkpart 分区名 开始 结束创建分区及分区名、分区大小rm +nuber删除分区resizepart调整已有分区的大小,如。
2024-12-07 23:45:53
780
原创 K8S对接ceph的RBD块存储
说明请阅读往期的ceph文章,本篇基于之前的ceph。K8S支持多种外部存储,当让ceph的RBD也是支持的。那么要如何使用?
2024-12-07 00:39:10
1273
原创 使用kibana实现es索引的数据映射和索引模版/组件模版
窗口 --> Stack Management --> kibana --> 索引模式,创建zhiyong18-map。4.创建地理位置图:Analytics --> Maps --> 点击右侧的添加图层 --> 选择文档。把索引中的字段生日映射为日期,并制定映射后的格式为年月日。3.去创建一条索引模式匹配创建的索引:zhiyong18-map(略)3.查看年龄,从大到小降序排序(注意,比较的是数字,数字大的在下面)1.自定义数据类型和创建索引。1.创建一条索引 lucky-wzy-01 验证之前的操作。
2024-12-06 01:40:32
1188
原创 K8S的ingress介绍和安装ingress
在没有ingress之前,只能基于svc的NodePort或者LoadBalancer实现内部的pod对外访问,如果遇到多个服务要监听80端口时。很明显无论哪种类型都无法实现,如果非要实现,就得在K8S集群外部部署一个LB设备,来代理到对应svc资源。而ingress就可以很好的解决这个问题。例如nginx的一个80端口可以给多个实例使用所谓的ingress指的是一种规则,基于用户访问的请求头路由到正确的svc。简单来说说就是7层代理。
2024-12-05 00:19:06
1132
原创 Ubuntu修改kube-proxy的工作模式为ipvs
如果首次安装集群时没有安装对应的ipvs模块,K8S的kube-proxy 默认是 iptables模式。查看kube-proxy的默认代理模式默认采用了iptables方式。8.验证kube-proxy组件工作模式生效 ,可以看到 IPVS 关键字。说明kube-proxy的工作模式已经切换为了IPVS。7.master节点操作:删除旧的kube-proxy pod,然后会创建新的kube-proxy pod,这样才会生效。4.在master节点操作:修改kube-proxy的工作模式为ipvs。
2024-12-04 20:26:35
291
原创 ceph的存储池管理
如果想要删除存储池必须让nodelete的值为false,且mon_allow_pool_delete为true。**总结:**nodelete和mon_allow_pool_delete属性都同时满足时,存储池才会被删除!2.创建存储池时可以指定pg数量 ,一般情况下,pg和pgp数量一致。查看其属性发现是可以删除的,不可被删除为false,那就是可以删除。4.修改zhiyong存储池的副本属性为2,再改为4。3.查看存储池的副本属性,副本数量为3。2.查看指定存储池的I/O拷贝信息,
2024-12-04 01:34:25
712
原创 数据库设置安全地update,update必须带上where条件
还真有,在数据库的配置文件 my.cnf,加入一句。这样数据库启动之后就会自动执行/opt/init.sql 里面的语句。在实际操作数据库的过程当中,稍有不慎就会误操作导致数据丢失。where 还没来得及写,不小心执行了。有没有一种方法一直生效呢。哪怕是数据库启动后自动执行。可惜 这种方式在,数据库重启后就失效了。解决方法:开启数据安全地执行。为0时,表示没有开启。
2024-12-03 23:42:05
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人