当前位置: 首页 > news >正文

Kubernetes pod ip 暴露

在这里插入图片描述

1. k8s pod 和 service 网络暴露

  • 借助 iptables 的路由转发功能,打通k8s集群内的pod和service网络,与外部网络联通
# 查看集群的 pod 网段和 service 网段
kubectl -n kube-system describe cm kubeadm-config
networking:dnsDomain: cluster.localpodSubnet: 10.244.0.0/16serviceSubnet: 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: 1selector:matchLabels:app: aatemplate:metadata:labels:app: aaspec:containers:- name: nginx-aaimage: nginxvolumeMounts:- mountPath: /etc/nginx/conf.d/name: nginx-aavolumes:- configMap:name: nginx-aaname: nginx-aa
---
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-bb
spec:replicas: 1selector:matchLabels:app: bbtemplate:metadata:labels:app: bbspec:containers:- name: nginx-bbimage: nginxvolumeMounts:- mountPath: /etc/nginx/conf.d/name: nginx-bbvolumes:- configMap:name: nginx-bbname: nginx-bb
---
apiVersion: v1
kind: Service
metadata:name: nginx-aa
spec:type: ClusterIPports:- port: 80selector:app: aa
---
apiVersion: v1
kind: Service
metadata:name: nginx-bb
spec:type: ClusterIPports:- port: 80selector:app: bb
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: nginx-demoannotations:kubernetes.io/ingress.class: nginx
spec:#ingressClassName: nginxrules:- host: jin.yeemiao.net.cnhttp:paths:- backend:service:name: nginx-aaport:number: 80path: /aa/pathType: Prefix- backend:service:name: nginx-bbport:number: 80path: /bb/pathType: Prefixtls:- hosts:- jin.yeemiao.net.cnsecretName: 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.lryc.cn/news/265902.html

相关文章:

  • 442. 数组中重复的数据
  • Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创
  • word2003 open word2007+
  • windows安装、基本使用vim
  • 【SpringBoot快速入门】(1)SpringBoot的开发步骤、工程构建方法以及工程的快速启动详细讲解
  • Day69力扣打卡
  • 机器学习:手撕 AlphaGo(一)
  • ElasticSearch学习篇9_文本相似度计算方法现状以及基于改进的 Jaccard 算法代码实现
  • 大创项目推荐 深度学习+python+opencv实现动物识别 - 图像识别
  • Debezium系列之:Flink SQL消费Debezium数据格式,同步数据到下游存储系统
  • webrtc支持的最小宽度和高度
  • 虚拟机对象的创建
  • 阿里云吴结生:云计算是企业实现数智化的阶梯
  • MySQL——复合查询
  • mysql 23-3day 数据库授权(DCL)
  • OpenHarmony之内核层解析~
  • Chatgpt如何共享可以防止封号!
  • 智能优化算法应用:基于社交网络算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • thinkphp+vue+mysql酒店客房管理系统 b1g8z
  • nodejs+vue+ElementUi摄影作品图片分享工作室管理系统
  • 详解FreeRTOS:专栏总述
  • 在 linux 服务器上安装Redis数据库
  • 阿里云经济型、通用算力型、计算型、通用型、内存型云服务器最新活动报价
  • 回溯算法 典型习题
  • 14. 从零用Rust编写正反向代理, HTTP文件服务器的实现过程及参数
  • 【随笔】MD5加密字符串、文件apache、springframework实现
  • java八股 设计模式
  • Docker安装(CentOS)+简单使用
  • Mybatis配置-环境配置(environments)
  • Android模拟器的安装和adb连接