<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Cni - 标签 - 研发日志 · R&amp;D Log</title><link>https://rd163.visword.com/tags/cni/</link><description>Cni - 标签 - 研发日志 · R&amp;D Log</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>whutluohui@gmail.com (小智晖)</managingEditor><webMaster>whutluohui@gmail.com (小智晖)</webMaster><copyright>本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。</copyright><lastBuildDate>Sun, 12 Jan 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://rd163.visword.com/tags/cni/" rel="self" type="application/rss+xml"/><item><title>K8s CNI 网络插件</title><link>https://rd163.visword.com/posts/k8s-network-cni/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-network-cni/</guid><description>&lt;p>Kubernetes 的网络模型要求每个 Pod 都拥有独立的 IP，并能在不同节点间互通。CNI（Container Network Interface）便是实现这一模型的标准接口，kubelet 在创建 Pod 时会调用配置好的 CNI 插件来完成网卡与 IP 的分配。下面整理了社区常见的 CNI 插件以及性能测评与选型建议。&lt;/p></description></item><item><title>k8s 网络插件 Calico</title><link>https://rd163.visword.com/posts/k8s-cni-calico/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-cni-calico/</guid><description><![CDATA[<h2 id="简介" class="headerLink">
    <a href="#%e7%ae%80%e4%bb%8b" class="header-mark"></a>简介</h2><p>Calico 是一个纯三层的数据中心网络方案（不需要 Overlay），与 OpenStack、Kubernetes、AWS、GCE 等 IaaS 和容器平台都有良好的集成。</p>]]></description></item><item><title>K8s 网络插件 Cilium</title><link>https://rd163.visword.com/posts/k8s-cni-cilium/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-cni-cilium/</guid><description><![CDATA[<h2 id="简介" class="headerLink">
    <a href="#%e7%ae%80%e4%bb%8b" class="header-mark"></a>简介</h2><p>Cilium 是一个基于 eBPF 和 XDP 的高性能容器网络方案，代码开源在 <a href="https://github.com/cilium/cilium" target="_blank" rel="noopener noreferrer">github.com/cilium/cilium</a>，目前已从 CNCF 毕业，是云原生网络领域事实上的标准之一。它通过在 Linux 内核中动态插入 eBPF 字节码，把网络转发、安全策略、负载均衡和可观测性逻辑下沉到内核态执行，无需修改应用代码或容器配置。</p>]]></description></item><item><title>K8s 网络插件 Flannel</title><link>https://rd163.visword.com/posts/k8s-cni-flannel/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-cni-flannel/</guid><description><![CDATA[<h2 id="cnicontainer-network-interface" class="headerLink">
    <a href="#cnicontainer-network-interface" class="header-mark"></a>CNI（Container Network Interface）</h2><p>CNI 全称为 Container Network Interface，是用来定义容器网络的一个规范。<a href="https://github.com/containernetworking/cni" target="_blank" rel="noopener noreferrer">containernetworking/cni</a> 是一个 CNCF 的 CNI 实现项目，包括基本的 bridge、macvlan 等基本网络插件。</p>]]></description></item><item><title>K8s 网络插件 SRIOV-CNI</title><link>https://rd163.visword.com/posts/k8s-cni-sriov/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-cni-sriov/</guid><description><![CDATA[<p>SRIOV-CNI最早由腾讯互娱计算资源团队开发， 后被 CNI 社区接纳，并被Intel关注和<a href="https://github.com/Intel-Corp/sriov-cni" target="_blank" rel="noopener noreferrer">Fork</a>。</p>
<p>SRIOV-CNI 为K8s 提供一种 Underlay 网络。 其主要是 基于 网卡虚拟化技术 SR-IOV 实现的。</p>]]></description></item><item><title>K8s 中的开放接口</title><link>https://rd163.visword.com/posts/k8s-open-interfaces/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-open-interfaces/</guid><description><![CDATA[<p>Kubernetes 作为云原生应用的基础调度平台，常被类比为&quot;云原生的操作系统&quot;。和传统操作系统通过驱动屏蔽硬件差异类似，Kubernetes 通过一组<strong>开放接口（Open Interfaces）</strong> 把计算、网络、存储这三类最基础的资源抽象出来，让上游可以对接不同的后端实现，而无需修改 Kubernetes 核心代码。这种可插拔（pluggable）的设计，是 Kubernetes 能够支撑极其多样化的基础设施的关键。</p>]]></description></item><item><title>kubernetes 网络技术与服务通信</title><link>https://rd163.visword.com/posts/k8s-network-and-service/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-network-and-service/</guid><description><![CDATA[<h2 id="1-引言" class="headerLink">
    <a href="#1-%e5%bc%95%e8%a8%80" class="header-mark"></a>1. 引言</h2><p>K8s 是一个开源的容器编排平台，用来自动化部署、管理容器化的应用程序, Bcs 是腾讯开源的容器管理平台。后者相较于前者，功能要更丰富些，bcs主要聚焦于复杂应用场景下的容器化应用的部署和整合， 除了兼容原生的的K8s外，对于游戏的这种场景提供了特别的适配。</p>]]></description></item><item><title>kubernetes 网络模型</title><link>https://rd163.visword.com/posts/k8s-networking-model/</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/k8s-networking-model/</guid><description><![CDATA[<h2 id="k8s通信原理" class="headerLink">
    <a href="#k8s%e9%80%9a%e4%bf%a1%e5%8e%9f%e7%90%86" class="header-mark"></a>K8s通信原理</h2><p>这是一张由外向内的典型的容器网络架构图。</p>
<p><img class="tw:inline" loading="lazy" src='https://wmxiaozhi.github.io/picx-images-hosting/picx-imgs/k8s-net/k8s-network-arch.png'     ></p>
<p>为了能够正常通信，图中每个参与通信的实体都需要有一个 IP 地址，由集群外部到集群内部：</p>
<table>
	<thead>
			<tr>
					<th>IP类型</th>
					<th>说明</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Proxy-IP</td>
					<td>代理层公网地址IP，外部访问应用的网关服务器。[实际需要关注的IP]</td>
			</tr>
			<tr>
					<td>Service-IP</td>
					<td>Service的固定虚拟IP，Service-IP是内部，外部无法寻址到。</td>
			</tr>
			<tr>
					<td>Node-IP</td>
					<td>容器宿主机的主机IP。</td>
			</tr>
			<tr>
					<td>Container-Bridge-IP</td>
					<td>容器网桥（docker0）IP，容器的网络都需要通过容器网桥转发。</td>
			</tr>
			<tr>
					<td>Pod-IP</td>
					<td>Pod的IP，等效于Pod中网络容器的Container-IP。</td>
			</tr>
			<tr>
					<td>Container-IP</td>
					<td>容器的IP，容器的网络是个隔离的网络空间。</td>
			</tr>
	</tbody>
</table>
<h3 id="容器间通信" class="headerLink">
    <a href="#%e5%ae%b9%e5%99%a8%e9%97%b4%e9%80%9a%e4%bf%a1" class="header-mark"></a>容器间通信</h3><p>先来看最简单的情况， 即同一个Pod内部容器之间的通信：</p>]]></description></item></channel></rss>