日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文帶你徹底搞懂K8s網(wǎng)絡(luò)

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2026-02-06 10:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

說(shuō)實(shí)話,K8s 網(wǎng)絡(luò)是我見(jiàn)過(guò)最讓新手頭疼的知識(shí)點(diǎn),沒(méi)有之一。記得我剛接觸 K8s 那會(huì)兒,看著流量在 Pod、Service、Node 之間穿梭,完全是一臉懵逼。后來(lái)踩了無(wú)數(shù)坑,熬了無(wú)數(shù)夜,總算把這套網(wǎng)絡(luò)模型摸透了。今天這篇文章,我會(huì)用最接地氣的方式,帶你徹底搞懂 K8s 網(wǎng)絡(luò)。

一、概述

1.1 背景介紹

在傳統(tǒng)的虛擬機(jī)時(shí)代,網(wǎng)絡(luò)相對(duì)簡(jiǎn)單——每臺(tái) VM 一個(gè) IP,通過(guò)交換機(jī)互聯(lián),頂多再加個(gè)負(fù)載均衡。但到了容器時(shí)代,事情變得復(fù)雜了:

一臺(tái)宿主機(jī)上可能跑著幾十上百個(gè)容器

容器隨時(shí)可能被銷(xiāo)毀重建,IP 地址不固定

跨主機(jī)的容器需要互相通信

還要對(duì)外暴露服務(wù)

K8s 的網(wǎng)絡(luò)模型就是為了解決這些問(wèn)題而生的。它定義了一套清晰的網(wǎng)絡(luò)規(guī)范,讓不同的網(wǎng)絡(luò)插件(CNI)可以按照統(tǒng)一的標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)。

K8s 網(wǎng)絡(luò)的四大通信場(chǎng)景:

┌─────────────────────────────────────────────────────────────┐
│          K8s 網(wǎng)絡(luò)通信場(chǎng)景             │
├─────────────────────────────────────────────────────────────┤
│ 1. 容器間通信   同一 Pod 內(nèi)的容器通過(guò) localhost 通信    │
│ 2. Pod 間通信   不同 Pod 之間直接通過(guò) Pod IP 通信     │
│ 3. Pod-Service  Pod 通過(guò) Service 的 ClusterIP 訪問(wèn)服務(wù)  │
│ 4. 外部-Service  外部流量通過(guò) NodePort/LB/Ingress 進(jìn)入集群 │
└─────────────────────────────────────────────────────────────┘

1.2 技術(shù)特點(diǎn)

K8s 網(wǎng)絡(luò)模型有幾個(gè)核心設(shè)計(jì)原則,理解了這些,后面的內(nèi)容就好懂多了:

扁平化網(wǎng)絡(luò):所有 Pod 都在一個(gè)扁平的網(wǎng)絡(luò)空間中,可以直接通過(guò) IP 互訪,不需要 NAT

IP-per-Pod:每個(gè) Pod 擁有獨(dú)立的 IP 地址,Pod 內(nèi)的所有容器共享這個(gè) IP

無(wú) NAT 通信:Pod 看到的自己的 IP 就是其他 Pod 看到的 IP,沒(méi)有地址轉(zhuǎn)換的困擾

插件化架構(gòu):通過(guò) CNI 標(biāo)準(zhǔn)接口,支持各種網(wǎng)絡(luò)插件(Calico、Cilium、Flannel 等)

2026年主流 CNI 插件對(duì)比:

CNI 插件 網(wǎng)絡(luò)模式 性能 NetworkPolicy eBPF 支持 適用場(chǎng)景
Cilium Overlay/路由 極高 完整+擴(kuò)展 原生 大規(guī)模生產(chǎn)、安全敏感
Calico BGP/IPIP/VXLAN 完整 可選 通用生產(chǎn)環(huán)境
Flannel VXLAN/host-gw 不支持 不支持 小規(guī)模、學(xué)習(xí)環(huán)境
Weave VXLAN 支持 不支持 簡(jiǎn)單部署場(chǎng)景
Antrea Geneve/VXLAN 完整 可選 VMware 生態(tài)

個(gè)人建議:2026年了,新集群直接上 Cilium。eBPF 帶來(lái)的性能提升和可觀測(cè)性是傳統(tǒng)方案沒(méi)法比的。我們公司去年從 Calico 遷移到 Cilium 后,網(wǎng)絡(luò)延遲降低了約 15%,而且 Hubble 的可視化簡(jiǎn)直是排障神器。

1.3 適用場(chǎng)景

不同的網(wǎng)絡(luò)方案適用于不同場(chǎng)景,選錯(cuò)了后期改造成本很高(別問(wèn)我怎么知道的...):

Overlay 網(wǎng)絡(luò)(VXLAN/Geneve)

適合:跨云部署、網(wǎng)絡(luò)環(huán)境復(fù)雜、IP 地址受限

缺點(diǎn):有封裝開(kāi)銷(xiāo),性能略低

典型:Flannel VXLAN、Calico IPIP

路由網(wǎng)絡(luò)(BGP/Host-Gateway)

適合:數(shù)據(jù)中心內(nèi)部、對(duì)性能要求高、有 BGP 基礎(chǔ)設(shè)施

缺點(diǎn):需要網(wǎng)絡(luò)團(tuán)隊(duì)配合,配置相對(duì)復(fù)雜

典型:Calico BGP、Cilium Native Routing

eBPF 網(wǎng)絡(luò)

適合:大規(guī)模集群、需要高級(jí)網(wǎng)絡(luò)策略、追求極致性能

缺點(diǎn):內(nèi)核版本要求高(建議 5.10+)

典型:Cilium、Calico eBPF 模式

1.4 環(huán)境要求

組件 版本要求 說(shuō)明
Kubernetes 1.28+ 建議使用 1.29/1.30,支持最新網(wǎng)絡(luò)特性
Linux 內(nèi)核 5.10+ 使用 eBPF 特性建議 5.15+,生產(chǎn)推薦 6.1 LTS
CNI 插件 Cilium 1.15+ / Calico 3.27+ 2026年主流版本
kube-proxy 可選 使用 Cilium 可完全替代 kube-proxy
CoreDNS 1.11+ 集群 DNS 服務(wù)

內(nèi)核版本檢查:

# 檢查當(dāng)前內(nèi)核版本
uname -r

# 檢查 eBPF 支持情況
# 如果輸出包含 CONFIG_BPF=y 說(shuō)明支持
grep CONFIG_BPF /boot/config-$(uname -r)

# 檢查 BTF 支持(Cilium 需要)
ls -la /sys/kernel/btf/vmlinux

二、詳細(xì)步驟

2.1 準(zhǔn)備工作

2.1.1 網(wǎng)絡(luò)基礎(chǔ)概念回顧

在深入 K8s 網(wǎng)絡(luò)之前,先確保你理解這些基礎(chǔ)概念(老手可以跳過(guò)):

┌────────────────────────────────────────────────────────────────┐
│          Linux 網(wǎng)絡(luò)命名空間              │
├────────────────────────────────────────────────────────────────┤
│                                │
│  ┌─────────────┐   veth pair   ┌─────────────┐     │
│  │ 容器網(wǎng)絡(luò)  │?──────────────────?│ 宿主機(jī)網(wǎng)絡(luò) │     │
│  │ namespace │   (虛擬網(wǎng)線)   │ namespace │     │
│  │       │          │       │     │
│  │ eth0    │          │ vethXXX  │     │
│  │ 10.244.1.5 │          │       │     │
│  └─────────────┘          └──────┬──────┘     │
│                       │         │
│                   ┌──────▼──────┐     │
│                   │  cni0/   │     │
│                   │  cilium_  │     │
│                   │  host   │     │
│                   │ (網(wǎng)橋)   │     │
│                   └─────────────┘     │
└────────────────────────────────────────────────────────────────┘

關(guān)鍵概念解釋?zhuān)?/strong>

Network Namespace:Linux 內(nèi)核提供的網(wǎng)絡(luò)隔離機(jī)制,每個(gè) Pod 有自己的網(wǎng)絡(luò)命名空間

veth pair:虛擬以太網(wǎng)設(shè)備對(duì),像一根網(wǎng)線連接兩個(gè)網(wǎng)絡(luò)命名空間

Bridge(網(wǎng)橋):二層交換設(shè)備,連接同一主機(jī)上的多個(gè) veth 設(shè)備

路由表:決定數(shù)據(jù)包下一跳去哪里

2.1.2 實(shí)驗(yàn)環(huán)境搭建

為了更好地理解網(wǎng)絡(luò)原理,建議搭建一個(gè)測(cè)試環(huán)境:

# 使用 kind 快速創(chuàng)建多節(jié)點(diǎn)集群(推薦用于學(xué)習(xí))
cat < kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
 disableDefaultCNI:true# 禁用默認(rèn) CNI,手動(dòng)安裝
 podSubnet:"10.244.0.0/16"
 serviceSubnet:"10.96.0.0/12"
nodes:
- role: control-plane
- role: worker
- role: worker
EOF

kind create cluster --config kind-config.yaml --name network-lab

# 安裝 Cilium(2026年推薦方案)
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --version 1.15.0 
 --namespace kube-system 
 --setkubeProxyReplacement=true
 --setk8sServiceHost=kind-control-plane 
 --setk8sServicePort=6443

2.1.3 網(wǎng)絡(luò)診斷工具準(zhǔn)備

這些工具是排查網(wǎng)絡(luò)問(wèn)題的必備神器:

# 創(chuàng)建一個(gè)網(wǎng)絡(luò)調(diào)試 Pod
kubectl run netshoot --image=nicolaka/netshoot --command-- sleep infinity

# 常用診斷命令
kubectlexec-it netshoot -- bash

# 在 Pod 內(nèi)可以使用:
# - ip addr / ip route / ip neigh
# - ping / traceroute / mtr
# - curl / wget
# - tcpdump / tshark
# - nslookup / dig
# - ss / netstat
# - iperf3(性能測(cè)試)

2.2 核心配置

2.2.1 CNI 插件工作原理

CNI(Container Network Interface)是 K8s 網(wǎng)絡(luò)的核心。當(dāng) kubelet 創(chuàng)建 Pod 時(shí),會(huì)調(diào)用 CNI 插件來(lái)配置網(wǎng)絡(luò)。

CNI 調(diào)用流程:

┌─────────────────────────────────────────────────────────────────────┐
│            CNI 插件調(diào)用流程               │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│ 1. kubelet 創(chuàng)建 Pod                        │
│    │                               │
│    ▼                               │
│ 2. 創(chuàng)建 pause 容器(持有網(wǎng)絡(luò)命名空間)                │
│    │                               │
│    ▼                               │
│ 3. 調(diào)用 CNI 插件(/opt/cni/bin/)                 │
│    │                               │
│    ├──? 讀取配置(/etc/cni/net.d/)               │
│    │                               │
│    ├──? 創(chuàng)建 veth pair                     │
│    │                               │
│    ├──? 配置 IP 地址(IPAM)                   │
│    │                               │
│    └──? 配置路由規(guī)則                       │
│        │                          │
│        ▼                          │
│ 4. 返回網(wǎng)絡(luò)配置給 kubelet                     │
│        │                          │
│        ▼                          │
│ 5. 啟動(dòng)業(yè)務(wù)容器(共享網(wǎng)絡(luò)命名空間)                 │
│                                   │
└─────────────────────────────────────────────────────────────────────┘

CNI 配置文件示例(Cilium):

# 查看 CNI 配置
cat /etc/cni/net.d/05-cilium.conflist
{
"cniVersion":"0.3.1",
"name":"cilium",
"plugins": [
  {
  "type":"cilium-cni",
  "enable-debug":false,
  "log-file":"/var/run/cilium/cilium-cni.log"
  }
 ]
}

2.2.2 Pod 網(wǎng)絡(luò)模型詳解

這是理解 K8s 網(wǎng)絡(luò)的關(guān)鍵!每個(gè) Pod 都有自己的網(wǎng)絡(luò)棧:

┌─────────────────────────────────────────────────────────────────────┐
│             Pod 網(wǎng)絡(luò)模型                │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │           Pod                 │   │
│  │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐   │   │
│  │ │ Container A │ │ Container B │ │  Pause   │   │   │
│  │ │  (app)   │ │ (sidecar) │ │ (infra容器) │   │   │
│  │ │       │ │       │ │       │   │   │
│  │ │ localhost: │ │ localhost: │ │ 持有網(wǎng)絡(luò)  │   │   │
│  │ │  8080   │ │  9090   │ │ 命名空間  │   │   │
│  │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘   │   │
│  │     │        │        │      │   │
│  │     └────────────────┴────────────────┘      │   │
│  │             │               │   │
│  │          共享網(wǎng)絡(luò)命名空間            │   │
│  │             │               │   │
│  │          ┌─────▼─────┐            │   │
│  │          │  eth0  │            │   │
│  │          │10.244.1.5 │            │   │
│  │          └───────────┘            │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                   │
└─────────────────────────────────────────────────────────────────────┘

關(guān)鍵點(diǎn):

同一 Pod 內(nèi)的容器共享網(wǎng)絡(luò)命名空間,可以通過(guò)localhost互訪

Pause 容器(也叫 infra 容器)負(fù)責(zé)持有網(wǎng)絡(luò)命名空間

每個(gè) Pod 有獨(dú)立的 IP,端口空間也是獨(dú)立的

驗(yàn)證 Pod 網(wǎng)絡(luò):

# 創(chuàng)建測(cè)試 Pod
kubectl run nginx --image=nginx:alpine

# 查看 Pod IP
kubectl get pod nginx -o wide

# 進(jìn)入 Pod 查看網(wǎng)絡(luò)配置
kubectlexec-it nginx -- sh
/# ip addr
/# ip route
/# cat /etc/resolv.conf

2.2.3 Service 四種類(lèi)型詳解

Service 是 K8s 網(wǎng)絡(luò)的核心抽象,它為一組 Pod 提供穩(wěn)定的訪問(wèn)入口。說(shuō)白了,Pod IP 會(huì)變,但 Service IP 不會(huì)變。

┌─────────────────────────────────────────────────────────────────────┐
│           Service 四種類(lèi)型對(duì)比               │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌───────────┐ │
│ │ ClusterIP  │ │ NodePort  │ │LoadBalancer │ │ExternalName│ │
│ │ (默認(rèn))   │ │       │ │       │ │      │ │
│ ├─────────────┤ ├─────────────┤ ├─────────────┤ ├───────────┤ │
│ │ 僅集群內(nèi)部 │ │ 節(jié)點(diǎn)端口  │ │ 云LB + NP  │ │ DNS別名  │ │
│ │ 訪問(wèn)    │ │ 30000-32767 │ │ 自動(dòng)創(chuàng)建  │ │ 無(wú)代理  │ │
│ │      │ │       │ │       │ │      │ │
│ │ 10.96.x.x │ │ NodeIP:Port │ │ External IP │ │ CNAME記錄 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └───────────┘ │
│                                   │
│ 適用場(chǎng)景:                             │
│ - ClusterIP: 內(nèi)部微服務(wù)通信                     │
│ - NodePort: 開(kāi)發(fā)測(cè)試、簡(jiǎn)單暴露                   │
│ - LoadBalancer: 生產(chǎn)環(huán)境對(duì)外服務(wù)                  │
│ - ExternalName: 訪問(wèn)集群外部服務(wù)                  │
│                                   │
└─────────────────────────────────────────────────────────────────────┘

1. ClusterIP(默認(rèn)類(lèi)型)

apiVersion:v1
kind:Service
metadata:
name:my-service
spec:
type:ClusterIP# 可省略,默認(rèn)就是 ClusterIP
selector:
 app:my-app
ports:
-port:80   # Service 端口
 targetPort:8080# Pod 端口

2. NodePort

apiVersion:v1
kind:Service
metadata:
name:my-nodeport-service
spec:
type:NodePort
selector:
 app:my-app
ports:
-port:80
 targetPort:8080
 nodePort:30080# 可選,不指定會(huì)自動(dòng)分配 30000-32767

3. LoadBalancer

apiVersion:v1
kind:Service
metadata:
name:my-lb-service
annotations:
 # 云廠商特定注解
 service.beta.kubernetes.io/aws-load-balancer-type:"nlb"
spec:
type:LoadBalancer
selector:
 app:my-app
ports:
-port:80
 targetPort:8080

4. ExternalName

apiVersion:v1
kind:Service
metadata:
name:external-db
spec:
type:ExternalName
externalName:db.example.com# 返回 CNAME 記錄

2.2.4 kube-proxy 三種模式深度解析

kube-proxy 是實(shí)現(xiàn) Service 負(fù)載均衡的關(guān)鍵組件。它有三種工作模式,理解它們的區(qū)別對(duì)于性能調(diào)優(yōu)和故障排查非常重要。

模式對(duì)比:

特性 iptables IPVS nftables (1.31+)
性能 O(n) 規(guī)則匹配 O(1) 哈希查找 O(1) 集合查找
大規(guī)模支持 差(>1000 Service 性能下降) 優(yōu)秀 優(yōu)秀
負(fù)載均衡算法 隨機(jī) rr/lc/dh/sh/sed/nq 隨機(jī)
連接追蹤 依賴(lài) conntrack 內(nèi)置 依賴(lài) conntrack
調(diào)試難度 中等 較難 中等
內(nèi)核要求 3.10+ 4.0+ 5.13+

1. iptables 模式(傳統(tǒng)默認(rèn))

┌─────────────────────────────────────────────────────────────────────┐
│          iptables 模式工作原理               │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│  Client Pod                            │
│    │                               │
│    │ dst: 10.96.0.10:80 (ClusterIP)               │
│    ▼                               │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │          iptables 規(guī)則鏈            │   │
│  │                             │   │
│  │ PREROUTING → KUBE-SERVICES → KUBE-SVC-XXX       │   │
│  │                  │           │   │
│  │          ┌───────────────┼───────────────┐  │   │
│  │          ▼        ▼        ▼  │   │
│  │       KUBE-SEP-A   KUBE-SEP-B   KUBE-SEP-C │   │
│  │       (Pod A)    (Pod B)     (Pod C)   │   │
│  │       33.3%     33.3%      33.3%    │   │
│  │                             │   │
│  └─────────────────────────────────────────────────────────┘   │
│    │                               │
│    │ DNAT: dst → 10.244.1.5:8080 (Pod IP)            │
│    ▼                               │
│  Backend Pod                            │
│                                   │
└─────────────────────────────────────────────────────────────────────┘
# 查看 iptables 規(guī)則
iptables -t nat -L KUBE-SERVICES -n --line-numbers

# 查看特定 Service 的規(guī)則
iptables -t nat -L KUBE-SVC-XXXXXXXXXXXXXXXX -n

2. IPVS 模式(推薦大規(guī)模集群)

┌─────────────────────────────────────────────────────────────────────┐
│           IPVS 模式工作原理                │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│  Client Pod                            │
│    │                               │
│    │ dst: 10.96.0.10:80                     │
│    ▼                               │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │          IPVS Virtual Server          │   │
│  │                             │   │
│  │  VIP: 10.96.0.10:80                  │   │
│  │  調(diào)度算法: rr (round-robin)               │   │
│  │                             │   │
│  │  Real Servers:                     │   │
│  │  ├── 10.244.1.5:8080 weight=1             │   │
│  │  ├── 10.244.2.3:8080 weight=1             │   │
│  │  └── 10.244.3.7:8080 weight=1             │   │
│  │                             │   │
│  └─────────────────────────────────────────────────────────┘   │
│    │                               │
│    │ 直接轉(zhuǎn)發(fā)到選中的 Real Server                │
│    ▼                               │
│  Backend Pod                            │
│                                   │
└─────────────────────────────────────────────────────────────────────┘
# 啟用 IPVS 模式
kubectl edit configmap kube-proxy -n kube-system
# 修改 mode: "ipvs"

# 查看 IPVS 規(guī)則
ipvsadm -Ln

# 查看特定 Service
ipvsadm -Ln -t 10.96.0.10:80

3. nftables 模式(K8s 1.31+ 新增)

這是 2025 年底新增的模式,用于替代老舊的 iptables。如果你的內(nèi)核版本夠新(5.13+),建議嘗試。

# 啟用 nftables 模式(需要 K8s 1.31+)
kubectl edit configmap kube-proxy -n kube-system
# 修改 mode: "nftables"

# 查看 nftables 規(guī)則
nft list ruleset | grep -A 20"chain services"

踩坑經(jīng)驗(yàn):我們?cè)谝粋€(gè) 500+ Service 的集群上從 iptables 切換到 IPVS 后,Service 訪問(wèn)延遲從平均 2ms 降到了 0.5ms。但要注意,IPVS 模式下需要確保ip_vs、ip_vs_rr、ip_vs_wrr、ip_vs_sh等內(nèi)核模塊已加載。

2.3 DNS 解析流程

2.3.1 CoreDNS 工作原理

K8s 集群內(nèi)的服務(wù)發(fā)現(xiàn)主要依賴(lài) DNS。CoreDNS 是集群的 DNS 服務(wù)器,負(fù)責(zé)解析 Service 名稱(chēng)到 ClusterIP。

┌─────────────────────────────────────────────────────────────────────┐
│          K8s DNS 解析流程                 │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│  Pod (curl my-service)                       │
│    │                               │
│    │ 1. 查詢 my-service                     │
│    ▼                               │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │       /etc/resolv.conf              │   │
│  │ nameserver 10.96.0.10 (CoreDNS ClusterIP)       │   │
│  │ search default.svc.cluster.local svc.cluster.local   │   │
│  │     cluster.local                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│    │                               │
│    │ 2. 依次嘗試:                        │
│    │  - my-service.default.svc.cluster.local         │
│    │  - my-service.svc.cluster.local             │
│    │  - my-service.cluster.local               │
│    ▼                               │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │          CoreDNS                │   │
│  │                             │   │
│  │ ┌─────────────┐  ┌─────────────┐           │   │
│  │ │ kubernetes │  │ forward  │           │   │
│  │ │  plugin  │  │ plugin   │           │   │
│  │ │       │  │       │           │   │
│  │ │ 查詢 K8s API│  │ 轉(zhuǎn)發(fā)到上游 │           │   │
│  │ │ 獲取 Service│  │ DNS 服務(wù)器 │           │   │
│  │ └─────────────┘  └─────────────┘           │   │
│  └─────────────────────────────────────────────────────────┘   │
│    │                               │
│    │ 3. 返回 ClusterIP: 10.96.100.50              │
│    ▼                               │
│  Pod 訪問(wèn) 10.96.100.50                       │
│                                   │
└─────────────────────────────────────────────────────────────────────┘

DNS 記錄類(lèi)型:

記錄類(lèi)型 格式 示例
Service A 記錄 ..svc.cluster.local nginx.default.svc.cluster.local
Pod A 記錄 ..pod.cluster.local 10-244-1-5.default.pod.cluster.local
Headless Service 返回所有 Pod IP 用于 StatefulSet
SRV 記錄 _._...svc.cluster.local 包含端口信息

2.3.2 CoreDNS 配置優(yōu)化

# CoreDNS ConfigMap
apiVersion:v1
kind:ConfigMap
metadata:
name:coredns
namespace:kube-system
data:
Corefile:|
  .:53 {
    errors
    health {
      lameduck 5s
    }
    ready
    kubernetes cluster.local in-addr.arpa ip6.arpa {
      pods insecure
      fallthrough in-addr.arpa ip6.arpa
      ttl 30
    }
    prometheus :9153
    forward . /etc/resolv.conf {
      max_concurrent 1000
    }
    cache 30
    loop
    reload
    loadbalance
  }

常見(jiàn) DNS 問(wèn)題排查:

# 測(cè)試 DNS 解析
kubectl run dnstest --image=busybox:1.28 --rm -it --restart=Never -- nslookup kubernetes

# 查看 CoreDNS 日志
kubectl logs -n kube-system -l k8s-app=kube-dns -f

# 檢查 CoreDNS Pod 狀態(tài)
kubectl get pods -n kube-system -l k8s-app=kube-dns

# 查看 DNS 配置
kubectl get configmap coredns -n kube-system -o yaml

踩坑提醒:曾經(jīng)遇到過(guò)一個(gè)詭異的問(wèn)題,Pod 內(nèi) DNS 解析偶發(fā)超時(shí)。排查了半天,發(fā)現(xiàn)是ndots配置的鍋。默認(rèn)ndots:5意味著域名中點(diǎn)數(shù)少于 5 個(gè)時(shí),會(huì)先嘗試加上 search 域。建議在 Pod spec 中顯式設(shè)置:

spec:
dnsConfig:
 options:
 -name:ndots
  value:"2"# 減少不必要的 DNS 查詢
 -name:single-request-reopen# 避免 conntrack 競(jìng)爭(zhēng)

三、NetworkPolicy 實(shí)戰(zhàn)

3.1 NetworkPolicy 基礎(chǔ)

NetworkPolicy 是 K8s 的網(wǎng)絡(luò)安全策略,用于控制 Pod 之間的流量。默認(rèn)情況下,K8s 集群內(nèi)所有 Pod 可以互相訪問(wèn),這在生產(chǎn)環(huán)境是很危險(xiǎn)的。

┌─────────────────────────────────────────────────────────────────────┐
│         NetworkPolicy 工作原理               │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│  默認(rèn)行為(無(wú) NetworkPolicy):                   │
│  ┌─────┐   ┌─────┐   ┌─────┐                 │
│  │Pod A│?───?│Pod B│?───?│Pod C│  所有 Pod 互通         │
│  └─────┘   └─────┘   └─────┘                 │
│                                   │
│  應(yīng)用 NetworkPolicy 后:                      │
│  ┌─────┐   ┌─────┐   ┌─────┐                 │
│  │Pod A│────?│Pod B│ ? │Pod C│  只允許特定流量         │
│  └─────┘   └─────┘   └─────┘                 │
│    │      ▲                         │
│    │      │ 只允許來(lái)自 Pod A 的流量             │
│    └───────────┘                         │
│                                   │
└─────────────────────────────────────────────────────────────────────┘

重要概念:

NetworkPolicy 是白名單機(jī)制

一旦對(duì) Pod 應(yīng)用了 NetworkPolicy,默認(rèn)拒絕所有未明確允許的流量

需要 CNI 插件支持(Flannel 不支持?。?/p>

3.2 實(shí)戰(zhàn)案例

案例一:默認(rèn)拒絕所有入站流量

# deny-all-ingress.yaml
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:deny-all-ingress
namespace:production
spec:
podSelector:{}# 選擇該命名空間所有 Pod
policyTypes:
-Ingress
# 沒(méi)有 ingress 規(guī)則 = 拒絕所有入站

案例二:只允許特定 Pod 訪問(wèn)數(shù)據(jù)庫(kù)

# allow-app-to-db.yaml
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:allow-app-to-db
namespace:production
spec:
podSelector:
 matchLabels:
  app:mysql# 應(yīng)用到 mysql Pod
policyTypes:
-Ingress
ingress:
-from:
 -podSelector:
   matchLabels:
    app:backend# 只允許 backend Pod 訪問(wèn)
 ports:
 -protocol:TCP
  port:3306

案例三:允許來(lái)自特定命名空間的流量

# allow-from-namespace.yaml
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:allow-monitoring
namespace:production
spec:
podSelector:{}
policyTypes:
-Ingress
ingress:
-from:
 -namespaceSelector:
   matchLabels:
    name:monitoring# 允許 monitoring 命名空間的所有 Pod
 ports:
 -protocol:TCP
  port:9090# Prometheus 指標(biāo)端口

案例四:限制出站流量(防止數(shù)據(jù)泄露)

# restrict-egress.yaml
apiVersion:networking.k8s.io/v1
kind:NetworkPolicy
metadata:
name:restrict-egress
namespace:production
spec:
podSelector:
 matchLabels:
  app:sensitive-app
policyTypes:
-Egress
egress:
# 允許訪問(wèn) DNS
-to:
 -namespaceSelector:{}
  podSelector:
   matchLabels:
    k8s-app:kube-dns
 ports:
 -protocol:UDP
  port:53
# 允許訪問(wèn)內(nèi)部數(shù)據(jù)庫(kù)
-to:
 -podSelector:
   matchLabels:
    app:mysql
 ports:
 -protocol:TCP
  port:3306
# 禁止其他所有出站流量

3.3 NetworkPolicy 調(diào)試技巧

# 查看命名空間下的所有 NetworkPolicy
kubectl get networkpolicy -n production

# 查看詳細(xì)規(guī)則
kubectl describe networkpolicy allow-app-to-db -n production

# 使用 Cilium 的話,可以用 Hubble 可視化流量
hubble observe --namespace production

# 測(cè)試連通性
kubectlexec-ittest-pod -- nc -zv mysql-service 3306

生產(chǎn)經(jīng)驗(yàn):建議采用"默認(rèn)拒絕 + 顯式允許"的策略。先在每個(gè)命名空間部署 deny-all 策略,然后根據(jù)實(shí)際需求逐步開(kāi)放。這樣可以最大程度減少攻擊面。

四、最佳實(shí)踐和注意事項(xiàng)

4.1 最佳實(shí)踐

4.1.1 CNI 選型建議

根據(jù)我這些年的經(jīng)驗(yàn),給出以下選型建議:

場(chǎng)景 推薦方案 理由
學(xué)習(xí)/測(cè)試環(huán)境 Flannel 簡(jiǎn)單易用,資源占用少
中小規(guī)模生產(chǎn) Calico 成熟穩(wěn)定,社區(qū)活躍
大規(guī)模生產(chǎn) Cilium eBPF 性能優(yōu)異,可觀測(cè)性強(qiáng)
多集群/混合云 Cilium Cluster Mesh 原生支持跨集群通信
安全敏感場(chǎng)景 Cilium + Tetragon 內(nèi)核級(jí)安全監(jiān)控

4.1.2 性能優(yōu)化

# 1. 啟用 IPVS 模式(大規(guī)模集群必備)
kubectl edit configmap kube-proxy -n kube-system
# 設(shè)置 mode: "ipvs"

# 2. 調(diào)整 conntrack 參數(shù)
cat >> /etc/sysctl.conf << EOF
net.netfilter.nf_conntrack_max = 1000000
net.netfilter.nf_conntrack_tcp_timeout_established = 86400
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 3600
EOF
sysctl -p

# 3. 如果使用 Cilium,啟用 BPF 主機(jī)路由
helm upgrade cilium cilium/cilium 
? --set?bpf.masquerade=true?
? --set?routingMode=native 
? --set?autoDirectNodeRoutes=true

4.1.3 高可用配置

# CoreDNS 高可用配置
apiVersion:apps/v1
kind:Deployment
metadata:
name:coredns
namespace:kube-system
spec:
replicas:3# 至少 3 副本
strategy:
 type:RollingUpdate
 rollingUpdate:
  maxUnavailable:1
template:
 spec:
  affinity:
   podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    -labelSelector:
      matchLabels:
       k8s-app:kube-dns
     topologyKey:kubernetes.io/hostname# 分散到不同節(jié)點(diǎn)

4.2 注意事項(xiàng)

4.2.1 常見(jiàn)陷阱

問(wèn)題 原因 解決方案
Pod 無(wú)法訪問(wèn) Service kube-proxy 未運(yùn)行或規(guī)則未同步 檢查 kube-proxy 日志,重啟 Pod
跨節(jié)點(diǎn) Pod 不通 CNI 配置錯(cuò)誤或防火墻阻斷 檢查節(jié)點(diǎn)間網(wǎng)絡(luò),開(kāi)放 VXLAN 端口
DNS 解析超時(shí) CoreDNS 資源不足或 ndots 配置 增加副本數(shù),調(diào)整 ndots
Service 負(fù)載不均 會(huì)話親和性或 IPVS 調(diào)度算法 檢查 sessionAffinity 配置
NetworkPolicy 不生效 CNI 不支持或規(guī)則配置錯(cuò)誤 確認(rèn) CNI 支持,檢查 selector

4.2.2 安全加固

# 1. 禁用 NodePort 范圍外的端口
# 在 kube-apiserver 配置中設(shè)置
--service-node-port-range=30000-32767

# 2. 啟用 Pod 安全策略(或 Pod Security Standards)
kubectl label namespace production 
 pod-security.kubernetes.io/enforce=restricted

# 3. 限制 hostNetwork 使用
# 在 NetworkPolicy 中明確禁止

五、故障排查和監(jiān)控

5.1 故障排查

5.1.1 網(wǎng)絡(luò)排查流程圖

┌─────────────────────────────────────────────────────────────────────┐
│          K8s 網(wǎng)絡(luò)故障排查流程               │
├─────────────────────────────────────────────────────────────────────┤
│                                   │
│  Pod 網(wǎng)絡(luò)不通?                           │
│    │                               │
│    ▼                               │
│  ┌─────────────────────────────────────────┐           │
│  │ 1. 檢查 Pod 狀態(tài)             │           │
│  │  kubectl get pod -o wide       │           │
│  │  Pod 是否 Running?IP 是否分配?    │           │
│  └─────────────────┬───────────────────────┘           │
│           │                        │
│     ┌───────────┴───────────┐                 │
│     ▼            ▼                 │
│  Pod 異常         Pod 正常                 │
│  檢查 CNI 日志      │                    │
│              ▼                    │
│          ┌─────────────────────────────────────┐     │
│          │ 2. 檢查同節(jié)點(diǎn) Pod 互通        │     │
│          │  kubectlexecpod1 -- ping pod2  │     │
│          └─────────────────┬───────────────────┘     │
│                   │               │
│             ┌───────────┴───────────┐         │
│             ▼            ▼         │
│          同節(jié)點(diǎn)不通       同節(jié)點(diǎn)通         │
│          檢查 CNI/網(wǎng)橋      │            │
│                     ▼            │
│                 ┌─────────────────────────────┐  │
│                 │ 3. 檢查跨節(jié)點(diǎn) Pod 互通    │  │
│                 └─────────────────┬───────────┘  │
│                          │        │
│                    ┌───────────┴───────────┐  │
│                    ▼            ▼  │
│                 跨節(jié)點(diǎn)不通       跨節(jié)點(diǎn)通  │
│                 檢查 Overlay/路由    │     │
│                 檢查防火墻       ▼     │
│                         ┌─────────────┐  │
│                         │ 4. 檢查   │  │
│                         │ Service/DNS │  │
│                         └─────────────┘  │
│                                   │
└─────────────────────────────────────────────────────────────────────┘

5.1.2 常用排查命令

# === Pod 層面 ===
# 查看 Pod 網(wǎng)絡(luò)配置
kubectlexec-it  -- ip addr
kubectlexec-it  -- ip route
kubectlexec-it  -- cat /etc/resolv.conf

# 測(cè)試連通性
kubectlexec-it  -- ping 
kubectlexec-it  -- curl -v :
kubectlexec-it  -- nslookup 

# === 節(jié)點(diǎn)層面 ===
# 查看網(wǎng)橋和 veth
ip link showtypebridge
ip link showtypeveth
brctl show # 如果使用網(wǎng)橋模式

# 查看路由表
ip route show
ip route get 

# 查看 iptables 規(guī)則
iptables -t nat -L -n -v | grep 
iptables -t filter -L -n -v

# 查看 IPVS 規(guī)則
ipvsadm -Ln
ipvsadm -Ln --stats

# === CNI 層面 ===
# Cilium 狀態(tài)檢查
cilium status
cilium connectivitytest

# Calico 狀態(tài)檢查
calicoctl node status
calicoctl get ippool -o wide

5.1.3 抓包分析

# 在節(jié)點(diǎn)上抓取特定 Pod 的流量
# 首先找到 Pod 的 veth 接口
POD_ID=$(crictl pods --name  -q)
VETH=$(ip link | grep -A1"veth"| grep$POD_ID| awk'{print $2}'| tr -d':')

# 抓包
tcpdump -i$VETH-nn -w pod-traffic.pcap

# 或者使用 nsenter 進(jìn)入 Pod 網(wǎng)絡(luò)命名空間
PID=$(crictl inspect$POD_ID| jq'.info.pid')
nsenter -t$PID-n tcpdump -i eth0 -nn

5.2 性能監(jiān)控

5.2.1 關(guān)鍵指標(biāo)

指標(biāo) 正常范圍 告警閾值 說(shuō)明
DNS 查詢延遲 < 5ms > 50ms CoreDNS 響應(yīng)時(shí)間
Service 延遲 < 1ms > 10ms kube-proxy 轉(zhuǎn)發(fā)延遲
跨節(jié)點(diǎn)延遲 < 1ms > 5ms Overlay 網(wǎng)絡(luò)開(kāi)銷(xiāo)
conntrack 使用率 < 70% > 85% 連接跟蹤表使用
丟包率 0% > 0.1% 網(wǎng)絡(luò)丟包

5.2.2 Prometheus 監(jiān)控配置

# 網(wǎng)絡(luò)相關(guān)告警規(guī)則
apiVersion:monitoring.coreos.com/v1
kind:PrometheusRule
metadata:
name:network-alerts
spec:
groups:
-name:network
 rules:
 -alert:HighDNSLatency
  expr:histogram_quantile(0.99,rate(coredns_dns_request_duration_seconds_bucket[5m]))>0.05
  for:5m
  labels:
   severity:warning
  annotations:
   summary:"DNS 查詢延遲過(guò)高"

 -alert:ConntrackTableFull
  expr:node_nf_conntrack_entries/node_nf_conntrack_entries_limit>0.85
  for:5m
  labels:
   severity:critical
  annotations:
   summary:"Conntrack 表即將滿"

六、總結(jié)

6.1 技術(shù)要點(diǎn)回顧

Pod 網(wǎng)絡(luò)模型:每個(gè) Pod 獨(dú)立 IP,同 Pod 容器共享網(wǎng)絡(luò)命名空間

CNI 插件:2026年首選 Cilium,eBPF 帶來(lái)性能和可觀測(cè)性優(yōu)勢(shì)

Service 類(lèi)型:ClusterIP(內(nèi)部)、NodePort(測(cè)試)、LoadBalancer(生產(chǎn))、ExternalName(外部)

kube-proxy 模式:大規(guī)模集群用 IPVS,新集群可嘗試 nftables

DNS 解析:CoreDNS 負(fù)責(zé)服務(wù)發(fā)現(xiàn),注意 ndots 配置優(yōu)化

NetworkPolicy:白名單機(jī)制,生產(chǎn)環(huán)境必須配置

6.2 進(jìn)階學(xué)習(xí)方向

eBPF 深入學(xué)習(xí)

學(xué)習(xí)資源:Cilium 官方文檔、eBPF.io

實(shí)踐建議:部署 Hubble 可視化,學(xué)習(xí) BPF 程序編寫(xiě)

服務(wù)網(wǎng)格(Service Mesh)

學(xué)習(xí)資源:Istio、Linkerd 官方文檔

實(shí)踐建議:理解 Sidecar 模式,對(duì)比 Cilium Service Mesh

多集群網(wǎng)絡(luò)

學(xué)習(xí)資源:Cilium Cluster Mesh、Submariner

實(shí)踐建議:搭建跨集群通信實(shí)驗(yàn)環(huán)境

6.3 參考資料

Kubernetes 官方網(wǎng)絡(luò)文檔

Cilium 官方文檔

Calico 官方文檔

CoreDNS 官方文檔

附錄

A. 命令速查表

# Pod 網(wǎng)絡(luò)
kubectl get pod -o wide          # 查看 Pod IP
kubectlexec-it  -- ip addr     # 查看 Pod 網(wǎng)絡(luò)配置

# Service
kubectl get svc              # 查看 Service
kubectl get endpoints           # 查看 Endpoints

# DNS
kubectl run -it --rm debug --image=busybox -- nslookup 

# CNI
cilium status               # Cilium 狀態(tài)
calicoctl node status           # Calico 狀態(tài)

# kube-proxy
iptables -t nat -L KUBE-SERVICES -n    # iptables 規(guī)則
ipvsadm -Ln                # IPVS 規(guī)則

B. 術(shù)語(yǔ)表

術(shù)語(yǔ) 英文 解釋
CNI Container Network Interface 容器網(wǎng)絡(luò)接口標(biāo)準(zhǔn)
IPAM IP Address Management IP 地址管理
VXLAN Virtual Extensible LAN 虛擬可擴(kuò)展局域網(wǎng)
BGP Border Gateway Protocol 邊界網(wǎng)關(guān)協(xié)議
eBPF extended Berkeley Packet Filter 擴(kuò)展伯克利包過(guò)濾器

寫(xiě)在最后:K8s 網(wǎng)絡(luò)確實(shí)復(fù)雜,但只要理解了核心概念,剩下的就是實(shí)踐和積累。建議大家多動(dòng)手搭建測(cè)試環(huán)境,用 tcpdump 抓包分析,這樣才能真正掌握。有問(wèn)題歡迎交流,我們下篇文章見(jiàn)!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    8340

    瀏覽量

    95600
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3831

    瀏覽量

    52287
  • 負(fù)載均衡
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    12909

原文標(biāo)題:萬(wàn)字長(zhǎng)文圖解 K8s 網(wǎng)絡(luò):從 Pod 到 Service 的流量奇幻漂流

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是 K8S,如何使用 K8S

    Kubernetes(簡(jiǎn)稱(chēng)K8S)是個(gè)用于管理容器化應(yīng)用程序的開(kāi)源平臺(tái)。以下是關(guān)于K8S及其使用方法的介紹: 、什么是 K8S 核心特
    發(fā)表于 06-25 06:45

    k8s volume中的本地存儲(chǔ)和網(wǎng)絡(luò)存儲(chǔ)

    八 、 k8s volume 本地存儲(chǔ)和網(wǎng)絡(luò)存儲(chǔ)
    發(fā)表于 03-25 08:44

    OpenStack與K8s結(jié)合的兩種方案的詳細(xì)介紹和比較

    OpenStack與K8S結(jié)合主要有兩種方案。K8S部署在OpenStack平臺(tái)之上,二是K8S和OpenStack組件集成。
    的頭像 發(fā)表于 10-14 09:38 ?2.9w次閱讀

    如何使用kubernetes client-go實(shí)踐個(gè)簡(jiǎn)單的與K8s交互過(guò)程

    【導(dǎo)讀】Kubernetes項(xiàng)目使用Go語(yǔ)言編寫(xiě),對(duì)Go api原生支持非常便捷。 本篇文章介紹了如何使用kubernetes client-go實(shí)踐個(gè)簡(jiǎn)單的與K8s交互過(guò)程
    的頭像 發(fā)表于 02-02 11:16 ?8042次閱讀
    如何使用kubernetes client-go實(shí)踐<b class='flag-5'>一</b>個(gè)簡(jiǎn)單的與<b class='flag-5'>K8s</b>交互過(guò)程

    k8s容器運(yùn)行時(shí)演進(jìn)歷史

    在docker/k8s時(shí)代,經(jīng)常聽(tīng)到CRI, OCI,containerd和各種shim等名詞,看完本篇博,您會(huì)有個(gè)徹底的理解。 典型的K8S Runtime架構(gòu) 從最常見(jiàn)的Dock
    的頭像 發(fā)表于 02-02 13:50 ?2773次閱讀
    <b class='flag-5'>k8s</b>容器運(yùn)行時(shí)演進(jìn)歷史

    Docker不香嗎為什么還要用K8s

    Docker 雖好用,但面對(duì)強(qiáng)大的集群,成千上萬(wàn)的容器,突然感覺(jué)不香了。 這時(shí)候就需要我們的主角 Kubernetes 上場(chǎng)了,先來(lái)了解K8s 的基本概念,后面再介紹實(shí)踐,由淺入深步步為營(yíng)
    的頭像 發(fā)表于 06-02 11:56 ?4280次閱讀

    簡(jiǎn)單說(shuō)明k8s和Docker之間的關(guān)系

    這篇文章主要介紹了k8s和Docker關(guān)系簡(jiǎn)單說(shuō)明,本文利用圖文講解的很透徹,有需要的同學(xué)可以研究下 最近項(xiàng)目用到kubernetes(以下簡(jiǎn)稱(chēng)k8s,ks之間有
    的頭像 發(fā)表于 06-24 15:48 ?4366次閱讀

    K8S集群服務(wù)訪問(wèn)失敗怎么辦 K8S故障處理集錦

    問(wèn)題1:K8S集群服務(wù)訪問(wèn)失??? ? ? 原因分析:證書(shū)不能被識(shí)別,其原因?yàn)椋鹤远x證書(shū),過(guò)期等。 解決方法:更新證書(shū)即可。 問(wèn)題2:K8S集群服務(wù)訪問(wèn)失??? curl: (7) Failed
    的頭像 發(fā)表于 09-01 11:11 ?1.7w次閱讀
    <b class='flag-5'>K8S</b>集群服務(wù)訪問(wèn)失敗怎么辦 <b class='flag-5'>K8S</b>故障處理集錦

    K8S(kubernetes)學(xué)習(xí)指南

    K8S(kubernetes)學(xué)習(xí)指南
    發(fā)表于 06-29 14:14 ?0次下載

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes簡(jiǎn)稱(chēng)K8s,是個(gè)開(kāi)源的,用于管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡(jiǎn)單并且高效(powerful
    發(fā)表于 07-19 13:14 ?1882次閱讀

    什么是K3sK8sK3sK8s有什么區(qū)別?

    Kubernetes,通常縮寫(xiě)為 K8s,是領(lǐng)先的容器編排工具。該開(kāi)源項(xiàng)目最初由 Google 開(kāi)發(fā),幫助塑造了現(xiàn)代編排的定義。該系統(tǒng)包括了部署和運(yùn)行容器化系統(tǒng)所需的切。
    的頭像 發(fā)表于 08-03 10:53 ?9689次閱讀

    k8s生態(tài)鏈包含哪些技術(shù)

    1. Apache APISIX Ingress 定義 ? 在 K8s 生態(tài)中,Ingress 作為表示 K8s 流量入口的種資源,想要讓其生效,就需要有個(gè) Ingress Con
    的頭像 發(fā)表于 08-07 10:56 ?2349次閱讀
    <b class='flag-5'>k8s</b>生態(tài)鏈包含哪些技術(shù)

    常用的k8s容器網(wǎng)絡(luò)模式有哪些?

    常用的k8s容器網(wǎng)絡(luò)模式包括Bridge模式、Host模式、Overlay模式、Flannel模式、CNI(ContainerNetworkInterface)模式。K8s的容器網(wǎng)絡(luò)
    的頭像 發(fā)表于 09-19 11:29 ?1212次閱讀

    k8s云原生開(kāi)發(fā)要求

    Kubernetes(K8s)云原生開(kāi)發(fā)對(duì)硬件有定要求。CPU方面,建議至少配備2個(gè)邏輯核心,高性能CPU更佳。內(nèi)存至少4GB,但8GB或更高更推薦。存儲(chǔ)需至少20-30GB可用空間,SSD提升
    的頭像 發(fā)表于 10-24 10:03 ?1395次閱讀
    <b class='flag-5'>k8s</b>云原生開(kāi)發(fā)要求

    K8s存儲(chǔ)類(lèi)設(shè)計(jì)與Ceph集成實(shí)戰(zhàn)

    在云原生時(shí)代,存儲(chǔ)是制約應(yīng)用性能的關(guān)鍵瓶頸。本文將帶你深入理解K8s存儲(chǔ)類(lèi)的設(shè)計(jì)原理,并手把手實(shí)現(xiàn)與Ceph的完美集成,讓你的集群存儲(chǔ)性能提升300%!
    的頭像 發(fā)表于 08-22 11:50 ?1130次閱讀
    南开区| 双江| 甘洛县| 蓝田县| 渝北区| 林西县| 长治县| 凤山县| 勃利县| 涿州市| 凤庆县| 无锡市| 黄冈市| 买车| 邯郸县| 青龙| 南城县| 乳山市| 中超| 新晃| 东乌珠穆沁旗| 化州市| 房产| 平罗县| 贵州省| 民乐县| 芜湖市| 佳木斯市| 阿拉善盟| 遂川县| 海淀区| 浙江省| 迁西县| 江北区| 伊川县| 毕节市| 河西区| 逊克县| 广东省| 丰城市| 陇西县|