ingress-创建对应的ingress

创建 nginx-deployment 的 Ingress 资源

题目要求

我们需要为名为 nginx-deployment 的部署(通过 nginx-service 服务暴露)创建一个 Ingress 资源,具体要求如下:

  • Ingress 名称:nginx-ingress-resource
  • 路径类型(pathType):Prefix(前缀匹配)
  • 路径(path):/shop
  • 后端服务名称:nginx-service
  • 后端服务端口:80
  • 禁用 SSL 重定向(ssl-redirect: false)

操作步骤

  1. 首先确认当前上下文

    kubectl config use-context kubernetes-admin@kubernetes
    
  2. 创建 Ingress 资源 YAML 文件

    创建一个名为 nginx-ingress.yaml 的文件,内容如下:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: nginx-ingress-resource
      annotations:
        nginx.ingress.kubernetes.io/ssl-redirect: "false"
    spec:
      rules:
      - http:
          paths:
          - path: /shop
            pathType: Prefix
            backend:
              service:
                name: nginx-service
                port:
                  number: 80
    
  3. 应用这个 YAML 文件

    kubectl apply -f nginx-ingress.yaml
    
  4. 验证 Ingress 是否创建成功

    kubectl get ingress nginx-ingress-resource
    kubectl describe ingress nginx-ingress-resource
    

关键点解释

  1. apiVersion:使用 networking.k8s.io/v1,这是 Kubernetes 1.19+ 推荐的 Ingress API 版本

  2. annotations

    • nginx.ingress.kubernetes.io/ssl-redirect: "false" 明确禁用了 SSL 重定向
  3. spec.rules

    • 定义了 HTTP 规则
    • 路径 /shop 会匹配所有以 /shop 开头的请求
    • 这些请求会被路由到 nginx-service 服务的 80 端口
  4. pathType: Prefix

    • 表示路径匹配方式为前缀匹配
    • 例如 /shop, /shop/, /shop/item1 都会被匹配

这样配置后,所有访问 /shop 路径的请求都会被正确地路由到后端的 nginx 服务。

posted on 2025-05-19 17:35  Leo-Yide  阅读(29)  评论(0)    收藏  举报