k8s-Pod中的网络通信(3)

news/2025/11/2 20:34:22/文章来源:https://www.cnblogs.com/nijunyang/p/19183269

部署的pod都会涉及到和内外网络通信,我们部署的pod 有一个ip,这个IP 是集群内部的IP ,只能在集群内被访问,k8s中pod的网路通信是交给service来管理的,简称svc。负责将外部流量引入,和内部流量引出。

1.外部流量访问内部

我们pod部署的时候是有一个标签label的,service在创建的时候也会指定一个标签,这样就可以把对应label的pod关联起来,podIP+端口形成一个端点-ednpoint,service也有自己的IP和端口,service的端口和宿主机的端口通过NodePort形成映射,这样访问宿主机的端口就能访问到service,service再转发到对应的pod上。

service的这能力都是kude-proxy来实现的(部署k8s的时候对应的有一个kube-proxy:v1.28.15镜像)。kude-proxy最终会把这这些映射规则转化成iptables规则,来完成流量的转发。

image

 

创建service的方式

命令:expose

清单文件:apply -f 文件

 

kubectl expose deployment my-nginx-deploment --port=8001 --target-port=80 --type=NodePort

创建一个service将流量引入到my-nginx-deploment部署的pod上,

--port是service暴露的端口,

--target-port是背后实际应用容器的端口,我们部署的nginx是80端口

--type=NodePort 映射到宿主机端口 取值有这几个 ClusterIP, NodePort, LoadBalancer, or ExternalName. Default is 'ClusterIP'.

 

kubectl expose deployment my-nginx-deploment --port=8001 --target-port=80 --type=NodePort --dry-run=client -o yaml > my-nginx-svc.yaml

 

image

 

apply -f my-nginx-svc.yaml

kubectl get svc 查看service

kubectl describe svc my-nginx-deploment 查看详细的信息

 

image

 

启了一个service 给svc分配的ip是 10.108.229.67 这个IP 也是集群内部的IP,端口8001,指向了10.244.2.6:80,

在集群其他节点可以访问这个地址curl 10.104.212.94:8001 也能访问我们之前启动的nginx

集群外部访问的话就需要用到NodePort暴露的端口

任意node宿主机节点IP:NodePort暴露的端口

我的是

192.168.255.102:31101

192.168.255.103:31101

都可以访问到我们部署k8s里面的nginx了

 

image

 

2.内部访问外部:

pod——service——endpoint——外部服务

外部访问内部的时候endpoint 是pod的IP和端口,k8s自己可以知道是啥,内部访问外部的,走出去的时候K8s就不知道关联外部的endpoint了,这就需要手工配置endpoint了

image

 

我在vmware宿主机 IP:192.168.255.1 上面部署一个nginx:

image

 

创建资源清单文件:out-ng.yaml  内容如下

apiVersion: v1
kind: Service
metadata:name: out-ng
spec:ports:- port: 80targetPort: 80# 注意:没有 selector!
---
apiVersion: v1
kind: Endpoints   # 手动配置的端点
metadata:name: out-ng       # 必须和 Service 同名!
subsets:- addresses:- ip: 192.168.255.1   # 外部服务的 IPports:- port: 80

 

kubectl apply -f out-ng.yaml 

 

image

 

分配给service 的ip是 10.107.74.203 对应端点的是192.168.255.1:80

进入我们之前的pod里面,再访问service 的ip,就能看到访问到了我们外面机器部署的nginx

kubectl exec my-nginx-deploment-799c59bc4d-nkgbc -it -- /bin/bash

curl 10.107.74.203

image

 

我们现在建了两个svc,内部访问外部和外部访问内部是不同的svc负责。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/953785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个灵感:思维的断章

一个灵感:思维的断章 它来时,没有预兆。 不是在逻辑的链条上规行矩步,也不是在记忆的仓库里按图索骥。它诞生于一片更为辽阔、更为混沌的模糊空间。 那片空间,是意识的背景辐射,是思想形成之前的星云。那里,概念…

第十届中国大学生程序设计竞赛 哈尔滨站(CCPC 2024 Harbin Site)

第十届中国大学生程序设计竞赛 哈尔滨站(CCPC 2024 Harbin Site)比赛链接 Review 因为下周就要“一起哈啤”,所以这周末来 VP 去年的“一起哈啤”,然而已经一个多月没写代码了! 开题顺序依旧,看了个 J 感觉还挺可…

CSP-S 回顾

开考后发现自己穿了一个绒秋裤,考场上要被热死了,不断通过喝水降低体温。 $1min$ 第一题一下想到$DP和反悔贪心$,还好学了(汗) $1min 1s$否决掉了$DP$ $20min$ 奶龙考试时遇到了一些问题: 优先队列pair<int,p…

https://heylink.me/tizihacks/

https://heylink.me/tizihacks/https://heylink.me/tizihacks/

2025CSP-J游记

今年是最后一次打J组了,考的还可以。 上考场了,心想必将 J组 \(AK\),我带着信心又有点慌进考场了。 先看 \(T_1\) \(T_1\) 我感觉隔壁同学(好像是华辰的)语文挺好,看题好快,迅速开打。 \(应该是“最难的题”了吧…

通达信:引用函数 - Leone

DRAWNULL 无效数返回无效数。用法: DRAWNULL例如: IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL)表示下跌时不画线。 BACKSET 向前赋值用法: BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1. 例如: BACKSET(CLO…

项目架构

聊天机器人项目架构

CSP总结

DAY-1 机房里萦绕着一种特有的氛围,我复习了 \(wiki\) 上的数学与 \(DP\) 章节(但并没有用到)。 DAY1 8点到校,或许是前一天没睡好的缘故,在车上就想睡觉,于是在原本几乎全车人都很活跃的时间段里没有什么参与。…

AI泡沫再思考:技术革命与投资狂潮的真相

本文探讨了当前AI领域的投资泡沫现象与技术发展前景,分析了AGI实现时间表、就业市场影响以及初创企业生存率等关键问题,指出技术突破与市场震荡并存的复杂性。重新审视AI泡沫 | Daniel Miessler 为什么重大崩盘、AGI…

[群表示论]基本概念

取基础域为 \(\mathbb k\). 令 \(G\) 是一个群,同态 \(\rho\colon\ G\longrightarrow GL(V)\) 给出 \(G\) 的表示 \((V,\rho)\),其中 \(V\) 是线性空间. 我们称 \(V\) 是 \(G-\)模. 令 \(V\) 是 \(G-\)模,\(W\) 是 …

P14362 [CSP-S 2025] 道路修复

题目大意 给定 \(n\) 个点,\(m\) 条边的无向图且有边权,有 \(k\) 个额外点,每个额外点向这 \(n\) 个点连边,且额外点有点权,求最小生成树。 \(n\leq 1e4\),\(m\leq 1e6\),\(k\leq 10\)。 Sol 从考场思路改了一点…

10.30总结

1.早点休息了明天去泰山

基于 Maxwell 实现 MySQL 数据实时迁移到 Mongodb

在 DB 运维层而非应用层实现需求,以降低应用层的业务侵入性及性能影响。 maxwell 是一款 ETL 工具,基本原理是 实时解析 MySQL 的 binlog 丢到相应的 MQ 中供具体业务逻辑去消费。 比如最典型的一种大数据日志路径:…

CSP2025-S 坠机记

CSP2025-S 坠机记 省流:未能完成 AK 的心愿。初赛随便考的,94 分。 复赛依然是在七高,成功在 14:20 抵达教室,发现我所在的机房电脑性能要烂一些,然而键盘要好一些,应该是好事。位置是靠窗,比较好,开考前准备写…

世界计划:无法歌唱的初音未来

标题是骗你点进来的。 Day 0 上午爽爽玩神秘构造小游戏,连砍到 C 不知道多少。 然后写了点 AGC 题,感觉都很水啊,自己强爆了。 中午回去刷本,fgo 真特么好玩。 下午进考场,发现自己的座位附近散布了一堆熟人,但貌…

11.2 每日一题 赦免战俘

本题要求将一个矩阵分为四个子矩阵,在将四个子矩阵不断继续分成个子矩阵,直到无法分出,并且每次对左上角的矩阵进行处理。 本题可用dfs对矩阵不断进行划分如图所示,我们的目标为对每次划分出来的矩阵的左上角进行处…

jenkins安装排错

jenkins安装排错[root@localhost ~]# docker history jenkins/jenkins:2.497-jdk17 IMAGE CREATED CREATED BY SIZE COMMENT 2cef2c7f7799 8 months ago…

一、RK3562板卡上手

一、概述 板卡是搞活动的时候一块99元的RK3562,配置1GB的DDR、8GB的EmmC。 二、如何使用USB烧录系统到Emmc安装DriverAssitant_v5.13,安装瑞芯微的USB驱动,先点击卸载再点击安装 安装RKDevTool_Release_v3.31,安装…

【题解】CCPC 2024 Jinan Site [J] Temperance

题目链接 CCPC 2024 Jinan Site [J] Temperance 题目大意 题干看上去很复杂,但是我们可以发现,一个植物如果合法,那一定意味着它对应的 \(xy\) \(yz\) \(xz\)平面中,至少有一个平面整个平面合法,如果一个点不合法…