1.场景
容器化 K8s编排已经是现在进行时把网站的多个项目设计为云原生(Cloud Native)或老项改造为云原生可以获得诸多能力例如无云绑定、弹性、部署环境一致性、微服务、DevOps、持续交付同时下一代微服务框架 服务网格(ServiceMesh) 也能无痛接入
博主现有项目后端开发语言为 PHP、GolangGolang做一些基础公共服务(短信、消息、搜索等)这些公共服务化的项目已经容器化PHP的项目做应用逻辑层,会调用Golang写的一些公共基础服务PHP项目中直接通过服务名调用服务
需求: PHP项目A 依赖 短信、消息、搜索这3个服务,开发人员无需在本机启动依赖的服务,通过服务直接名透明的调用开发环境dev下的服务,开发人员只需要关注PHP项目A的开发。
☆本文的方案完成了开发人员开发机透明的直接访问K8s服务,从而满足了本需求☆
需要开发机透明访的直接问Kubernetes群集内的服务本文讲的方案都适用
开发机直接访问Kubernetes群集内的服务 示意图
2.基本信息和完成的目标
2.1基本信息
开发办公内网 192.168.1.0/24开发机2 192.168.1.2
运行K8s群集的Node网络 10.2.0.0/16Node1 10.2.1.4Node2 10.2.1.8K8s 群集网络 10.3.0.0/16
部署deployment whoami服务用于测试命名空间 default (这里可以用命名空间来区分环境例如dev为开发环境)镜像 wwek/whoami服务名 whoami
Pod ip