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

devtools/2025/2/3 16:53:13/

在 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.ppmy.cn/devtools/155769.html

相关文章

java异常处理——try catch finally

单个异常处理 1.当try里的代码发生了catch里指定类型的异常之后,才会执行catch里的代码,程序正常执行到结尾 2.如果try里的代码发生了非catch指定类型的异常,则会强制停止程序,报错 3.finally修饰的代码一定会执行,除…

【懒删除堆】力扣3092. 最高频率的 ID

你需要在一个集合里动态记录 ID 的出现频率。给你两个长度都为 n 的整数数组 nums 和 freq ,nums 中每一个元素表示一个 ID ,对应的 freq 中的元素表示这个 ID 在集合中此次操作后需要增加或者减少的数目。 增加 ID 的数目:如果 freq[i] 是正…

计算机网络 笔记 网络层 3

IPv6 IPv6 是互联网协议第 6 版(Internet Protocol Version 6)的缩写,它是下一代互联网协议,旨在解决 IPv4 面临的一些问题,以下是关于 IPv6 的详细介绍: 产生背景: 随着互联网的迅速发展&…

shallowRef和shallowReactive的用法以及使用场景和ref和reactive的区别

Vue3 浅层响应式 API 1. ref vs shallowRef 1.1 基本概念 ref: 深层响应式,会递归地将对象的所有属性转换为响应式shallowRef: 浅层响应式,只有 .value 的改变会触发更新,不会递归转换对象的属性 1.2 使用对比 // ref 示例 const deepRe…

数据结构与算法之栈: LeetCode 641. 设计循环双端队列 (Ts版)

设计循环双端队列 https://leetcode.cn/problems/design-circular-deque/description/ 描述 设计实现双端队列。 实现 MyCircularDeque 类: MyCircularDeque(int k) :构造函数,双端队列最大为 k 。boolean insertFront():将一个元素添加到双端队列头部…

【开源免费】基于SpringBoot+Vue.JS贸易行业crm系统(JAVA毕业设计)

本文项目编号 T 153 ,文末自助获取源码 \color{red}{T153,文末自助获取源码} T153,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

基于微信的课堂助手小程序设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

毕业设计--具有车流量检测功能的智能交通灯设计

摘要: 随着21世纪机动车保有量的持续增加,城市交通拥堵已成为一个日益严重的问题。传统的固定绿灯时长方案导致了大量的时间浪费和交通拥堵。为解决这一问题,本文设计了一款智能交通灯系统,利用车流量检测功能和先进的算法实现了…