
Kubernetes 网络与操作管理修正 规整版一、K8s 网络1.1 K8s 三种网络通信方式节点网络nodeIP通过物理网卡上的 nodeIP 实现节点间的跨主机通信。Pod 网络podIPPod 与 Pod 之间可通过 podIP 直接相互通信。Service 网络clusterIP在 K8S 集群内部可通过 Service 资源的 clusterIP 实现对 Pod 的代理转发。1.2 K8s 三大核心接口表格接口名称英文全称核心职责常见实现CNIContainer Network Interface负责 Pod 间网络通信、网络策略Network Policy管控Calico、Flannel、Weave、CiliumCRIContainer Runtime Interface负责容器全生命周期管理创建、运行、停止containerd、CRI-O、Dockerkube 1.24 已弃用默认 CRICSIContainer Storage Interface负责容器存储卷的挂载与生命周期管理ceph-csi、aws-ebs-csi、nfs-csi1.3 主流网络插件1Flannel特点配置简单、基于叠加网络L2/L3实现存在封装 / 解封装开销无网络策略能力。默认网段10.244.0.0/16。核心工作模式表格模式原理优点缺点总结UDP节点间通过 UDP 封装转发容器流量实现简单几乎不依赖底层网络性能最差已基本淘汰能用但慢仅为历史方案host-gw宿主机路由表直连转发无封装性能最优几乎无额外开销要求所有节点在同一二层 / 可直路由网络最快但网络环境要求高VXLAN基于 VXLANUDP VNI做二层网络封装跨子网 / 跨机房兼容云环境主流方案有封装开销性能略低于 host-gw通用性最强平衡性能与灵活性适用场景简单网络环境、业务量较小的场景。2Calico特点功能强大无封装 / 解封装开销性能损耗小支持复杂网络策略但路由表维护复杂度高。默认网段192.168.0.0/16。核心工作模式BGP同网段直连路由无封装IPIP跨网段封装转发VXLAN跨网段二层封装。适用场景复杂网络环境需较高运维能力。二、Kubernetes 操作管理2.1 资源管理方式表格管理方式定义特点陈述式命令行直接操作资源一条命令完成简单快捷适合临时操作无版本控制不适合生产环境声明式通过 YAML 配置清单定义资源 “期望状态”由 K8s 自动驱动达成支持版本控制、迭代管理适合生产环境可重复执行创建 / 更新2.2 核心操作命令1基础创建 / 删除shell # 创建自主式/静态 Pod kubectl run pod名称 --image镜像名 [–port端口] # 删除 Pod/Deployment/Namespace kubectl delete pod pod名称 kubectl delete deployment deployment名称 kubectl delete namespace 命名空间名称 # 创建 Deployment控制器管理的 Pod kubectl create deployment 名称 --image镜像名 [–replicas副本数] # 创建/删除命名空间 kubectl create namespace 名称 kubectl delete namespace 名称 # 扩缩容 Deployment 副本数 kubectl scale deployment 资源名称 --replicas副本数量2信息查看shell # 查看指定类型资源Pods/Service/Namespace/ComponentStatus/Node/所有资源 kubectl get pods kubectl get svc # 等价于 kubectl get service kubectl get ns # 等价于 kubectl get namespace kubectl get cs # 等价于 kubectl get componentstatus kubectl get node kubectl get all # 查看集群所有核心资源3端口映射与访问流向表格端口类型作用portService 在 clusterIP 上暴露的端口集群内访问入口targetPort对应容器映射在 Pod 上的端口Service 转发目标nodePort集群外通过nodeIP NodePort访问 Service 的端口范围30000-32767containerPort容器内部进程监听的端口集群内部访问流向客户端 → clusterIP:port → targetPort → podIP:containerPort集群外部访问流向客户端 → nodeIP:NodePort → targetPort → podIP:containerPort2.3 项目生命周期管理表格阶段操作命令说明创建kubectl create 资源类型 资源名称 --image镜像名 [--port端口 --replicas副本数]仅创建新资源资源已存在时报错不支持更新发布kubectl expose 资源类型 资源名称 --port 端口 --target-port 目标端口 --typeClusterIPNodePort为资源创建 Service暴露访问端口更新kubectl set image 资源类型 资源名称 容器名新镜像名更新资源关联的容器镜像回滚kubectl rollout undo 资源类型 资源名称 [--to-revision版本号]回滚到上一版本 / 指定版本辅助命令kubectl rollout history 资源类型 资源名称查看版本历史kubectl rollout status 资源类型 资源名称查看更新状态删除kubectl delete 资源类型 资源名称删除指定资源补充kubectl apply -f yaml文件支持 “创建 / 更新” 一体化声明式管理核心命令配置文件变更后可直接重新执行更新资源无需先删除。2.4 三种发布模式表格发布模式核心逻辑优点缺点总结蓝绿发布部署两套环境蓝 旧版本、绿 新版本一次性切换流量用户无感知业务稳定回滚快速消耗 2 倍资源成本高完全切换适合对稳定性要求极高的场景滚动发布按比例分批创建新 Pod、删除旧 PodK8s 默认更新机制资源消耗低逐步更新减少业务冲击过程中存在新旧版本共存可能有兼容性问题分批次替换平衡资源与稳定性灰度发布金丝雀 / 按比例放量先更新少量 Pod暂停更新小流量验证后逐步扩大比例至全量风险可控可提前发现问题按用户 / 比例放量发布周期长需监控流量与业务状态小流量试水逐步放量适合新功能验证2.5 K8s YAML 编写建议核心原则声明式管理核心载体需明确 “apiVersion、kind、metadata、spec” 四大核心段快速编写方法利用kubectl create 资源 名称 --dry-runclient -o yaml 文件.yaml生成基础模板参考官方文档 / 成熟模板按需调整 spec 字段如副本数、镜像、端口、存储等更新逻辑kubectl create -f yaml仅创建更新需先删除旧资源kubectl apply -f yaml创建 / 更新一体化生产环境首选。