Kubernetes pod ip 暴露

news2025/2/4 12:56:24

在这里插入图片描述

1. k8s pod 和 service 网络暴露

  • 借助 iptables 的路由转发功能,打通k8s集群内的pod和service网络,与外部网络联通
# 查看集群的 pod 网段和 service 网段
kubectl -n kube-system describe cm kubeadm-config
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12

# 内核模块
sysctl -a | grep 'net.ipv4.ip_forward = 1'
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p

# 在k8s节点 192.168.1.79 节点上开启转发 192.168.0.0/16 网段为服务器网段,利用 192.168.0.0/16 网段某个服务器作为路由器
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 10.244.0.0/16
iptables -t nat -A POSTROUTING -s 192.168.0.0/16  -o eth0 -j SNAT --to-source 10.96.0.0/12

# 这个不确定是否执行
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE

# 测试,在 192.168.0.0/16 网段中找一个非k8s集群的服务器,加上路由,进行测试
# 现找个pod ip ping一下是否通不通
route add -net 10.244.0.0 netmask 255.255.0.0 gw 192.168.1.79 dev eth0
# 加上这个路由之后, 再测试看是否通

# 为了能让办公人员的浏览器可以访问到, 需要再核心交换机上配置规则
# 核心交换机
route add -net 10.244.0.0 netmask 255.255.0.0 gw 192.168.1.79 dev eth0
route add -net 10.96.0.0 netmask 255.240.0.0 gw 192.168.1.79 dev eth0
  • nginx demo
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-aa
spec:
  replicas: 1
  selector:
    matchLabels:
      app: aa
  template:
    metadata:
      labels:
        app: aa
    spec:
      containers:
      - name: nginx-aa
        image: nginx
        volumeMounts:
        - mountPath: /etc/nginx/conf.d/
          name: nginx-aa
      volumes:
      - configMap:
          name: nginx-aa
        name: nginx-aa
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-bb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: bb
  template:
    metadata:
      labels:
        app: bb
    spec:
      containers:
      - name: nginx-bb
        image: nginx
        volumeMounts:
        - mountPath: /etc/nginx/conf.d/
          name: nginx-bb
      volumes:
      - configMap:
          name: nginx-bb
        name: nginx-bb
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-aa
spec:
  type: ClusterIP
  ports:
    - port: 80
  selector:
    app: aa
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-bb
spec:
  type: ClusterIP
  ports:
    - port: 80
  selector:
    app: bb
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-demo
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  #ingressClassName: nginx
  rules:
  - host: jin.yeemiao.net.cn
    http:
      paths:
      - backend:
          service:
            name: nginx-aa
            port:
              number: 80
        path: /aa/
        pathType: Prefix
      - backend:
          service:
            name: nginx-bb
            port:
              number: 80
        path: /bb/
        pathType: Prefix
  tls:
  - hosts:
    - jin.yeemiao.net.cn
    secretName: yeemiao.net.cn
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-aa
data:
  default.conf: |
    server{
        listen       80; 
            server_name  localhost;
            location /aa/ {
               proxy_pass http://192.168.1.181:8888/;
                 }
    }
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-bb
data:
  default.conf: |
    server{
        listen       80;
            server_name  localhost;
            location /bb/ {
               proxy_pass http://192.168.1.181:8889/;
                 }
    }

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

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

相关文章

AI中的强化学习是怎么做的呢?

1. 什么是强化学习 其他许多机器学习算法中学习器都是学得怎样做,而强化学习(Reinforcement Learning, RL)是在尝试的过程中学习到在特定的情境下选择哪种行动可以得到最大的回报。在很多场景中,当前的行动不仅会影响当前的rewar…

LaTeX添加eps图片失败,File `XXX-eps-converted-to.pdf‘ not found

Texstudio选项->设置中选择了默认编译器PdfLaTeX,此时使用eps格式图片会报错 选择LaTeX编译器后不报错,是编译器处理图片格式转换出了问题 如果要用默认编译器PdfLaTeX,需要将eps格式图片转换为pdf格式,此时图片可以正常显示…

STM32G4x FLASH 读写配置结构体(LL库下使用)

主要工作就是把HAL的超时用LL库延时替代,保留了中断擦写模式、轮询等待擦写,我已经验证了部分。 笔者用的芯片为STM32G473CBT6 128KB Flash,开环环境为CUBEMXMDK5.32,因为G4已经没有标准库了,笔者还是习惯使用标准库的…

链接未来:深入理解链表数据结构(二.c语言实现带头双向循环链表)

上篇文章简述讲解了链表的基本概念并且实现了无头单向不循环链表:链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)-CSDN博客 那今天接着给大家带来带头双向循环链表的实现: 文章目录 一.项目文件规划…

非隔离恒压ACDC稳压智能电源模块芯片推荐:SM7015

非隔离恒压ACDC稳压智能电源模块芯片是一种用于将交流(AC)电源转换为直流(DC)电源的集成电路。这种芯片具有恒压输出功能,能够保持输出电压的稳定,适用于各种需要直流电源的应用场景。 非隔离电源模块通常…

Ubuntu20.04 及深度学习环境anaconda、cuda、cudnn、pytorch、paddle2.3安装记录

学习目标: Ubuntu20.04下装好torch、paddle深度学习环境。 选择的版本环境是 :最新的nvidia驱动、cuda 11.1 、cudnn v8.1.1,下面会说为啥这么选。 学习内容: 1. Ubuntu20.04仓库换源 本节参考Ubuntu 20.04 Linux更换源教程 2…

「用户与社区的深度对话」2023年度IvorySQL满意度调研

致IvorySQL社区成员, 🏃‍♂️2023年即将进入尾声,感谢每一位社区朋友对IvorySQL的支持。我们诚挚地邀请您参与我们的社区满意度调研。您的反馈对我们至关重要,将有助于改进我们的服务,为您提供更好的社区体验&#xf…

许可式邮件营销与垃圾邮件的区别:合规与效果的关键区分

接触过邮件营销的人一定不陌生“垃圾邮件”和“许可式邮件营销”这两个名词。在各大电商节到来之际,小编帮助大家弄清楚什么是垃圾邮件?什么是许可式邮件营销?为什么会变成垃圾邮件?怎么做许可式邮件营销?让大家在促销…

03、ThreadPoolExecutor 线程池源码完整剖析------线程池工具类(ExecutorService)

目录 ThreadPoolExecutor 线程池源码剖析------线程池工具类&#xff08;ExecutorService&#xff09;方法shutdown()shutdownNow()submit(Callable<T> task)submit(Runnable task)submit(Runnable task, T result) 实现类Executors.newCachedThreadPool()Executors.newF…

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时,动态变化时无法及时刷新更新适配界面的问题

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 目录 Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 一、简单介绍…

【Spring Boot】面试题汇总,带答案的那种

继上次的文章【MySQL连环炮&#xff0c;你抗的住嘛&#xff1f;】爆火之后&#xff0c;越来越多的小伙伴后台留言&#xff0c;要求阿Q总结下其他的“连环炮”知识点&#xff0c;想在金九银十的面试黄金期轻松对线面试官。 同样为了节省大家的时间&#xff0c;阿Q最近对【Sprin…

2023年度盘点:全球排名前10的视频监控技术企业是哪些?

视频监控技术的发展经历了从模拟到数字、网络化、高清、智能和云端的演进&#xff0c;使得监控系统越来越智能、高效和便捷&#xff0c;并在各种领域发挥着重要的作用&#xff0c;比如工地、工厂、安防、城市管理、智慧交通、家居安防等。随着视频监控技术的不断进步&#xff0…

git将自己分支的代码推送到master分支上

ps: 项目开发中&#xff0c;每个开发者都有自己的分支&#xff0c;更新代码时&#xff0c;先拉取master上的代码到自己本地&#xff0c;进行运行&#xff0c;没问题的话&#xff0c;上传自己的代码到master分支上&#xff0c;看是否有冲突&#xff0c;没问题再推送到master分支…

探索UX设计师的日常任务,赶紧看看

UX 设计师专注于产品开发的各个方面&#xff0c;包括设计、可用性、功能、甚至品牌和营销。他们的工作涉及用户与产品交互的整个端到端旅程&#xff0c;包括为产品和业务识别新的机会。 鉴于他们广泛的范围&#xff0c;UX 设计师根据公司和项目的要求&#xff0c;执行多种不同…

linux test命令:两个数值比较

目录 一、问题场景描述 二、数值比较解说 2.1 数值比较理论 2.2 实操 &#xff08;1&#xff09;数字 &#xff08;2&#xff09;变量 &#xff08;3&#xff09;小数&#xff1a;会出现异常 &#xff08;4&#xff09;使用test 一、问题场景描述 我想在.sh文件中进行…

Valentina Studio Pro for Mac:高效数据库管理工具

作为一款强大而高效的数据库管理工具&#xff0c;Valentina Studio Pro for Mac在Mac平台上的表现无疑是令人印象深刻的。无论您是初学者还是专业数据库管理员&#xff0c;Valentina Studio Pro都能够满足您的需要&#xff0c;并提供一流的工具和功能来简化数据库管理的过程。 …

常见激活函数

激活函数是神经网络中的一种非线性变换&#xff0c;它在神经元的输出上引入了非线性性质&#xff0c;使神经网络能够更好地学习和适应复杂的数据模式。以下是一些常见的激活函数&#xff1a; Sigmoid 函数 Sigmoid 函数将输入映射到&#xff08;0&#xff0c;1&#xff09;之间…

网络编程:信号、定时器、Libevent

1. 信号 &#xff08;1&#xff09;信号&#xff1a;由用户、系统或进程发送给目标进程的信息&#xff0c;以通知目标进程某个状态的改变或系统异常&#xff1b; 可由下述条件产生&#xff1a; 对前台进程&#xff0c;用户可以通过终端给它发送信号&#xff0c;如输入 CtrlC…

C语言之初识C语言

文章目录 前言一、什么是C语言二、第一个C语言程序三、数据类型四、变量&#xff0c;常量1、变量1.1 变量的命名1.2 变量的分类1.3 变量的使用1.4 变量的作用域和生命周期2、变量 五、字符串1. 概念2. 求解字符串的长度【strlen】3. 转义字符【含笔试题】 六、注释七、选择语句…

用C#也能做机器学习?

前言✨ 说到机器学习&#xff0c;大家可能都不陌生&#xff0c;但是用C#来做机器学习&#xff0c;可能很多人还第一次听说。其实在C#中基于ML.NET也是可以做机器学习的&#xff0c;这种方式比较适合.NET程序员在项目中集成机器学习模型&#xff0c;不太适合专门学习机器学习&a…