- 博客(108)
- 收藏
- 关注

原创 kubernetes online depoly | 快速部署kubernetes v1.30 集群 | 部署Cilium组件
Cilium利用Linux内核中的eBPF功能,实现了高效的网络策略执行、可观测性以及服务负载均衡,不仅解决了kube-proxy在性能和扩展性上的瓶颈,还提供了更为灵活和强大的网络控制能力。页面上半部分是kube-system 命名空间下的的数据流向图,官方叫做Service Map,默认情况下可以自动发现基于网络 3 层和 4 层的访问依赖路径,能看到 Hubble-UI 组件和 Hubble 组件是通过 GRPC 进行通信的,非常有趣。随着云原生技术的普及,越来越多的业务实现了k8s容器化。
2025-02-20 00:33:30
1114

原创 MAAS | Ollama 搭建本地 AI 大模型 deepseek&Web 界面调用
Ollama 是一个基于 Go 语言的本地大语言模型运行框架,类 Docker 产品(支持 list,pull,push,run 等命令),事实上它保留了 Docker 的操作习惯,支持上传大语言模型仓库 (有 deepseek、llama 2,mistral,qwen 等模型,你也可以自定义模型上传)。模型运行之后,会默认进入到交互状态,你可以按下 Ctrl + D 退出交互,但此时模型并不会退出,仍旧可以正常通过 Api 接口交互。
2025-02-11 23:36:15
1092

原创 快速搭建GPU环境 | docker、k8s中使用gpu
device-plugin 以 DaemonSet 方式运行到集群各个节点,以感知节点上的 GPU 设备,从而让 k8s 能够对节点上的 GPU 设备进行管理。nvidia-container-runtime 在中间拦截了容器 spec,就可以把 gpu 相关配置添加进去,再传给 runC 的 spec 里面就包含 gpu 信息了。调用链从 containerd --> runC 变成 containerd --> nvidia-container-runtime --> runC。
2025-02-07 00:01:32
3001
9

原创 Kubernetes 深入浅出系列 | 容器剖析之容器镜像原理
本章介绍了以 overlayfs 作为存储驱动的的镜像存储原理其中每层的镜像数据保存在 /var/lib/docker/overlay2//diff 目录下,init 层数据保存了在 /var/lib/docker/overlay2//diff 目录下,最后统一视图(容器层)数据在 /var/lib/docker/overlay2//diff 目录下,docker 通过 image 元数据和 layer 元数据利用内容寻址(chainID)将这些目录组织起来构成容器所运行的文件系统。
2024-10-15 23:12:09
899

原创 Kubernetes 深入浅出系列 | 容器剖析之容器基本实现原理
- Docker 主要通过如下三个方面来实现容器化: - ① 使用操作系统的 namespace 隔离系统资源技术,通过隔离 网络、PID 进程、系统信号量、文件系统挂载、主机名和域名,来实现在同一宿主机系统中,运行不同的容器,并且每个容器之间是 相互隔离,运行互不干扰 。 - ② 使用操作系统的 cgroups 系统资源配额功能,限制资源包括:CPU、内存(Memory)、块设备(Blkio)、网络(Network)。 - ③ 通过 OverlayFS 数据存储技术,实现容器 镜像 的物理存储
2024-09-24 22:18:09
1067

原创 Kubernetes 系列 | k8s入门运维
可以通过查看Pod的Condition列表了解更多信息,pod的Condition指示pod是否已达到某个状态,以及为什么会这样,与状态相反,一个Pod同时具有多个Conditions。
2024-09-08 22:00:26
5976
4

原创 Kubernetes 卷存储|kubenetes 卷挂载ssh公私钥实现集群pod免密和宿主机与pod免密
SSH公钥和私钥是用于SSH(Secure Shell)协议中的一对密钥,用于身份验证和安全通信。SSH是一种加密的网络协议,常用于在不安全的网络中安全地进行远程登录和执行命令。公钥是密钥对中公开的部分,可以安全地分享给任何人或存储在远程服务器上,没有泄露风险。公钥通常用于加密会话密钥、验证数字签名或加密可以用相应的私钥解密的数据。在SSH登录认证过程中,公钥被放置在远程服务器上用户账号的~/.ssh/authorized_keys文件中。
2024-04-18 18:55:41
1240

原创 Kubernetes CNI Calico:Route Reflector 模式(RR) calico IPIP切换RR网络模式
Calico 路由反射模式是一种 BGP 互联方案,用于解决大规模网络中路由信息的分发和同步问题。在 Calico 的路由反射模式中,路由反射器(Route Reflectors)被用来集中管理路由信息,以减少网络中的路由信息数量和减小路由信息的分发规模。在 Calico 的路由反射模式中,路由反射器会收集来自其他节点的路由信息,并将其保存在本地。然后,这些路由信息会被分发给其他节点,以便它们能够学习到所有可达的路由。
2024-02-06 15:58:54
1894
原创 Kubernetes finalize | namespace卡Terminating&finalizers删除失败
在 Kubernetes 中,当删除一个 Namespace 时,控制平面并不会立即将其从集群中移除,而是首先尝试优雅清理该命名空间下所有资源对象。如果其中某个资源(如 PVC、Pod、CRD 对象等)挂起或其 finalizer 未能完成,则整个 Namespace 会无限卡在 Terminating 状态。
2025-04-23 00:09:49
405
原创 Kubernetes 深入浅出系列 | 容器剖析之容器安全
容器提升了交付效率,但不当使用 --privileged 或以 root 用户运行,可能带来严重安全隐患。本文系统解析容器特权机制风险,并介绍 User Namespace 与 Rootless 等实用加固方案,助你构建更安全的容器环境。
2025-04-10 00:01:50
1105
原创 浅谈网络 | 容器网络之Cilium
Cilium 是一个开源网络和安全项目,专为 Kubernetes、Docker 和 Mesos 等容器管理平台设计,旨在为容器化环境中的应用程序提供透明的网络连接和安全保护。它基于 Linux 内核中的 eBPF 技术,能够在内核层面上动态插入安全、可见性和网络控制逻辑,支持传统网络安全(如防火墙和访问控制)以及更精细的 API 和进程级安全,确保容器间通信不受威胁。
2025-02-20 23:02:22
1087
原创 MAAS | DeepSeek本地部署如何开启联网搜索?
Page Assist 是一款开源浏览器扩展,专为本地 AI 模型提供侧边栏和 Web UI,便于用户在网页上直接与 AI 互动。它支持多种任务,包括网页内容分析、视觉模型交互、极简 Web UI 访问本地 AI、联网搜索,以及在侧边栏内直接聊天和处理 PDF、CSV、TXT、MD、DOCX 等文档,提升信息获取和处理效率。
2025-02-11 23:31:13
2525
原创 浅谈网络 | 容器网络之Calico
BGP(边界网关协议)是 Linux 内核原生支持的、无中心的路由协议,广泛用于数据中心和互联网服务提供商(ISP)之间的路由信息交换。通过 TCP 连接(通常是 179 端口)在边界网关(Router)之间传播路由信息。维护自治系统(AS)间的路由规则,实现全局网络连通性。采用路径向量协议(Path Vector Protocol)进行路由决策,确保数据包能够最优地到达目标网络。
2025-02-08 00:30:04
704
原创 浅谈网络 | 容器网络之Flannel
Flannel 的底层实现实际上是一种 overlay 网络(除了 host-gw),把某一协议数据包封装在另一种网络进行路由转发。常用支三种模式:UDP、VXLAN、host-gw。
2025-01-30 23:15:45
1138
原创 Kubernetes Prometheus 系列 | avg等聚合函数能查出值,但直接label查询却查不到值。
上图中即时查询这个序列实际的数据仅有1分钟的点,且最后一个点是stale marker(标记序列结束),这种instant vector的查询语句,看到stale marker的时候,会忽略该标记前的序列(0 1 2 3为stale marker前的点),如果stale marker后没有其他点了,那么该时间步的结果就会为NaN(不展示)数据中有stalemarker点,直接用label的查询看到stalemarker点就会忽略之前的点(因为他找的是最新的有效点)
2025-01-21 00:40:46
356
原创 浅谈网络 | 容器网络
容器是一种相较于虚拟机更为轻量级的资源隔离技术,其核心依赖于namespace和cgroup两项关键技术:namespace实现了逻辑上的隔离感,使容器看似独立运行;而cgroup则负责资源使用的隔离,确保容器在资源分配上的独立性。在网络连接方面,容器与虚拟机的接入物理网络方式颇为相似。它们通常通过桥接技术,使得位于同一物理机上的容器能够相互通信。若需访问外部网络,最简单且常见的方法是通过NAT(网络地址转换)技术来实现。
2024-12-14 23:34:32
605
原创 Kubernetes 系列 | 容器监控之那些丢失的指标
当把 k8s 升级到 高版本后,发现监控中有些指标都是空值,例如container_fs_usage_bytes和container_fs_limit_bytes无Pod label(其他container_fs可能也无)、container_network_tcp/udp 等都为0。
2024-12-12 16:53:17
541
原创 浅谈网络 | 云网络隔离GRE/VXLAN
GRE 是一种点对点的隧道模式,而 VXLAN 支持组播隧道模式。它们都需要在 Tunnel Endpoint 进行封装和解封装,以实现跨物理机的互联。OpenvSwitch 可以作为 Tunnel Endpoint,通过配置流表规则,将虚拟机网络与物理机网络进行隔离和转换,从而实现高效的跨机通信。
2024-12-09 23:07:30
1216
原创 浅谈网络 | 云网络
如果使用桥接网络,当你登录虚拟机里看 IP 地址的时候会发现,你的虚拟机的地址和你的笔记本电脑的,以及你旁边的同事的电脑的网段是一个网段。在数据中心里面,采取的也是类似的技术,只不过都是 Linux,在每台机器上都创建网桥 br0,虚拟机的网卡都连到 br0 上,物理网卡也连到 br0 上,所有的 br0 都通过物理网卡出来连接到物理交换机上。这样,所有的网络包都会发送到这个虚拟网卡上。在这种方式下,你登录到虚拟机里面查看 IP 地址,会发现虚拟机的网络是虚拟机的,物理机的网络是物理机的,两个不相同。
2024-12-08 16:27:14
1080
原创 Kubernetes Nginx-Ingress | 禁用HSTS/禁止重定向到https
客户请求经过ingress到服务后,默认加上了strict-transport-security,导致客户服务跨域请求失败,具体Response Headers信息如下;分析nginx-ingress-controller组件默认是开启HSTS的,有些浏览器第一次基于PLAIN HTTP访问时,服务端(开启HSTS)会在返回给客户端的响应头里携带Non-Authoritative-Reason: HSTS字段,说明服务端支持HSTS,当客户端也支持的情况下下次会直接以HTTPS方式访问服务端。
2024-12-08 14:52:39
1393
原创 浅谈网络 | HTTPDNS协议与CDN
与传统的 DNS 解析不同,HTTPDNS 自建并管理域名解析服务,相当于每个服务商或应用根据自己的需求,搭建一个专属的 “地址簿”,不再依赖统一的 DNS 解析服务。与传统 DNS 的缓存不同,这里的缓存是由手机应用自己管理的,而不是由运营商统一控制。由于客户端嵌入了 SDK,HTTPDNS 能够直接获取客户端的地理位置、运营商信息、网络环境等,避免了本地 DNS 解析过程中可能出现的缓存、转发和 NAT 等问题,从而保证了客户端的位置信息准确无误,能够获得权威的 DNS 解析结果。
2024-12-07 17:04:39
983
原创 Kubernetes 深入浅出系列 | 容器编排与作业调度之Deployment
Kubernetes 中,Deployment 控制器是用于管理应用程序生命周期的核心对象。Deployment 通过管理 ReplicaSet 来间接控制 Pod,确保在任何时刻都能维持指定数量的 Pod 副本。这种间接管理使得 Deployment 功能比 ReplicaSet 更加强大,可以支持如滚动更新、回滚等。自动部署和滚动更新:支持对应用的无缝更新,保证在更新过程中系统的高可用性。回滚:允许用户回退到之前的版本,确保在部署过程中出现问题时可以迅速恢复。
2024-12-07 17:04:09
1023
原创 浅谈网络 | DNS协议
在网络世界里,我们记得住网站的名称,但很难记住网站的 IP 地址。为了解决这个问题,就需要一个类似“地址簿”的东西,这就是 **DNS 服务器**。
2024-12-01 16:48:53
1103
原创 浅谈网络 | 流媒体与P2P协议
DHT 是一种分布式哈希表,每个加入 DHT 网络的节点都负责存储网络中的资源信息和其他成员的联系信息。简单来说,所有节点共同构成一个庞大的分布式数据库,分担信息存储和查询的工作。
2024-12-01 14:03:29
1711
原创 浅谈网络 | 应用层之HTTP协议
HTTP 协议几乎是每个人上网时接触到的第一个协议,但它又是一个容易被忽略的协议,因为我们日常使用它时,很少关注其背后的细节。为了更具体地理解 HTTP 协议,我们可以从一个实际场景开始,比如访问一个新闻网站:http://www.163.com。这个地址是一个 URL(Uniform Resource Locator,统一资源定位符)。
2024-11-28 23:43:41
1115
原创 浅谈网络 | 应用层之HTTPS协议
**对称加密** 是一种简单高效的加密方式。加密和解密使用相同的密钥。也就是说,发送方和接收方共享同一个密钥来对数据进行加解密。为了确保数据安全,密钥必须保密,只有通信双方知道,不能泄露给其他人。**非对称加密** 则更为复杂,使用的是成对的密钥:一个是公开的 **公钥**,另一个是私密的 **私钥**。非对称加密的特点是:- 用公钥加密的数据只能由私钥解密。- 用私钥加密的数据只能由公钥解密。
2024-11-28 23:42:55
868
原创 浅谈网络 | 传输层之TCP协议
相比 UDP 的简单信任,TCP 更加谨慎,它秉承“性恶论”的设计理念,默认认为网络环境是恶劣的,充满了丢包、乱序、重传和拥塞等问题。为了保证数据能够顺利送达,它从算法层面引入了许多机制来保障可靠性。
2024-11-25 23:25:51
1332
原创 浅谈网络 | 传输层之套接字Socket
Socket 这个名字非常形象,可以理解为“插口”或“插槽”。虽然我们是编写软件程序,但可以把它想象成两端用网线连接,一头插在客户端,另一头插在服务端,通过这条“网线”进行通信。因此,在通信开始之前,客户端和服务端都需要建立一个 Socket。
2024-11-25 23:25:09
798
原创 浅谈网络 | 传输层之UDP协议
如果将 TCP 比作成熟的社会人,UDP 则是头脑简单的小朋友。TCP 复杂,UDP 简单;TCP 维护连接,UDP 谁都相信;TCP 会坚持知进退;UDP 愣头青一个,勇往直前;UDP 虽然简单,但它有简单的用法。它可以用在环境简单、需要多播、应用层自己控制传输的地方。例如 DHCP、VXLAN、QUIC 等。
2024-11-21 22:45:07
789
原创 MAAS | 使用 tmux 运行模型
tmux 是一个强大的终端复用工具,非常适合长时间运行的任务(例如训练模型),即使连接断开,任务也能继续运行。以下是使用 tmux 跑模型的常用方法。
2024-11-21 22:43:52
757
原创 Kubernetes 深入浅出系列 | 容器编排与作业调度之Pod
Pod 里的所有容器,共享的是同一个 Network Namespace,并且可以声明共享同一个 Volume。Pod 最重要的一个事实是:它只是一个逻辑概念。Kubernetes 真正处理的,还是宿主机操作系统上 Linux 容器的 Namespace 和 Cgroups,而并不存在一个所谓的 Pod 的边界或者隔离环境。
2024-11-09 16:54:27
1065
原创 Kubernetes 深入浅出系列 | 容器剖析之Dockerfile
Dockerfile 是用来构建 Docker 镜像的文本文件,是有一条条构建镜像所需要的指令和参数所组成的脚本文件,类似于 Linux 中的 Shell 脚本文件。
2024-10-15 23:11:24
870
原创 kubernetes online depoly | kubeadm 快速部署kubernetes v1.25 集群 |单matser
下载完后还需要修改里面定义Pod网络( _CIDR),与前面kubeadm init指定的一样。添加阿里云的 Kubernetes 的 YUM 源。操作系统 AlmaLinux 9。容器引擎 Containerd。
2024-08-29 23:48:30
696
原创 Kubernetes traefik 系列|traefik部署与使用
Traefik是一个功能强大的负载均衡工具,它支持4层和7层的基本负载均衡操作,通过IngressRoute、IngressRouteTCP、IngressRouteUDP资源即可轻松实现。为了满足更复杂的负载均衡需求,Traefik还抽象出了TraefikService资源,允许实现加权轮询、流量复制等高级操作。
2024-08-10 16:53:49
3634
原创 Kubernetes LoadBalancer系列|MetalLB配置部署
这种类型建构在NodePort类型之上,大部分情况下只适用于支持外部负载均衡器的云提供商(AWS,阿里云,华为云等)使用,由它接入外部客户端的请求并调度至集群节点相应的NodePort之上。因此LoadBalancer一样具有NodePort和ClusterIP。简而言之,一个LoadBalancer类型的Service会指向关联至Kubernetes集群外部的、切实存在的某个负载均衡设备,该设备通过工作节点之上的NodePort向集群内部发送请求流量。
2024-08-10 00:08:54
1963
原创 Kubernetes Prometheus 系列 | AlertManager实现企业微信报警
AlertManager 通过接收来自监控系统的告警信息,进行去重、分组和抑制等处理以减少噪音,然后根据预定义的路由规则将告警发送到相应的通知渠道(如电子邮件、Slack等),同时记录详细的处理日志以供审计和故障排查。这一过程确保了告警信息的高效、准确传递,有助于快速响应和处理系统问题。本文AlertManager实现企业微信报警,在此之前使用helm部署了prometheus+grafana
2024-08-01 23:04:23
756
2
原创 kubernetes prometheus 系列| helm 部署prometheus+grafana
helm 部署prometheus+grafana
2024-08-01 22:41:51
629
原创 kubernetes artemis 系列 |promethus + grafana监控 activemq artemis
ActiveMQ Artemis Prometheus Metrics 插件是 ActiveMQ Artemis 消息代理的扩展,它向流行的开源监控系统和时间序列数据库 Prometheus 公开指标。然后,Prometheus 可以按照配置的时间间隔抓取(收集)这些指标,从而可以监控、警报和分析 ActiveMQ Artemis 实例的性能和运行状况。
2024-07-28 13:38:50
709
Prometheus+Grafana+Flink+node-exporter+pushgateway+alertmanager
2024-02-23
Kubernetes内外网通信,集群外节点访问 pod ip 路由隧道.C/S架构实现
2024-02-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人