GCP K8S 创建 Ingress
前提:已完成 GCP K8s 部署指南 中的 Deployment 和 Service 创建。
1. Ingress 是什么
一个 Ingress 由三部分组成:
An Ingress has 3 parts:
- Backend configuration — 选择后端 Kubernetes Service
- Host and path rules — 主机名和路径的转发规则
- Forwarding rules — 前端协议和证书配置
用户浏览器
│
▼
GCP Load Balancer(Ingress 自动创建)
├── /api/* ──────────→ backend-service:8080(Gin 程序)
└── 其他 ────────────→ frontend-service:80(前端页面)
│
▼
GCP Load Balancer(Ingress 自动创建)
├── /api/* ──────────→ backend-service:8080(Gin 程序)
└── 其他 ────────────→ frontend-service:80(前端页面)
2. 进入 Ingress 页面
左侧子菜单 → Services & Ingress → 顶部切换到 「Ingress」 标签页 → 点 「Create Ingress」。
3. 选择入站流量类型
点击「Create Ingress」后,首先弹出类型选择:
创建 Ingress
外部 HTTP/S 负载均衡器
分配公网 IP,外网可访问
内部 HTTP/S 负载均衡器
分配内网 IP,仅公司内网/VPN 可访问
取消
Continue
Continue
选「外部 HTTP/S 负载均衡器」,点 「Continue」。
4. 创建 Ingress 主表单
选择类型后进入主表单。页面左侧是配置区,由上到下排列所有配置项。
4.1 基本信息
创建 Kubernetes Ingress
预览 YAML
预览 YAML
An Ingress has 3 parts:
1. Backend configuration
2. Host and path rules configuration
3. Forwarding rules
1. Backend configuration
2. Host and path rules configuration
3. Forwarding rules
- 入站流量类型:上一步选择,不可修改
- 名称:建议
{主 Deployment 名}-ingress,如backend-ingress。好处是资源列表里backend/backend-ingress/backend-service排在一起
4.2 Backend configuration(后端配置)
选择要作为后端的 Kubernetes Service:
Backend configuration
后端 Kubernetes 服务
| 名称 | 端口 | 正在服务的 Pod 数量 | 集群 |
|---|---|---|---|
| backend-service | 8080 | 2 | my-cluster |
| frontend-service | 80 | 2 | my-cluster |
点「添加后端服务」,下拉选择你之前创建的 Service。选中后表格显示:名称、端口、当前健康的 Pod 数量、所在集群。如果 Pod 数量为 0,说明 Service 没有关联到健康的 Pod,需要回去检查 Deployment。
4.3 Host and path rules(主机和路径规则)
这是最核心的一步:定义域名和路径的转发规则。
Host and path rules
主机和路径规则决定了你的流量将如何被引导。你可以将流量引导到后端 Kubernetes 服务。任何没有明确匹配主机和路径规则的流量将被发送到第一行选择的默认服务。
| 主机 | 路径 | 后端 Kubernetes 服务 |
|---|---|---|
- 主机(Host):域名,每行填同一个域名
- 路径(Path):类似 Nginx 的
location。/*匹配所有路径,/api/*匹配 API 请求。路径越长越优先,和顺序无关 - 后端 Kubernetes 服务:下拉选 Backend configuration 里已添加的 Service
- 第一行是默认服务:不匹配任何规则的流量走第一行。所以第一行放前端(
/*→frontend-service)作为兜底
路由匹配示例:
/api/users → /* 和 /api/* 都匹配 → /api/* 更具体 → 走后端
/login → 只有 /* 匹配 → 走前端
4.4 Frontend configuration(前端配置)
配置协议和 HTTPS 证书:
Frontend configuration
HTTP
IP:自动分配 (IPv4)
端口:80
HTTPS
IP:自动分配 (IPv4)
端口:443
- 协议:下拉选 HTTPS。同时显示 HTTP 和 HTTPS 各自的 IP(自动分配)和端口(HTTP=80, HTTPS=443)
- 证书:选「Create a new Google-managed certificate」,Google 自动申请 Let's Encrypt 免费证书并到期自动续期
- 证书名称:填证书绑定的域名,和 Host and path rules 里的主机名一致
- 证书创建后显示「Provisioning」,等 DNS 指向生效后 Google 完成验证
4.5 Preview setup and YAML
点击前的按钮:
Preview setup and YAML(可选)
Preview the Ingress
点击后展开预览面板,有两个标签页:
预览
✕ 关闭
✕ 关闭
INGRESS 详情
INGRESS YAML
前端
| 协议 | HTTP/S |
| 端口 | 443 |
| 证书 | cert-name |
| HTTP | 自动分配 (IPv4) · 80 |
| HTTPS | 自动分配 (IPv4) · 443 |
主机和路径规则
| 主机 | 路径 | 后端 Kubernetes 服务 |
|---|---|---|
| app.example.com | /* | frontend-service |
| app.example.com | /api/* | backend-service |
后端 Kubernetes 服务
1. frontend-service
| Pod 名称 | 状态 | 重启次数 |
|---|---|---|
| frontend-abc | Running | 0 |
| frontend-def | Running | 0 |
2. backend-service
| Pod 名称 | 状态 | 重启次数 |
|---|---|---|
| backend-xyz | Running | 0 |
| backend-uvw | Running | 0 |
对ingress加入前端服务
spec:
defaultBackend:
service:
name: web-service
port:
number: 80
rules:
- http:
paths:
- backend:
service:
name: backend-service
port:
number: 80
path: /api/*
pathType: ImplementationSpecific
- host: tmp-domain.com
http:
paths:
- backend:
service:
name: backend-service
port:
number: 80
path: /api/*
pathType: ImplementationSpecific
- backend:
service:
name: web-service
port:
number: 80
pathType: ImplementationSpecific
tls:
- secretName: 名
INGRESS 详情按三部分排列:前端(协议/端口/证书)→ 主机和路径规则 → 后端 Kubernetes 服务(含每个 Pod 的状态和重启次数)。确认无误后关闭预览,回到主表单点 CREATE。
4.6 创建
核对配置:
| 项目 | 确认内容 |
|---|---|
| 入站流量类型 | 外部 HTTP/S 负载均衡器 |
| 名称 | backend-ingress |
| Backend configuration | frontend-service、backend-service |
| Host and path rules | /* → frontend-service,/api/* → backend-service |
| Frontend configuration | HTTPS,证书域名 app.example.com |
确认无误,点底部的 「CREATE」。
相关文档
- GCP K8s 部署服务 — 入口导航、项目选择、集群选择
- GCP-K8s-部署Deployment — 创建 Deployment 和暴露 Service
- GCP-K8s-部署Ingress.md — UI 操作版 Ingress 完整配置