惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
J
Java Code Geeks
爱范儿
爱范儿
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
I
InfoQ
月光博客
月光博客
博客园 - 聂微东
博客园 - Franky
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
L
LangChain Blog
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - py哥

PostgreSQL 常用的 100 条命令 rabbitmq集群docker部署 MongoDB副本集docker部署 MySQL8.0单实例部署 prometheus 监控 eureka 里面的服务状态 Redis管理平台 CentOS7 FTP结合ssl/tls实现加密通信安装与配置 数据库运维平台 基于Docker构建Jenkins CI平台 KeepLived + nginx 高可用 k8s-1.16 二进制安装 Ansible自动化部署K8S集群 Kubernetes1.16下部署Prometheus+node-exporter+Grafana+AlertManager 监控系统 在Kubernetes下部署Prometheus docker部署coredns kubeadm部署多master节点高可用k8s1.16.2 二进制搭建一个完整的K8S集群部署文档 kubeadm部署k8s集群 Keepalived+LVS+nginx搭建nginx高可用集群 centos7 dns(bind)安装配置
k8s网络与本地开发环境网络互通方案
py哥 · 2023-03-09 · via 博客园 - py哥

现状
k8s集群内是有一套完整网络环境,我们不能直接通过IP访问到k8s集群内的pod 或者service,只能通过nodeport 或者ingress 才能访问到服务.

痛点
开发人员进行微服务开发的时候需要通过服务发现进行Pod级服务的直接访问,但是现在k8s网络没办法做到直接访问pod 或者service的ip

解决方案
对于打通k8s网络与我们的开发网络根据k8s node 机器所在的网络情况 有以下几种方案:

本机静态路由表
路由器配置静态路由表
VPN 桥接接入
1. 本机静态路由表
当 k8s node 所在网络与开发网络在同一个子网内时,可以通过配置本机的静态路由表 直接访问到k8s集群内pod 以及service
由于 k8s node 节点上都自动开启了 内核路由转发功能的,所以只要配置静态路由表 转发到 任意一台node 节点即可,操作如下:
k8s 集群环境:

node: 10.200.1.227/24
--service-cidr=172.16.0.0/16
--pod-network-cidr=192.168.0.0/16

windows 添加静态路由表命令
route add -p 192.168.0.0 mask 255.255.0.0 10.200.1.227
route add -p 172.16.0.0 mask 255.255.0.0 10.200.1.227


2. 在路由器上设置静态表
第一种设置只能针对本机有效,如果想让在该网络内所有机器都可以直接访问k8s集群内 pod service的话,可以在路由器的静态路由表中增加静态路由
网络 192.168.0.0 子网掩码 255.255.0.0 网关 10.200.1.227
网络 172.16.0.0 子网掩码 255.255.0.0 网关 10.200.1.227

3. 桥接VPN
当k8s 和本地开发环境网络不在同一个 局域网内的话, 就没有办法做到通过静态路由进行转发
只能
如果正常在k8s集群内部署一个vpn的话 只能实现 开发环境访问k8s集群内 正常,但是无法实现集群内访问开发环境的集群,所以需要 采用桥接VPN+ 静态路由 双重策略下,才能实现互相都可以直接使用ip进行访问