自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(208)
  • 收藏
  • 关注

原创 在Windows电脑上快速运行AI大语言模型-Llama3

近期 Meta 发布了最新的 Llama3 模型,并开源了开源代码。Meta Llama 3 现已推出 8B 和 70B 预训练和指令调整版本,可支持广泛的应用程序。并且 Llama 3 在语言细微差别、上下文理解和翻译和对话生成等复杂任务方面表现出色。我们可以在 Windows 上快速运行 Llama3 8B 模型。📝Notes郑重声明: 本文几乎没有任何原创内容, 主要资料都来自于网上, 笔者只是总结自己实际可以运行起来的详细步骤, 供各位读者参考.Llmafile。

2024-04-20 14:54:20 1250

原创 如何监控容器或K8s中的OpenSearch

当前 OpenSearch 使用的越来越多, 但是 OpenSearch 生态还不尽完善.监控容器化或运行在 K8s 中的 OpenSearch我查了下, 官方还没有提供完备的方案.这里如何监控 K8s 中的 OpenSearch, 包括安装 exporter 插件、采集、展示全环节。OpenSearch 是一款开源的分布式搜索引擎(从 ElasticSearch 特定版本分叉而来),可以执行快速、可扩展的全文搜索、应用程序和基础设施监控、安全和事件信息管理、运营健康跟踪等用例。

2024-04-10 18:11:42 489 2

原创 Grafana系列-Loki-基于日志实现告警

实际应用中除了基于 Metrics 告警, 往往还有基于日志的告警需求, 可以作为基于 Metrics 告警之外的一个补充. 典型如基于 NGINX 日志的错误率告警.本文将介绍如何基于 Loki 实现基于日志的告警.基于 NGINX 日志的错误率告警基于 Nomad 日志的心跳异常告警(关于 Nomad 的介绍, 可以参见这篇文章:《大规模 IoT 边缘容器集群管理的几种架构 -2-HashiCorp 解决方案 Nomad》

2023-12-10 19:25:40 611

原创 「译文」Google SRE 二十年的经验教训

二十年可以发生很多事情,尤其是当你忙于发展的时候。二十年前,谷歌有一对小型数据中心,每个中心有几千台服务器,通过一对 2.4G 网络链路环形连接。我们使用 Python 脚本(如 "Assigner"、"Autoreplacer "和 "Babysitter")运行我们的私有云(虽然当时我们并不这么称呼它),这些脚本在包含单个服务器名称的配置文件上运行。我们有一个小型的机器数据库(MDB),可以帮助整理和保存单个服务器的信息。

2023-11-06 11:25:06 283

原创 Terraform 系列-使用Dynamic Blocks对Blocks进行迭代

Terraform 系列文章介绍了使用 Grafana Terraform Provider, 基于 Terraform 的 IaC 方法论, 来批量自动化创建 Grafana 的各类资源, 包括 Dashboard/Datasource 等.现在有这么一个现实需求:出于权限控制的需求, 需要启用 Folder Permissions, 限制指定的某几个 team 可以有该 Folder 的 view 权限.该如何实现?🤔。

2023-10-31 16:20:28 279

原创 「译文」深入了解Kubernetes和Nomad

👉️✍️📝stack.io 产品管理主管 Rob Newsome 的特邀文章 在容器编排领域,Kubernetes 和 Nomad 都是响当当的产品,它们各自为容器编排提供了一种独特的方法…在领域,和都是响当当的产品,各自提供了一种独特的容器管理方法。以其详尽的功能和广泛的社区支持而闻名,已成为编排的标准。相反,则以简单高效为先,提供了一种精致、精简的方法。这种比较的本质是为读者提供一个清晰的视角,以辨别其中的差异,并根据自己的独特需求和环境背景做出明智的决定。

2023-10-27 11:03:29 259

原创 运行在容器中Postgres数据库数据损坏后如何恢复?

在使用 K8S 部署 RSS 全套自托管解决方案- RssHub + Tiny Tiny Rss, 我介绍了将 RssHub + Tiny Tiny RSS 部署到 K8s 集群中的方案. 其中 TTRSS 会用到 Postgres 存储数据, 也一并部署到 K8s 容器中.但是最近, 由于一次错误操作, 导致 Postgres 数据库的 WAL 损坏, Postgres 的 Pod 频繁 CrashBackoffLoop. 具体报错如下:如上, WAL文件已损坏, 应该如何恢复?

2023-09-27 16:47:55 381

原创 加密 K8s Secrets 的几种方案

你可能已经听过很多遍这个不算秘密的秘密了--Kubernetes Secrets 不是加密的!Secret 的值是存储在 etcd 中的base64 encoded(编码)字符串。这意味着,任何可以访问你的集群的人,都可以轻松解码你的敏感数据。任何人?是的,几乎任何人都可以,尤其是在集群的 RBAC 设置不正确的情况下。任何人都可以访问 API 或访问 etcd。

2023-09-18 17:59:22 443

原创 Docker 镜像库国内加速的几种方法

在国内,拉取 Docker 镜像速度慢/时不时断线/无账号导致限流等,比较痛苦😣. 这里提供加速/优化的几种方法。国内下载速度慢/时不时断线:是因为网络被限制了。没有公共镜像库账号导致限流:是因为 Docker Hub 等主流镜像库,近年来纷纷开始对未登录的匿名用户进行限流,限制拉取的速度,以及一定时间内拉取的镜像数量。为了解决以上问题,有这么几种方法:针对国内下载速度慢/时不时断线配置国内可用/速度尚可的 Docker Registry Mirrors。

2023-09-10 19:01:34 5725

原创 Nomad系列-Nomad网络模式

Nomad 的网络和 Docker 的也有很大不同, 和 K8s 的有很大不同. 另外, Nomad 不同版本(Nomad 1.3 版本前后)或是否集成 Consul 及 CNI 等不同组件也会导致网络模式各不相同. 本文详细梳理一下 Nomad 的主要几种网络模式在Nomad 1.3发布之前,它自身并不支持发现集群中运行的其他应用程序。在集群中调度任务时,这是一个非常基本的要求。Nomad依赖于Consul来发现其他“服务”,并为注册和获取服务记录提供一流的支持,这使得事情变得更容易。

2023-09-09 12:11:44 832

原创 Nomad 系列-Nomad+Traefik+Tailscale 集成实现零信任安全

终于到了令人启动的环节了:Nomad+Traefik+Tailscale 集成实现零信任安全。Nomad 负责容器调度;(容器编排工具)Traefik 负责入口流量;(Ingress 工具)Tailscale 实现跨地域联通,4 层加密以及提供 HTTPS 证书。Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易。

2023-09-08 14:19:35 559

原创 Nomad 系列-Nomad 挂载存储卷

显然,如果 Nomad 要运行有状态存储,那么挂载存储卷就是必备功能。容器存储接口(CSI)插件Nomad 主机卷支持Docker Volume 驱动程序默认没有安装 CSI 的情况下,主要使用的是Nomad 主机卷方式。Nomad 的主机卷允许将 Nomad 客户端上的任何目录挂载到分配中。这些目录可以是客户机上的简单目录,但也可以是挂载文件系统,如 NFS 或 GlusterFS。然后可以将这些 mounts 连接到任务组中的各个任务。

2023-09-07 10:19:27 317

原创 Nomad 系列-快速上手

示例应用程序pytechco模拟在一家技术公司工作的员工。他们联机,完成任务,然后注销。跳转到本地计算机上示例 repo 的jobscd jobs下面每个组成应用程序的 jobspec 文件都将driver属性设置为docker,并使用image属性指定存储在 GHCR 中config块中的镜像。而 Redis 作业使用了 Docker Hub 上托管的官方 Redis 镜像。本文中,我们一起了解了 Nomad 的术语,并根据官方 Demo, 部署和更新了 Nomad Job。

2023-09-06 10:26:45 424

原创 Nomad 系列-安装

开新坑!近期算是把自己的家庭实验室环境初步搞好了,终于可以开始进入正题研究了。首先开始的是 HashiCorp Nomad 系列,欢迎阅读。关于 Nomad 的简介,之前在大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad有提到过,这里再快速过一遍:Nomad: 一个简单而灵活的(主要是容器,但有不至于容器的)调度器和编排器,可在内部和云端大规模部署和管理容器和非容器化的应用程序Nomad 使开发者能够使用声明式的基础设施即代码来部署应用程序。

2023-09-05 15:55:32 673

原创 大规模 IoT 边缘容器集群管理的几种架构-6-个人体验及推荐

HashiCorp 解决方案 --- Nomad + DockerKubeedge其中,Rancher + K3s 是基于且兼容 K8s 的解决方案;Kubeedge 是构建于 K8s 之上的,但是核心的 Kubeedge 架构是完全另外一套体系;而 Hashicorp 解决方案和 Portainer 解决方案可以说是和 K8s 没有关系,主要是基于 Docker 等容器的。而且也可以基于其他的驱动(如 podman 等等)单片 arm 开发板的情况,对以上的各个方案进行了深入的体验。

2023-08-27 15:37:12 417

原创 玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server

基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s 等方案的测试验证。Dell R7303.5 尺寸规格硬盘内存:16g*8存储:480Gintel ssd 系统盘 + 6tsas 希捷* 2 个数据盘RAID 卡:h730 卡电源:单电 750w盘架满价格大约是 3130 元再来套服务器机柜。..但是考虑到功率和噪音太大了,家里也没有适合放服务器的这么大的地,最终放弃了。😂。

2023-08-26 10:08:58 631

原创 Git Cherry-pick使用

无论项目大小,当你和一群程序员一起工作时,处理多个 Git 分支之间的变更都会变得很困难。有时,与其把整个 Git 分支合并到另一个分支,不如选择并移动几个特定的提交。这个过程被称为 "挑拣", 即 Cherry-pick。本文将介绍 "Cherry-pick" 的内容、原因和方法。让我们开始吧~通过命令,Git 可以将任何分支中的选定提交合并到当前的 Git HEAD 分支中。在执行git merge或git rebase时,一个分支的所有提交都会被合并。而命令则允许你选择单个提交进行整合。

2023-08-12 11:35:21 1367 1

原创 Terraform 系列-批量创建资源时如何根据某个字段判断是否创建

前文Grafana 系列 - Grafana Terraform Provider 基础介绍了使用 Grafana Terraform Provider 创建 Datasource.这几天碰到这么一个现实需求:es_type)判断是否创建?另外, 建议您先阅读前一篇文章:Terraform 系列 - 使用 for-each 对本地 json 进行迭代方便快速了解上下文背景."dev":},"test":该如何实现?🤔。

2023-08-11 16:41:52 1022

原创 Cilium系列-16-CiliumNetworkPolicy 实战演练

今天我们进入 Cilium 安全相关主题, 基于 Cilium 官方的《星球大战》 Demo 做详细的 CiliumNetworkPolicy 实战演练。暂且抛开《星球大战》的奇思妙想不谈,本次实战演练展示的是一种编写 CiliumNetworkPolicy 的方法,可帮助确保在集群内运行的 pod 之间的访问安全。你可以使用 CiliumNetworkPolicy 根据预期的工作负载行为(编码为标签元数据)建立合理的限制,而不是隐式地信任 pod 可以完全访问集群中对等 pod 公开的所有服务。

2023-08-08 09:18:03 379

原创 Cilium系列-15-7层网络CiliumNetworkPolicy简介

今天我们进入 Cilium 安全相关主题, 介绍 CiliumNetworkPolicies 相比于 Kubernetes 网络策略最大的不同: 7 层网络策略能力.今天我们进入 Cilium 安全相关主题, 介绍 CiliumNetworkPolicies 相比于 Kubernetes 网络策略最大的不同: 7 层网络策略能力.L7 策略基于 L4 策略扩展而来, 增加了toPorts字段. 并提供了 HTTP DNS Kakfa 的 L7 策略示例.

2023-08-07 14:28:46 369

原创 Cilium系列-14-Cilium NetworkPolicy 简介

今天我们进入 Cilium 安全相关主题, 介绍 Kubernetes 网络策略以及 CiliumNetworkPolicies 额外支持的内容。今天我们进入 Cilium 安全相关主题, 介绍 Kubernetes 网络策略以及 CiliumNetworkPolicies 额外支持的内容。介绍了一款好用的可视化 NetworkPolicy 编辑器: <networkpolicy.io>. 同时通过一个实用的"租户隔离"网络策略需求来进行演示.三人行, 必有我师;知识共享, 天下为公.

2023-08-06 09:03:59 367

原创 Cilium系列-13-启用XDP加速及Cilium性能调优总结

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-08-05 20:14:30 809

原创 Cilium系列-12-启用 Pod 的 BBR 拥塞控制

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-08-04 09:30:51 274

原创 Cilium系列-11-启用带宽管理器

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-08-03 10:11:18 294

原创 Cilium系列-10-启用 IPv6 BIG TCP和启用巨帧

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-08-02 13:48:27 822 1

原创 Cilium系列-9-主机路由切换为基于 BPF 的模式

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-07-31 16:38:10 739

原创 Cilium系列-8-绕过 IPTables 连接跟踪

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为基于 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-07-30 13:01:25 267

原创 Cilium 系列-7-Cilium 的 NodePort 实现从 SNAT 改为 DSR

将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能。但是通过对 Cilium 不同模式的切换/功能的启用,可以进一步提升 Cilium 的网络性能。启用本地路由 (Native Routing)完全替换 KubeProxyIP 地址伪装 (Masquerading) 切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行。

2023-07-29 12:53:02 932

原创 Cilium系列-6-从地址伪装从IPtables切换为eBPF

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为给予 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-07-27 10:23:07 308

原创 Cilium系列-5-Cilium替换KubeProxy

启用本地路由(Native Routing)完全替换 KubeProxyIP 地址伪装(Masquerading)切换为基于 eBPF 的模式Kubernetes NodePort 实现在 DSR(Direct Server Return) 模式下运行绕过 iptables 连接跟踪(Bypass iptables Connection Tracking)主机路由(Host Routing)切换为给予 BPF 的模式 (需要 Linux Kernel >= 5.10)

2023-07-26 10:12:20 237

原创 Cilium系列-4-Cilium本地路由

在前文中我们提到,: 因为兼容性原因,Cilium 会默认启用 tunnel(基于 vxlan) 的 datapatch 模式,也就是 overlay 网络结构。Cilium 是没有完全替换掉 kube-proxy 的,后面我们会出文章介绍如何实现替换。该功能要求 Linux Kernel >= 5.19, 所以在 Kernel 4.19.232 状态为禁用。该功能要求 Linux Kernel >= 5.1, 所以目前是禁用的。

2023-07-25 11:01:27 306

原创 Cilium 系列-3-Cilium 的基本组件和重要概念

安装完了,我们看看 Cilium 有哪些组件和重要概念。本文趁热打铁介绍了 Cilium 的基本组件和重要概念。为我们后续 Cilium 的深入使用做好铺垫。💪三人行, 必有我师;知识共享, 天下为公.本文由东风微鸣技术博客编写.

2023-07-24 10:06:25 225

原创 Cilium 系列-2-Cilium 快速安装

在本章中,我们将直接将 Cilium 安装到 Kubernetes 集群中。OS📝Notes如前文所述,Cilium 对 Linux Kernel 版本要求很高。1.13.4 推荐 Kernel ≥ 5.10(使用最新 LTS 稳定版 Kernel), 最低 Linux Kernel 得是 4.19.57.所以我们选择 2 个 OS, 一个只满足最低 Kernel 要求,一个是尽可能新的 Kernel, 看看安装和功能有哪些差别。本文我们主要介绍了 Cilium 的快速安装过程。

2023-07-22 17:25:39 378

原创 Cilium系列-1-Cilium特色 功能及适用场景

Cilium 是一个开源的云原生解决方案,用于提供、保护(安全功能)和观察(监控功能)工作负载之间的网络连接,由革命性的内核技术eBPF提供动力。Cilium 主要使用场景是在 Kubernetes中,但 Cilium 的优势并不仅限于 Kubernetes 环境。在 Kubernetes 环境中,Cilium 可充当网络插件,提供 pod 之间的连接。

2023-07-20 15:17:54 381

原创 玩转 PI 系列-如何在 Rockchip Arm 开发板上安装 Docker Tailscale K3s Cilium?

618 买了几个便宜的Purple PI OH 开发板(500 块多一点买了 3 个🤑), 这个开发板类似树莓派,是基于 Rockchip(瑞芯微) 的 rx3566 arm64 芯片。如下:买来是用作家庭服务器或家庭实验室的。便宜可玩性高功耗低散热小,运行安静Arm64 现在生态还凑活CPU: 四核 64 位 Cortex-A55 处理器,主频最高 1.8GHz最高支持 8GB 高速 LPDDR4,速率高达 1066Mbps (我买的是 2G 版本的)

2023-07-19 23:01:12 486

原创 Terraform 系列-使用 for-each 对本地 json 进行迭代

前文Grafana 系列 - Grafana Terraform Provider 基础介绍了使用 Grafana Terraform Provider 创建 Datasource.现在有这么一个现实需求:有大量的同类型 (type) 的 datasource 需要批量添加,而且这些 datasource 的基本信息是以 json 的格式已经存在。需要对 json 进行解析/精简/重构等操作并将 json 作为 Terraform 的 datasource.},📝Notes。

2023-06-25 09:58:42 640

原创 Grafana 系列-GaC-2-Grafana Terraform Provider 基础

前文Jsonnet我们今天先简单介绍创建 Provider创建组织创建文件夹创建各类常见的 Datasources创建 Dashboard非常直白清晰。希望对各位有所帮助。

2023-06-19 13:41:08 987

原创 Grafana系列-GaC-1-Grafana即代码的几种实现方式

GaC(Grafana as Code, Grafana 即代码) 很明显是扩展自 IaC(Infrastructure as Code, 基础设施即代码)的概念.在Terraform 系列 - 什么是 IaC?一文中, 我们已经详细地说明了相关的概念, 我们可以直接套用在 GaC 上:Grafana 即代码 (Grafana as Code, GaC) 是指通过代码而不是手动流程 / 控制台点击来管理和配置 Grafana。

2023-06-18 19:53:27 401

原创 如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

优点准确度高实用的特色功能:Custom Translator实用的特色功能:Variable 支持实用的特色功能:Glossaries底层基于 Deepl, Deepl 的翻译效果是最自然的。多种使用方式:web/api/cli缺点贵,基于 Segment 收费,价格也贵的厉害。最便宜的月费也得 $15, 并且只有 1,000 Text Segments本文很浅显地总结了一些我收集到的 markdown 文档的翻译方案。主要是基于:将 Markdown 拆分为"段" 的思路。

2023-06-17 13:20:19 1574

原创 Grafana系列-统一展示-12-RED Method Dashboard

RED: Rate(访问速率), Errors(错误), Duration(响应时长) - 由引入USE: Utilization(利用率), Saturation(饱和度), and Errors(错误) - 由引入:Latency (响应延迟, 和 Duration 类似), Traffic (对你的系统有多大的需求, 和 Rate 类似), Errors, Saturation. 基本上就是 RED + Saturation.RED Method 关心你的用户以及他们有多快乐。

2023-05-16 11:30:13 402

空空如也

空空如也

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

TA关注的人

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