外部IP服务说明
一、外部IP服务概念
外部IP服务用于配置公共或私有IP地址以访问集群内的应用程序。
当集群节点连接到某个网络时,可通过指定该网络中的IP地址,将外部请求重定向至集群内运行的应用程序。
- 核心功能:通过外部IP地址将流量路由至集群中的一个或多个节点。
- 示例:若某应用程序已创建负载均衡服务,当外部用户通过特定公共或私有IP访问时,可通过 External IP 方式实现。
二、外部IP服务类型特征
- 管理权限:外部IP不由 Kubernetes 控制,需由集群管理员手动配置。
- 配置要求:
- 网络中需存在可用公共或私有 IP
- 在 YAML 中声明
externalIPs字段并绑定 IP
- 流量路由:
外部请求通过 外部IP + 端口 进入,kube-proxy自动转发至服务端点(Pod)。
三、外部IP配置步骤
1) 文件创建
- 在
service文件夹下创建external.yaml - 配置需包含以下字段:
apiVersion: v1kind: Servicemetadata: 服务名称(如engine-nics-vc)spec: 声明端口与externalIPs
2) 端口与选择器
<<<yaml
ports:
- name: hlyp
port: 80
targetPort: 80
protocol: TCP
selector:
app: engine-ics
<<<
3) 完整 externalIPs 示例
<<<yaml
apiVersion: v1
kind: Service
metadata:
name: engine-nics-vc
spec:
selector:
app: engine-ics
ports:
- name: hlyp
port: 80
targetPort: 80
protocol: TCP
externalIPs: - 192.168.110.235 # 确保未被占用
<<<
四、网络要求
- 节点网络模式:建议桥接模式,确保与路由器互通。
- IP选择规则:
- 从路由器未分配地址池中选择
- 使用
ping验证 IP 未被占用
五、外部IP服务应用流程
先部署应用
<<<bash
kubectl apply -f engine-x-multi-container.yaml
<<<应用外部IP服务
<<<bash
kubectl apply -f external.yaml
<<<验证服务状态
<<<bash
kubectl get svc -o wide
<<<转发逻辑
外部请求 → Service → Pod IP(端口需保持一致)
六、访问验证
<<<bash
curl http://192.168.110.235:80
<<<
七、清理
- 删除服务
<<<bash
kubectl delete -f external.yaml
<<< - 删除关联应用
<<<bash
kubectl delete -f engine-x-multi-container.yaml
<<<
八、核心用途总结
- 通过固定IP将应用对外暴露
- 适用于需要绑定特定公网/私网IP的场景