Ingress典型配置

Ingress 是 Kubernetes 中用于管理 HTTP 和 HTTPS 路由的资源。以下是一个典型的 Ingress 配置示例,用于将流量引导到两个不同的服务:

bash 复制代码
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /app1
            pathType: Prefix
            backend:
              service:
                name: app1-service
                port:
                  number: 80
          - path: /app2
            pathType: Prefix
            backend:
              service:
                name: app2-service
                port:
                  number: 80
  tls:
    - hosts:
        - example.com
      secretName: example-tls-secret
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /app1
            pathType: Prefix
            backend:
              service:
                name: app1-service
                port:
                  number: 80
          - path: /app2
            pathType: Prefix
            backend:
              service:
                name: app2-service
                port:
                  number: 80
  tls:
    - hosts:
        - example.com
      secretName: example-tls-secret

在这个示例中:

  • apiVersion 指定了 Ingress 资源的 API 版本。
  • kind 表示资源类型,这里是 Ingress。
  • metadata 部分包含了 Ingress 的名称。
  • spec 部分定义了 Ingress 的规则和 TLS 配置。

在规则部分:

  • host 指定了要路由的主机名,这里是 example.com
  • http 定义了 HTTP 路由规则。
  • paths 包含了路径规则,它们将请求路由到不同的后端服务。
  • path 指定了路径的前缀,例如 /app1/app2
  • pathType 设置为 Prefix 表示使用前缀匹配。
  • backend 定义了后端服务的名称(app1-serviceapp2-service)以及端口号。

在 TLS 部分:

  • hosts 列出了要启用 TLS 的主机名,这里是 example.com
  • secretName 是用于 TLS 加密的证书密钥对的名称,这个密钥对需要事先创建并存储在 Kubernetes Secret 中。

这个 Ingress 配置示例将流量路由到两个不同的后端服务 app1-serviceapp2-service,基于请求的路径前缀。同时,它启用了 TLS 加密以确保安全的通信。

请注意,要使此配置生效,你需要在你的 Kubernetes 集群中部署和配置一个 Ingress Controller,以确保它能够理解和处理 Ingress 资源。不同的 Ingress Controller 可能有略微不同的配置方式,因此你需要参考特定 Ingress Controller 的文档来进行部署和配置。

相关推荐
智码看视界21 小时前
Day57-K8s核心概念速通:Pod、Deployment、Service与Ingress
云原生·容器·kubernetes·k8s·ingress·java后端·deployment
国医中兴2 天前
全文搜索的数据库选择:MySQL Fulltext与Elasticsearch的深度对比
微服务·云原生·容器·kubernetes·k8s
万里侯2 天前
GitOps 2026年演进趋势:从配置管理到环境即代码的范式转移及Pull vs Push模型的再思考
微服务·容器·k8s
张洛闻Eren5 天前
云原生k8s【第一课】: Docker 容器技术
运维·云原生·容器·k8s
fangzhanpeng1686 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心8 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
KeepSeek10 天前
AI集群搭建k8s实战(docker)
k8s
要开心吖ZSH10 天前
测试环境 K8s 502 故障复盘:被 ClusterIP 表象误导,最终定位 kube-proxy 规则缺失
云原生·容器·kubernetes·k8s·502 bad gateway·kube-proxy
m0_5257247212 天前
Jenkins共享库实现流水线复用
自动化·k8s·devops
u01030552714 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节