自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZhanBiaoChina的博客

终生学习

  • 博客(109)
  • 收藏
  • 关注

原创 DNS常用的域名记录

这表示 example.com 的权威 DNS 服务器是 ns1.example.com 和 ns2.example.com,记录的有效期为 3600 秒。这表示 example.com 的邮件服务器是 mail.example.com,优先级为 10,记录的有效期为 3600 秒。这表示 example.com 的 IP 地址是 192.0.2.1,记录的有效期(TTL)为 3600 秒。这表示 www.example.com 是 example.com 的别名,记录的有效期为 3600 秒。

2025-06-12 17:23:04 63

原创 Dockerfile 构建优化的方法

忽略不必要的文件:通过 .dockerignore 文件排除不必要的文件和目录,减少构建上下文的大小。避免将不必要的文件添加到镜像中:使用 .dockerignore 文件排除不必要的文件和目录。优化依赖文件的顺序:将不经常变化的文件放在前面,这样可以利用 Docker 的缓存机制。分离构建和运行环境:使用多阶段构建可以将构建环境和运行环境分开,从而减小最终镜像的体积。强制重新构建:在需要时使用 --no-cache 选项强制重新构建,避免缓存带来的问题。示例:优化后的 Dockerfile。

2025-05-28 11:15:53 439

原创 k8s Headless Service

无头服务(Headless Service)是 Kubernetes 中的一种特殊服务类型,它**不分配集群 IP(ClusterIP),而是直接暴露 Pod 的 DNS 记录。分布式系统:如分布式数据库(MySQL、PostgreSQL)、缓存集群(Redis、Elasticsearch)等,客户端可以直接访问每个 Pod。无头服务为 Kubernetes 中的有状态应用和分布式系统提供了灵活的网络访问方式,通过直接访问 Pod,避免了负载均衡的开销,同时简化了服务发现。

2025-05-28 11:10:10 549

原创 Ansible常用模块

src=nfs.example.com:/path/to/export:NFS 共享路径。removes=/path/to/file:如果文件不存在,则执行命令。job=‘/usr/bin/cleanup.sh’:要执行的命令。chdir=/path/to/directory:切换到指定目录。cmd=‘touch /path/to/file’:要执行的命令。job=‘/usr/bin/backup.sh’:要执行的命令。job=‘/usr/bin/report.sh’:要执行的命令。

2025-05-26 21:09:21 635

原创 Ansible常用Ad-Hoc 命令

ssh-copy-id -i ~/.ssh/id_dsa.pub 将本地用户的 SSH 公钥复制到远程主机的 ~/.ssh/authorized_keys 文件中,从而实现免密登录。-m <模块名> 指定使用的模块(如 ping, shell, copy)。-v / -vvv 输出详细日志(-v 到 -vvvv 详细度递增)。-a “<参数>” 传递模块的参数(格式为 key=value)。–become-user 提权后的用户(默认 root)。–start-at-task 从指定任务开始执行。

2025-05-25 19:34:40 447

原创 Ansible配置文件常用选项详解

Ansible 的主机清单文件(Inventory File)用于定义被管理的主机和组,支持灵活的主机分组、模式匹配及变量定义。控制是否自动收集主机信息(facts)。默认 implicit(隐式收集,可通过 gather_facts: False 关闭)。格式必须为 [start:end],支持数字和字母(如 web[a:d].example.com 生成 weba 到 webd)。文件路径:默认路径为 /etc/ansible/hosts,但可通过 ansible.cfg 或命令行参数自定义。

2025-05-25 15:49:28 737

原创 Ansible安装

etc/ansible/inventory:存放 Inventory 文件的目录,可以包含多个 Inventory 文件。这是 Ansible 的主配置目录,包含 Ansible 的主要配置文件和默认的 Inventory 文件。/etc/ansible/facts.d:存放主机事实(facts)的目录,用于定义主机的自定义变量。/etc/ansible/plugins:存放 Ansible 插件的目录,如连接插件、回调插件等。/etc/ansible/vars:存放变量文件的目录,用于定义全局变量。

2025-05-25 10:31:17 680

原创 rpm命令常用参数选项

V:验证已安装的软件包是否完整。–force 和 --nodeps:强制安装并忽略依赖关系和文件冲突。–nosignature 和 --nodeps:忽略签名和依赖关系。如果软件包尚未安装,它也会安装该软件包。–replacepkgs:替换已安装的软件包。–nodeps:忽略依赖关系并强制安装。–test:模拟安装,不实际安装软件包。–force:强制安装,忽略文件冲突。-ql:列出指定软件包安装的文件。-qc:列出指定软件包的配置文件。-qpR:检查软件包的依赖关系。安装软件包时替换已安装的软件包。

2025-05-25 09:37:38 239

原创 yum命令常用选项

在使用 yum 命令时,如果你只想下载软件包及其依赖包到本地,而不进行安装,可以使用 yumdownloader 工具。yumdownloader 是 yum-utils 包中的一个实用程序,专门用于下载软件包及其依赖项。默认情况下,yumdownloader 会将下载的软件包保存到当前目录。yumdownloader 命令可以下载指定的软件包及其依赖项。/path/to/destination 是你希望保存下载文件的目录。–urls:仅显示软件包的下载 URL,而不实际下载。是你想要下载的软件包名称。

2025-05-24 22:08:02 573

原创 Linux常用下载资源命令

c:断点续传,支持从上次中断的地方继续下载。-a:归档模式,递归同步文件并保留文件属性。-x 5 表示使用 5 个线程进行下载。-n 5 表示使用 5 个线程进行下载。-O 参数表示将文件保存为原始文件名。-O 参数表示将文件保存为原始文件名。-P :指定远程主机的 SSH 端口。-b:后台下载,下载过程在后台进行。-P :指定下载文件的保存路径。-q:静默模式,不显示下载过程。-d :指定下载文件的保存路径。-o :指定下载文件的保存名称。-s :指定同时下载的线程数。o :指定下载文件的保存名称。

2025-05-24 21:55:26 400

原创 k8s网络架构

同时,Calico 的网络策略功能确保了流量的安全性。Pod B (192.168.2.2) --> Node 2 (cali0) --> Node 2 (路由表) --> Node 1 (物理网络) --> Node 1 (路由表) --> Node 1 (cali0) --> Pod A (192.168.1.2)Flannel Agent 在 Node 1 上创建一个虚拟网络接口(如 veth),并将一端连接到 Pod A 的网络命名空间,另一端连接到虚拟网桥(如 flannel.1)。

2025-05-23 20:27:16 1168 2

原创 什么是endpoints?

Endpoints 列出了所有可以提供服务的 Pod 的 IP 地址和端口,Kubernetes 的代理(如 kube-proxy)可以根据这些信息实现负载均衡。当 Pod 的状态发生变化时,Endpoint Controller 会自动更新 Endpoints 对象,确保其始终反映当前可用的 Pod。Endpoints 会自动更新,以反映当前可用的 Pod。Service 定义了服务的虚拟 IP 和端口,而 Endpoints 则列出了所有实际提供服务的 Pod 的 IP 和端口。

2025-05-21 21:54:31 375

原创 k8s-NetworkPolicy

通过使用 NetworkPolicy,可以实现更细粒度的网络访问控制,增强集群的安全性。通过合理配置 NetworkPolicy,可以实现细粒度的网络访问控制,增强集群的安全性。在这个例子中,带有 role: frontend 标签的 Pod 只能通过 TCP 端口 80 与带有 role: backend 标签的 Pod 通信。基于标签的策略:通过 Pod 的标签选择器来定义策略,使得策略的管理更加灵活。限制 Pod 之间的通信:指定哪些 Pod 可以相互通信,哪些不能通信。

2025-05-21 21:47:52 887

原创 k8s面试题-ingress

当 Deployment 更新 Pod 时,Endpoint Controller 会更新 Service 的 Endpoint 列表,移除旧 Pod 的 IP 地址并添加新 Pod 的 IP 地址。当 Pod 更新后,Ingress Controller 会根据新的 Endpoint 列表重新分配流量,确保流量能够到达新的 Pod。当你更新 Deployment 的配置(例如修改镜像版本)时,Kubernetes 的控制器会根据新的配置逐步替换旧的 Pod,创建新的 Pod 并删除旧的 Pod。

2025-05-21 21:31:15 566

原创 k8s-ServiceAccount 配置

*Role(角色)**是 Kubernetes 中定义权限的资源对象,它只能在特定的命名空间内生效。**RoleBinding(角色绑定)**是将 Role 分配给用户、组或 ServiceAccount 的资源对象。ServiceAccount 的 Token 是一个自动创建的 Secret,用于 Pod 访问 Kubernetes API。Pod 可以通过 spec.serviceAccountName 字段指定使用某个 ServiceAccount。

2025-05-21 20:39:37 643

原创 k8s备份namespace

如果使用 kustomize 进行配置管理,也可以通过 kustomize 导出 Namespace 的定义。Velero 是一个专门用于 Kubernetes 集群备份和恢复的工具,支持将备份数据存储到对象存储中。通过 kubectl 命令可以导出指定 Namespace 中的资源,生成 YAML 文件进行备份。kubectl-neat 是一个插件,可以导出更干净的配置文件。使用 kubectl-neat 插件备份。1.使用 kubectl 命令备份。使用 kustomize 备份。

2025-05-18 21:43:54 409

原创 nginx面试题

正向代理定义 :正向代理(Forward Proxy)是一种代理服务器,它位于客户端和目标服务器之间。客户端将请求发送给正向代理服务器,正向代理服务器再根据客户端的请求向目标服务器转发请求,并将目标服务器的响应返回给客户端。正向代理就像是客户端的一个 “代言人”,客户端通过它来访问外部资源。工作原理 :例如,公司内部网络中的员工需要访问互联网。公司的网络管理员设置了正向代理服务器。当员工在浏览器中输入一个外部网页的 URL 时,浏览器会将请求发送到正向代理服务器。

2025-05-05 23:07:00 1132

原创 Linux命令-iostat

它可以显示 CPU 的使用情况以及设备和分区的输入/输出统计信息,对于诊断系统性能瓶颈(如磁盘或网络活动缓慢)特别有用。await 每个 I/O 请求的平均等待时间(包括排队时间和处理时间)。此命令将显示自系统启动以来的 CPU 和设备 I/O 统计信息。avgrq-sz 每个 I/O 请求的平均大小(以扇区为单位)。Blk_read/s 每秒从设备读取的数据量(以块为单位)。Blk_wrtn/s 每秒向设备写入的数据量(以块为单位)。Blk_wrtn 总计向设备写入的数据量(以块为单位)。

2025-04-27 11:41:35 827

原创 docker-compose容器编排

isolation :设置容器的隔离技术,如 default、process、hyperv(Windows 特有)。dns_search :指定 DNS 搜索 animated-icon:用于服务发现。profiles :指定服务所属的配置文件,用于控制服务在不同环境下是否启动。cap_add 、 cap_drop :添加或删除容器的 Linux 能力。cgroup_parent :指定容器的 cgroup 父节点。platform :指定服务的平台,如 linux/amd64。

2025-04-27 10:56:55 546

原创 k8s基于角色的访问控制(RBAC)

admin :允许管理员在名字空间内执行授权,可授予对名字空间中的大多数资源的读 / 写权限,但不允许对资源配额或者名字空间本身进行写操作。cluster-admin :允许超级用户在平台上的任何资源上执行所有操作,可授权对集群中以及所有命名空间中的全部资源进行完全控制。rules:定义允许的操作,apiGroups指资源所属的API组,resources指资源类型,verbs指允许的操作。:定义集群范围内的权限规则,适用于集群级别的资源或跨命名空间的访问权限。

2025-04-24 16:28:37 973

原创 Dockerfile指令

说明:指定基础镜像,所有 Dockerfile 必须以这个指令开始。说明:设置镜像在被其他镜像作为基础镜像时自动执行的指令。说明:设置工作目录,后续指令默认在这个目录下执行。说明:覆盖容器的入口点,与 CMD 配合使用。说明:定义构建时的变量,仅在构建过程中有效。说明:设置环境变量,可以在后续指令中使用。说明:指定容器启动时默认执行的命令。说明:指定默认的 shell 类型。说明:声明容器运行时监听的端口。说明:设置容器的健康检查命令。说明:指定运行容器时的用户。说明:指定停止容器的信号。

2025-04-24 16:12:52 318

原创 Linux命令-ltrace

trace 是一个用于跟踪进程调用库函数的工具,可以帮助分析程序的行为和性能问题。-c 计算每个库函数的调用次数和时间,并在程序退出时打印摘要。-f 跟踪由 fork 或 clone 调用产生的子进程。-p 附着在指定的进程 ID 上进行 ltrace。-u 使用指定的用户 ID 或组 ID 运行命令。-e 指定要跟踪的事件,例如特定函数。-V 打印 ltrace 的版本信息。-T 输出每个调用过程的时间开销。-s 设置打印的字符串最大长度。-v 详细显示库函数调用的参数。-o 将输出定向到指定的文件。

2025-04-24 11:15:33 251

原创 Linux命令-strace

strace 是一个用于跟踪系统调用和信号的工具,可以帮助分析程序的行为和问题。这将只跟踪与网络相关的系统调用,如 socket、connect、sendto、recvfrom 等。这将记录 ls -l 命令的系统调用统计信息,并将输出保存到 stats.log 文件中。这将只跟踪与文件操作相关的系统调用,如 open、close、read、write 等。这将跟踪 ls -l 命令的系统调用,并将输出保存到 trace.log 文件中。这将跟踪进程 ID 为 1234 的进程的系统调用。

2025-04-24 11:10:51 267

原创 Linux命令-perf

perf 是一个强大的性能分析工具,用于分析 Linux 系统和应用程序的性能。它提供了多种子命令和参数,可以用于性能数据的收集、分析和可视化。这将记录指定进程 10 秒钟的性能数据,并生成一个报告供分析。这将记录系统 10 秒钟的性能数据,并生成一个报告供分析。这将帮助快速了解系统中的性能瓶颈,并定位到最耗时的函数。这将生成一个火焰图,用于可视化性能热点。这将列出所有可用的硬件和软件性能事件。这将显示系统范围内的性能统计信息。记录系统范围的性能数据。

2025-04-24 09:21:04 559

原创 Linux命令-tcpdump

可以通过 tcpdump -D 或 tcpdump --list-interfaces 列出系统中的所有网络接口。-X 以 16 进制和 ASCII 码形式打印数据包的数据(不包括数据链路层头部)-XX 以 16 进制和 ASCII 码形式打印数据包的数据(包括数据链路层头部)指定要捕获的数据包数量。-dd 将匹配信息包的代码以 C 语言程序段的格式输出。-w 将捕获的信息保存到文件中,不分析和打印到屏幕。-ddd 将匹配信息包的代码以十进制形式输出。-S 将 TCP 的序列号以绝对值形式输出。

2025-04-23 22:28:33 813

原创 LInux平均负载

*例如,系统有4个CPU核心,平均负载为6,说明有2个进程在等待CPU资源。**低于核心数:平均负载低于CPU核心数时,每个CPU核心都能得到充分的利用,系统处于良好的运行状态。**例如,系统有4个CPU核心,平均负载为2,这时系统有能力处理更多的任务。当进程需要CPU时间片来执行时,如果CPU正在忙于处理其他进程的任务,就会导致请求 CPU 的进程排队等待,从而增加平均负载。**等于核心数:平均负载等于CPU核心数时,系统已经处于满负荷状态,所有CPU核心都在繁忙地处理任务。

2025-04-23 21:58:01 440

原创 Linux命令-sar

0.30 的 %user 表示在总共采样的 5 次(5 秒)过程中,平均有 0.30% 的 CPU 时间被用户空间进程占用,0.10 的 %system 表示平均有 0.10% 的时间用于系统进程,0.10 的 %iowait 表示平均有 0.10% 的时间在等待 I/O,99.49 的 %idle 表示平均有 99.49% 的 CPU 时间处于空闲状态,说明整个系统的 CPU 使用率很低。例如在 08:17:3 PM6 这一行,0.51 表示在这一秒内,用户空间进程占用了 0.51% 的 CPU 时间。

2025-04-23 21:54:53 774

原创 Linux命令-pidstat

p <进程ID> :指定要监控的进程 ID,如果不指定则监控所有进程。-G <正则表达式> :仅报告命令名称与给定的正则表达式相匹配的进程。System :内核进程使用 CPU 的时间(单位:毫秒)。minflt/s :每秒最小页面错误次数(单位:次/秒)。majflt/s :每秒重大页面错误次数(单位:次/秒)。User :用户进程使用 CPU 的时间(单位:毫秒)。-U <用户名> :指定用户,仅报告该用户的进程。VSZ :虚拟内存使用量(单位:KB)。RS :读取的扇区数(单位:扇区/秒)。

2025-04-22 22:08:20 341

原创 正向代理和反向代理

例如,一个网站有多个后端 Web 服务器,外部用户向网站的域名发起请求,该域名对应的反向代理服务器接收到请求后,根据负载均衡策略(如轮询、最少连接数等)将请求转发给其中一台后端 Web 服务器,由后端服务器处理请求并返回结果,再通过反向代理服务器将结果返回给外部用户。员工电脑将访问网站的请求发送给正向代理服务器,正向代理服务器再向该网站发起请求,获取网页内容后返回给员工电脑。例如,在浏览器的网络设置中,输入正向代理服务器的 IP 地址和端口,之后浏览器的网络请求就会通过这个代理服务器进行转发。

2025-04-22 17:03:45 485

原创 块存储、文件存储和对象存储的特点、应用场景及区别

特点:块存储将数据分割成固定大小的块,每个块都有唯一的标识符。特点:对象存储将数据和元数据存储在一起,形成一个对象。对象存储通过唯一的对象标识符进行访问,适合大规模数据存储。特点:文件存储以文件为单位进行数据管理,文件存储在文件系统中,具有目录结构和文件属性。区别:文件存储适合管理大量文件,具有文件系统结构,便于共享和管理。区别:对象存储适合海量非结构化数据的存储,具有高扩展性和持久性。块存储、文件存储和对象存储的特点、应用场景及区别。对象存储:高扩展性、持久性,适合云存储和大数据。

2025-04-15 22:33:13 244

原创 k8s亲和力和非亲和力

作用:确保在调度时,Pod 不会被调度到不符合条件的节点上。作用:确保在调度时,Pod 只会被调度到满足条件的节点上。作用:用于控制 Pod 的调度行为,确保 Pod 被调度到满足特定条件的节点上,或者避免被调度到某些节点上。这个例子表示 Pod 只会被调度到已经运行了标签为 app=web 的其他 Pod 的节点上。这个例子表示 Pod 不会被调度到已经运行了标签为 app=db 的其他 Pod 的节点上。作用:用于控制 Pod 的调度行为,确保 Pod 被调度到满足特定条件的节点上。

2025-04-13 20:58:18 915

原创 k8s污点和容忍

在Kubernetes中,污点(Taints)和容忍(Tolerations)是一种机制,用于控制Pod的调度行为。这表示容忍的污点必须满足键为 key1、值为 value1,并且污点的效果为 NoSchedule。这表示容忍的污点只要键为 key2 即可,无论它的值是什么,只要污点的效果为 NoExecute。**值(Value):**与键相关联的值,通常用来表示污点的具体信息。-含义 ****:只要污点的键存在即可,不需要匹配具体的值。**键(Key):**表示污点的唯一标识符。

2025-04-13 20:47:48 373

原创 docker面试题

如果用户在运行容器时指定了命令,这些命令会被作为参数传递给 ENTRYPOINT 定义的命令。ENTRYPOINT 提供了一种更固定的行为,通常用于确保容器始终以某种方式运行。

2025-04-13 20:27:22 567

原创 kubernetes常见Pod状态

排查思路:检查Pod配置中的镜像名称是否正确,包括镜像仓库地址、镜像名称和标签;如果是私有仓库,检查ImagePullSecrets配置是否正确,确保Pod的服务账号具有正确的镜像拉取权限。排查思路:查看容器的日志,使用kubectl logs --previous命令查看上一次运行的日志,找出容器崩溃的原因;排查思路:检查Pod配置中的镜像拉取策略,将其设置为合适的策略,如Always、IfNotPresent等,然后重新创建Pod。排查思路:检查网络插件是否正常,是否存在配置错误;

2025-04-13 18:24:37 858

原创 git常用命令

创建或编辑 .gitignore 文件,添加需要忽略的文件模式。1.仓库初始化与克隆。

2025-04-13 15:39:27 259

原创 Linux命令-awk常用参数

它通常用于总结性的操作,比如计算总和、平均值、统计次数等。split(s, a, r) 将字符串 s 按照分隔符 r 分割,并将结果存储在数组 a 中。index(s, t) 返回 s 中字符串 t 的第一个位置,索引从 1 开始,未找到返回 0。substr(s, p, n):返回字符串 s 中从位置 p 开始长度为 n 的子字符串。gsub(r, s, t) 将字符串 t 中所有匹配正则表达式 r 的部分替换为 s。substr(s, p, n) 返回字符串 s 中从 p 开始长度为 n 的后缀部分。

2025-04-13 15:16:33 680

原创 Nginx 499 错误的原因及解决方法

解决方法:调整 Nginx 的超时设置,如 proxy_read_timeout 和 proxy_send_timeout。解决方法:使用 proxy_ignore_client_abort on 参数,忽略客户端中断。增加 proxy_read_timeout 和 proxy_send_timeout 的值。忽略客户端中断,避免因客户端主动关闭连接而导致的 499 错误。确保客户端和中间代理的超时设置合理,避免因超时导致的连接中断。解决方法:优化服务端响应时间,或调大客户端的连接超时时间。

2025-04-08 10:18:27 848

原创 zookeeper平滑扩缩容

在新节点上安装 ZooKeeper,并配置 zoo.cfg 文件,确保其包含集群中所有现有节点和新节点的配置。监控和日志:在操作过程中,监控集群的状态和性能,并记录相关日志,以便在出现问题时能够快速定位和解决。重要性:在操作过程中,监控集群的状态和性能,并记录相关日志,以便在出现问题时能够快速定位和解决。确定要移除的节点,并确保集群中剩余节点数量满足过半数原则,以保证集群能够正常选举 Leader。实现方式:配置文件的正确设置和节点之间的通信,确保新节点能够顺利加入集群并进行数据同步。

2025-04-08 10:08:14 759

原创 Linux中特殊的变量

1.$#含义:表示传入脚本或函数的参数数量。用法:用于检查用户是否提供了足够的参数。2.$?含义:表示上一条命令的退出状态。如果命令成功执行,值为 0;如果失败,值为非 0。用法:用于检查命令是否成功执行。3.$1 到 $7含义:分别表示脚本或函数接收到的第 1 到第 7 个参数。用法:用于访问脚本或函数的参数。综合示例。

2025-04-07 11:26:35 351

原创 shell脚本中捕获键盘中断信号trap

在 Shell 脚本中,可以通过 trap 命令捕获键盘中断信号(通常是 SIGINT,即 Ctrl+C)。当用户按下 Ctrl+C 时,SIGINT 信号被捕获,执行 handle_interrupt 函数。trap 命令用于捕获信号并执行相应的命令或函数。SIGINT(信号编号为 2)是键盘中断信号。运行后,按下 Ctrl+C,脚本会捕获键盘中断信号并执行清理操作。当捕获到 SIGINT 信号时,执行这个函数。SIGINT 是要捕获的信号(键盘中断信号)。脚本进入一个无限循环,模拟长时间运行的任务。

2025-04-06 21:58:30 390

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除