自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 浅谈网络 | 二层到三层

二层和三层共同构建了高效、可靠的网络架构,分别解决局域网内通信和跨网段传输问题

2024-11-18 23:52:48 1283

原创 Kubernetes 深入浅出系列 | 容器编排与作业调度之Pod

Pod 里的所有容器,共享的是同一个 Network Namespace,并且可以声明共享同一个 Volume。Pod 最重要的一个事实是:它只是一个逻辑概念。Kubernetes 真正处理的,还是宿主机操作系统上 Linux 容器的 Namespace 和 Cgroups,而并不存在一个所谓的 Pod 的边界或者隔离环境。

2024-11-09 16:54:27 1065

原创 浅谈网络 | 通信协议

网络协议在分工明确的多层结构中确保数据的传输稳定、高效、安全,是网络世界信息交换的基础。

2024-10-27 20:24:12 938

原创 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

helm部署harbor离线包加脚本

helm部署harbor,离线包和简单的脚本

2024-10-29

grafana kubernetes json模板

grafana json模板。包含kubernetes 集群,租户,节点,POD

2024-04-19

Prometheus+Grafana+Flink+node-exporter+pushgateway+alertmanager

Prometheus+Grafana+Flink+node_exporter+pushgateway+alertmanage安装包 介绍使用链接:https://blog.csdn.net/weixin_48711696/article/details/136242768?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136242768%22%2C%22source%22%3A%22weixin_48711696%22%7D

2024-02-23

Kubernetes内外网通信,集群外节点访问 pod ip 路由隧道.C/S架构实现

原文链接:https://blog.csdn.net/weixin_48711696/article/details/135972824

2024-02-23

空空如也

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

TA关注的人

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