Files
Kubernetes/网关/Ingress/创建Ingress资源提供访问.md
offends b44594def6
All checks were successful
continuous-integration/drone Build is passing
修改和新增
2025-12-23 01:53:01 +08:00

2.2 KiB

本文作者:丁辉

创建Ingress资源提供访问

准备工作

  1. 部署 Nginx 资源

    kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment.yaml
    kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/nginx-deployment-svc.yaml
    
  2. 查看部署情况

    kubectl get deploy,svc
    

示例

  1. 创建对外域名证书

    kubectl create secret tls nginx-tls --key nginx.key --cert nginx.pem -n default
    
  2. 创建 Ingress 资源

    • HTTP

      cat <<EOF | kubectl apply -f -
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: nginx-ingress
        namespace: default
        annotations:
          # 不限制文件上传大小 或 选择其他参数
          nginx.ingress.kubernetes.io/proxy-body-size: "0"
        labels:
          name: nginx-ingress
      spec:
        ingressClassName: nginx # 通过 kubectl get ingressclass 查看
        rules:
        - http:
            paths:
            - backend:
                service:
                  name: nginx-service # Nginx Serice 名称
                  port:
                    number: 80 # Nginx 端口
              path: /
              pathType: Prefix
      EOF
      
    • HTTPS

      cat <<EOF | kubectl apply -f -
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: nginx-ingress
        namespace: default
        annotations:
          # 不限制文件上传大小 或 选择其他参数
          nginx.ingress.kubernetes.io/proxy-body-size: "0"
        labels:
          name: nginx-ingress
      spec:
        ingressClassName: nginx # 通过 kubectl get ingressclass 查看
        rules:
        - host: nginx.example.com # 修改为自己的对外域名
          http:
            paths:
            - backend:
                service:
                  name: nginx-service # Nginx Serice 名称
                  port:
                    number: 80 # Nginx 端口
              path: /
              pathType: Prefix
      
        # 对外域名证书配置
        tls:
          - hosts:
            - nginx.example.com
            secretName: nginx-tls
      EOF
      
  3. 访问域名