Kubernetes CNI 网络模型概览:VETH & Bridge / Overlay / BGP

9 月 13 日
阅读 4 分钟
64
pods can communicate with all other pods on any other node without NATagents on a node (e.g. system daemons, kubelet) can communicate with all pods on that node

Kubernetes 之 kubelet 与 CRI、CNI 的交互过程

9 月 7 日
阅读 2 分钟
246
序言当一个新的 Pod 被提交创建之后,Kubelet、CRI、CNI 这三个组件之间进行了哪些交互?Kubelet -> CRI -> CNI如上图所示:Kubelet 从 kube-api-server 处监听到有新的 pod 被调度到了自己的节点且需要创建。Kubelet 创建 sandbox 并配置好 Pod 的环境,其中包括:Kubelet 通过 gRPC 调用 CRI 组件创建 sandbox。...

Kubernetes 网关流量管理:Ingress 与 Gateway API

8 月 31 日
阅读 4 分钟
337
随着 Kubernetes 在云原生领域的广泛使用,流量管理成为了至关重要的一环。为了有效地管理从外部流入集群的流量,Kubernetes 提供了多种解决方案,其中最常见的是 Ingress 和新兴的 Gateway API。

图解计算机网络:一条 HTTP 请求的网络拓扑之旅

8 月 24 日
阅读 2 分钟
196
在此拓扑中,终端设备通过 WiFi 连接到路由器,路由器再连接到光猫(或终端设备通过移动网络 4G/5G 连接到基站),之后 ISP 网络服务提供商接管网络通信,将请求最终转发至应用服务器。

DDIA 分布式数据的分区与复制 - 基于 Redis、Kafka、Elasticsearch 的深入分析

8 月 22 日
阅读 3 分钟
217
本文基于《Designing Data-Intensive Applications》一书(设计数据密集型应用,简称 DDIA),深入探讨了 Redis、Kafka 和 Elasticsearch 等常用组件的分区与复制机制。通过这些案例分析,我们可以更好地理解分布式系统的基本原理和实际应用。

典型系统架构的百万并发理论分析

8 月 15 日
阅读 2 分钟
120
引言本文将会描述一个典型的系统架构,然后分析其在理论上是否能够支撑百万并发的请求。典型系统架构及分析为了降低复杂性,笔者将系统简化为了下图所示:该系统架构包含的组件有:网关层:Load Balancer / API Gateway服务层:HTTP Server中间件:Redis、MQ存储层:MySQL / PostgreSQL忽略业务场景的复杂性,让我们依次...

Redis 全文检索及使用示例

7 月 16 日
阅读 4 分钟
348
Redis 除了我们所熟知的缓存功能之外,还通过 RedisJSON、RediSearch、RedisTimeSeries、RedisBloom 等模块支持了 JSON 数据、查询与搜索(包括全文检索、向量搜索、GEO 地理位置等)、时序数据、概率计算等等扩展功能。这些模块既可以按需导入,也被全部打包到了 Redis Stack 中方便我们直接使用。

Redis 向量搜索

7 月 9 日
阅读 6 分钟
540
Redis 除了我们所熟知的缓存功能之外,还通过 RedisJSON、RediSearch、RedisTimeSeries、RedisBloom 等模块支持了 JSON 数据、查询与搜索(包括全文搜索、向量搜索、GEO 地理位置等)、时序数据、概率计算等等扩展功能。这些模块既可以按需导入,也被全部打包到了 Redis Stack 中方便我们直接使用。

以图搜图架构优化:使用客户端模型提取图像特征

7 月 4 日
阅读 4 分钟
463
以图搜图系统指的是从图像内容提取特征向量,然后使用向量数据库进行向量数据的插入、删除、相似性检索等操作,进而提供根据图像内容搜索出具有相似内容的其它图像的功能。

Kubernetes scheduler 概述及自定义调度器

6 月 15 日
阅读 5 分钟
534
kube-scheduler 是 k8s 集群中控制平面的一个重要组件,其负责的工作简单且专一:给未分配的 pod 分配一个 node 节点。

Kubernetes Service 与 long-lived connections

6 月 12 日
阅读 2 分钟
391
本文将会介绍:从 pod 到 service 再到 pod,kubernetes 中的流量是怎么走的?对于 long-lived connection 长连接又是怎样的情况?从 pod 到 service 再到 pod如上图所示:1、我们先创建一个多副本的 deployment,k8s 会通过 CNI(容器网络接口)给每个 pod 分配一个集群内可达的 IP 地址。2、我们随后创建一个类型为 cl...

我的 2024 年 Elasticsearch 认证考试经验与真题回顾

3 月 18 日
阅读 5 分钟
493
我于 2024 年 3 月 14 日参加了 Elastic Certified Engineer(ECE)认证考试,并与 18 日收到了考试通过的邮件。本文将会回顾我的考试过程、考试真题、个人感受。

我的 2024 年 CKA 认证两天速通攻略

3 月 18 日
阅读 2 分钟
1.9k
如上图所示,本人于 2024 年 1 月 22 号晚上 11 点进行了 CKA 的认证考试,并以 95 分(满分100)顺利通过拿证。本文将会介绍我的 CKA 考试心得和速通攻略。

Redis Stack 不只是缓存之 RedisJSON

3 月 18 日
阅读 7 分钟
428
虽然 Redis 作为一个 key-value 数据库早已被广泛应用于各种缓存相关的场景,然而其团队的却并未故步自封,他们希望更进一步为开发者提供一个不只有缓存功能的强大的实时数据平台,用于处理所有实时数据的应用场景。

Kubernetes 外部 HTTP 请求到达 Pod 容器的全过程

2023-12-30
阅读 3 分钟
724
Kubernetes 集群外部的 HTTP/HTTPS 请求是如何达到 Pod 中的 container 的?HTTP 请求流转过程概述如上图所示,全过程大致为:用户从 web/mobile/pc 等客户端发出 HTTP/HTTPS 请求。由于应用服务通常是通过域名的形式对外暴露,所以请求将会先进行 DNS 域名解析,得到对应的公网 IP 地址。公网 IP 地址通常会绑定一个 Lo...

Kubernetes Lease 及分布式选主

2023-12-26
阅读 3 分钟
858
在分布式系统中,应用服务常常会通过多个节点(或实例)的方式来保证高可用。然而在某些场景下,有些数据或者任务无法被并行操作,此时就需要由一个特定的节点来执行这些特殊的任务(或者进行协调及决策),这个特定的节点也就是领导者(Leader),而在多个节点中选择领导者的机制也就是分布式选主(Leader Election)。

Kubernetes 从提交 deployment 到 pod 运行的全过程

2023-12-23
阅读 3 分钟
707
当用户向 Kubernetes 提交了一个创建 deployment 的请求后,Kubernetes 从接收请求直至创建对应的 pod 运行这整个过程中都发生了什么呢?

Kubernetes CRD & Operator 简介

2023-12-19
阅读 9 分钟
730
在 kubernetes 中有一系列内置的资源,诸如:pod、deployment、configmap、service …… 等等,它们由 k8s 的内部组件管理。而除了这些内置资源之外,k8s 还提供了另外一种方式让用户可以随意地自定义资源,这就是 CRD (全称 CustomResourceDefinitions) 。

容器运行时的内部结构和最新趋势(2023)

2023-07-11
阅读 11 分钟
1.5k
容器运行时的内部结构和最新趋势(2023)原文为 Akihiro Suda 在日本京都大学做的在线讲座,完整的 PPT 可 点击此处下载本文内容分为以下三个部分:容器简介容器运行时的内部结构容器运行时的最新趋势1. 容器简介什么是容器?容器是一组用于隔离文件系统、CPU 资源、内存资源、系统权限等的各种轻量级方法。容器在很多意...

Java 应用程序在 Kubernetes 上棘手的内存管理

2023-04-23
阅读 15 分钟
1.9k
在容器环境中运行 Java 应用程序需要了解两者 —— JVM 内存机制和 Kubernetes 内存管理。这两个环境一起工作会产生一个稳定的应用程序,但是,错误配置最多可能导致基础设施超支,最坏情况下可能会导致应用程序不稳定或崩溃。我们将首先仔细研究 JVM 内存的工作原理,然后我们将转向 Kubernetes,最后,我们将把这两个概...

Kubernetes Admission Controller 简介 - 注入 sidacar 示例

2023-04-16
阅读 7 分钟
1.6k
当我们向 k8s api-server 提交了请求之后,需要经过认证鉴权、mutation admission、validation 校验等一系列过程,最后才会将资源对象持久化到 etcd 中(其它组件诸如 controller 或 scheduler 等操作的也是持久化之后的对象)。而所谓的 Kubernetes Admission Controller 其实就是在这个过程中所提供的 webhook 机制,...

什么?修改 JSON 内容居然还有个 JSON PATCH 标准

2023-04-07
阅读 7 分钟
1.7k
JSON Patch 本身也是一种 JSON 文档结构,用于表示要应用于 JSON 文档的操作序列;它适用于 HTTP PATCH 方法,其 MIME 媒体类型为 "application/json-patch+json"。

我们为何选择 Cilium 作为 Kubernetes 的网络接口

2023-04-03
阅读 5 分钟
1.8k
原文作者是 Palark 平台工程师 Anton Kuliashov,其说明了选择 Cilium 作为 Kubernetes 网络接口的原因以及喜爱 Cilium 的地方。

在 Kubernetes 中应该如何设置 CPU 的 requests 和 limits

2023-03-31
阅读 3 分钟
2k
文本翻译自: [链接]在 Kubernetes 中,我应该如何设置 CPU 的 requests 和 limits?热门答案包括:始终使用 limits !永远不要使用 limits,只使用 requests !都不用;可以吗?让我们深入研究它。在 Kubernetes 中,您有两种方法来指定一个 pod 可以使用多少 CPU:Requests 通常用于确定平均消耗。Limits 设置允许的最大...

Kubernetes Gateway API 介绍

2023-03-29
阅读 2 分钟
1.5k
您以前听说过 SIG-NETWORK 的 Kubernetes Gateway API 吗?好吧,可能你们中的大多数人都是第一次遇到这个话题。尽管如此,无论您是第一次听说还是已经以某种方式使用过它,本博客的目的都是为您提供一个基本的和高度的概述来理解这个主题。

提速 30 倍!OCI 容器启动优化的历程

2023-03-28
阅读 10 分钟
1k
当我开始研究 crun ([链接]) 时,我正在寻找一种通过改进 OCI 运行时来更快地启动和停止容器的方法,OCI 运行时是 OCI 堆栈中负责最终与内核交互并设置容器所在环境的组件。

Kubernetes 优雅终止 pod

2023-03-28
阅读 2 分钟
1.6k
当你执行 kubectl delete pod 时,pod 被删除, endpoint 控制器从 service 和 etcd 中删除该 pod 的 IP 地址和端口。

Kubernetes EKS 集群中的 IP 地址分配问题

2023-03-28
阅读 3 分钟
1.4k
文本翻译自: [链接]运行 EKS 集群时,你可能会遇到两个问题:分配给 pod 的 IP 地址用完了。每个节点的 pod 数量少(由于 ENI 限制)。在本文中,你将学习如何克服这些问题。在我们开始之前,这里有一些关于节点内网络如何在 Kubernetes 中工作的背景知识。创建节点时,kubelet 委托:创建容器到容器运行时。将容器连接...

Kubernetes 节点的预留资源

2023-03-25
阅读 3 分钟
1.3k
文本翻译自: [链接]在 Kubernetes 中,运行多个集群节点是否存在隐形成本?是的,因为并非 Kubernetes 节点中的所有 CPU 和内存都可用于运行 Pod。在一个 Kubernetes 节点中,CPU 和内存分为:操作系统Kubelet、CNI、CRI、CSI(+ 系统 daemons)Pods驱逐阈值这些预留的资源取决于实例的大小,并且可能会增加相当大的开销...

使用 Kubernetes API

2023-03-23
阅读 3 分钟
1.2k
文本翻译自: [链接]Kubernetes 公开了一个强大的 API,可让您控制集群的各个方面。大多数时候,它隐藏在 kubectl 后面,但没有人会阻止您直接使用它。在本文中,您将学习如何使用 curl 或者您喜欢的编程语言向 Kubernetes API 发出请求。但首先,让我们回顾一下 Kubernetes API 的工作原理。当您键入命令时,kubectl:客...