CKA-2026-Gateway

9、Gateway

您必须连接到正确的主机。不这样做可能导致零分。

student@k8s-master1 $ ssh cka000000

Task

将现有 Web 应用程序从 Ingress 迁移到 Gateway API 。您必须维护 HTTPS 访问权限。注意:集群中安装了一个名为 nginxGatewayClass

首先,创建一个名为 web-gatewayGateway ,主机名为 gateway.web.k8s.local ,并保持现有名为 webIngress 资源的现有 TLS 和侦听器配置。

接下来,创建一个名为 web-routeHTTPRoute ,主机名为 gateway.web.k8s.local ,并保持现有名为webIngress 资源的现有路由规则。

最后,删除名为 web 的现有 Ingress 资源。

参考链接

https://kubernetes.io/docs/concepts/services-networking/gateway/

复制代码
步骤1
kubectl get ingress web -o yaml > web-ingress.yaml

步骤2

创建 Gateway

vim gateway.yaml

bash 复制代码
apiVersion: gateway.networking.k8s.io/v1  # 使用的 Gateway API 版本(v1 稳定版)
kind: Gateway                              # 资源类型:网关入口
metadata:
  name: web-gateway                        # Gateway 资源名称
spec:
  gatewayClassName: nginx                  # 指定使用的 Gateway 实现类(这里用 nginx 网关控制器)
  listeners:                               # 监听器列表,定义网关如何接收流量
    - name: https                          # 监听器名称(必须唯一)
      hostname: gateway.web.k8s.local      # 该监听器匹配的域名(严格匹配)
      port: 443                            # 监听的端口号
      protocol: HTTPS                      # 协议类型(HTTPS,需配置 TLS)
      tls:                                 # TLS 配置段
        mode: Terminate                    # TLS 模式:在网关侧终止 HTTPS 连接
        certificateRefs:                   # 证书引用列表
          - name: web-cert                 # 证书对应的 Secret 名称
            kind: Secret                   # 引用的资源类型(固定为 Secret)
            group: ""                      # API 组(空字符串表示核心 API 组)

步骤3创建

kubectl apply -f gateway.yaml

提示 created,表示创建成功

步骤4.创建 HTTPRoute

vim httproute.yaml

bash 复制代码
apiVersion: gateway.networking.k8s.io/v1  # Gateway API 版本(v1 稳定版)
kind: HTTPRoute                           # 资源类型:HTTP 路由规则
metadata:
  name: web-route                         # 路由规则名称
spec:
  parentRefs:                             # 父资源引用,指定该路由附加到哪个 Gateway
    - name: web-gateway                   # 引用的 Gateway 名称(与上面创建的 Gateway 对应)
  hostnames:                              # 该路由匹配的域名列表
    - "gateway.web.k8s.local"             # 完全匹配此主机名(需与 Gateway listener 的 hostname 一致)
  rules:                                  # 路由规则列表
    - matches:                            # 匹配条件(可多个)
        - path:                           # 路径匹配规则
            type: PathPrefix              # 匹配类型:前缀匹配(PathPrefix)
            value: /                      # 匹配的路径值(根路径 "/")
      backendRefs:                        # 后端服务引用列表
        - name: web                       # 后端 Service 名称(与 Ingress 中的 service name 对应)
          port: 80                        # 后端 Service 端口号(与 Ingress 中的 service port 对应)

步骤5创建

kubectl apply -f httproute.yaml

提示 created,表示创建成功

检查

kubectl get httproute

步骤6删除 web ingress

kubectl delete ingress web

相关推荐
云川之下12 小时前
【k8s】NAD(NetworkAttachmentDefinition)与SR‑IOV‑Operator 关系
云原生·容器·kubernetes
ZzzZZzzzZZZzzzz…15 小时前
K8S实战:NFS+StorageClass+PV/PVC+Deployment
运维·云原生·容器·kubernetes·storageclass·linux运维·持久卷
三言老师15 小时前
CentOS7.9 + Kubernetes 1.18.20 -清理所有 docker / containerd 残留
docker·容器·kubernetes
circuitsosk15 小时前
从Docker到Kubernetes:AI应用服务化与弹性伸缩的落地实践
人工智能·docker·kubernetes·ai应用部署
AAA@峥16 小时前
K8s 配置管理实战:ConfigMap 与 Secret 完整使用指南
kubernetes·云计算
showyoui16 小时前
K8s 集群迁移踩坑:Istio 升级后 nginx 403
网络·docker·kubernetes·istio·service_mesh
云川之下18 小时前
【k8s】sriov‑device‑plugin、sriov‑network‑config‑daemon详解
云原生·容器·kubernetes
张忠琳1 天前
【NPU】Ascend Device Plugin —Part 6 K8s客户端 + 重复检测模块 超深度源码分析之二
云原生·容器·kubernetes·npu·docker device
云川之下2 天前
【k8s】SR‑IOV‑Network‑Operator 详解
云原生·容器·kubernetes
风曦Kisaki2 天前
对象存储 MinIO 的两种生产环境适用部署方式
kubernetes