GCP K8S 创建 Ingress

GCP K8S 创建 Ingress

前提:已完成 GCP K8s 部署指南 中的 Deployment 和 Service 创建。


1. Ingress 是什么

一个 Ingress 由三部分组成:

An Ingress has 3 parts:

  1. Backend configuration — 选择后端 Kubernetes Service
  2. Host and path rules — 主机名和路径的转发规则
  3. Forwarding rules — 前端协议和证书配置
用户浏览器


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

选「外部 HTTP/S 负载均衡器」,点 「Continue」


4. 创建 Ingress 主表单

选择类型后进入主表单。页面左侧是配置区,由上到下排列所有配置项。

4.1 基本信息

创建 Kubernetes Ingress
预览 YAML
An Ingress has 3 parts:
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-servicebackend-service
Host and path rules /* → frontend-service,/api/* → backend-service
Frontend configuration HTTPS,证书域名 app.example.com

确认无误,点底部的 「CREATE」


相关文档

本文由 上传。


如果您喜欢这篇文章,请点击链接 GCP K8S 创建 Ingress 查看原文。


您也可以直接访问:https://www.fanfine.cn/blog/312

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇