K8s介绍代理外部服务的svc几种方式

news/2025/2/3 19:55:18 标签: kubernetes

在 Kubernetes 中,若需让集群内应用访问外部服务,可通过以下 **Service 配置方式**实现代理:

---

### 1. **ClusterIP Service + 手动维护 Endpoints**
- **原理**:创建 `ClusterIP` 类型的 Service 并手动指定 `Endpoints`,将流量导向外部服务的 IP 和端口。
- **适用场景**:外部服务有固定 IP,且需通过 Service DNS 名称统一访问。
- **配置示例**:
  ```yaml
  # Service 定义
  apiVersion: v1
  kind: Service
  metadata:
    name: external-db
  spec:
    ports:
    - port: 3306
      targetPort: 3306
    type: ClusterIP

  # Endpoints 定义
  apiVersion: v1
  kind: Endpoints
  metadata:
    name: external-db
  subsets:
  - addresses:
    - ip: 192.168.1.100  # 外部服务 IP
    ports:
    - port: 3306
  ```
- **注意事项**:需手动维护 IP,变更时需更新 Endpoints。

---

### 2. **ExternalName Service**
- **原理**:通过 DNS CNAME 将 Service 名称映射到外部域名。
- **适用场景**:外部服务有固定域名,无需处理 IP 变化。
- **配置示例**:
  ```yaml
  apiVersion: v1
  kind: Service
  metadata:
    name: external-api
  spec:
    type: ExternalName
    externalName: api.external.com  # 外部服务域名
    ports:
    - port: 80
  ```
- **注意事项**:
  - 不支持端口映射(需与外部服务端口一致)。
  - TLS 证书需匹配目标域名。

---

### 3. **Headless Service + Endpoints**
- **原理**:创建无头 Service(`ClusterIP: None`)并配置 Endpoints,直接暴露外部服务的地址。
- **适用场景**:需绕过 ClusterIP 直接访问外部服务端点。
- **配置示例**:
  ```yaml
  # Headless Service
  apiVersion: v1
  kind: Service
  metadata:
    name: external-headless
  spec:
    clusterIP: None
    ports:
    - port: 5432

  # Endpoints 同上
  ```
- **注意事项**:适用于需要直接与服务实例通信的场景


http://www.niftyadmin.cn/n/5841036.html

相关文章

C++初阶—string类

第一章:为什么要学习string类 1.1 C语言中的字符串 C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想&…

potplayer字幕

看视频学习,实时字幕可以快速过滤水字数阶段,提高效率,但是容易错过一些信息。下面就是解决这一问题。 工具ptoplayer 一.生成字幕 打开学习视频,右键点击视频画面,点选字幕。勾选显示字幕。点选创建有声字幕&#…

2025年2月2日(网络编程 tcp)

tcp 循环服务 import socketdef main():# 创建 socket# 绑定tcp_server socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server.bind(("", 8080))# socket 转变为被动tcp_server.listen(128)while True:# 产生专门为链接进来的客户端服务的 socketprint(&qu…

【HTML入门】Sublime Text 4与 Phpstorm

文章目录 前言一、环境基础1.Sublime Text 42.Phpstorm(1)安装(2)启动Phpstorm(3)“启动”码 二、HTML1.HTML简介(1)什么是HTML(2)HTML版本及历史(3)HTML基本结构 2.HTML简单语法(1)HTML标签语法(2)HTML常用标签(3)表格(4)特殊字符 总结 前言 在当今的软件开发领域&#xff0c…

PHP代码审计学习02

目录 代码审计一般思路 Beescms代码审计(upload) Finecms基于前台MVC任意文件上传挖掘思路 CLTPHP基于thinkphp5框架的文件上传挖掘思路 今天来看PHP有框架MVC类,文件上传,断点调试挖掘。 同样还是有关键字搜索和功能点抓包两…

MVC、MVP和MVVM模式

MVC模式中,视图和模型之间直接交互,而MVP模式下,视图与模型通过Presenter进行通信,MVVM则采用双向绑定,减少手动同步视图和模型的工作。每种模式都有其优缺点,适合不同规模和类型的项目。 ### MVVM 与 MVP…

LeetCode:63. 不同路径 II

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:63. 不同路径 II 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0]…

Python - pyautogui库 模拟鼠标和键盘执行GUI任务

安装库: pip install pyautogui 导入库:import pyautogui 获取屏幕尺寸: s_width, s_height pyautogui.size() 获取鼠标当前位置: x, y pyautogui.position() 移动鼠标到指定位置(可以先使用用上一个函数调试获取当…