日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

創建Nginx Ingress

Ingress是Kubernetes中的一個資源對象,用來管理集群外部訪問集群內部服務的方式。您可以通過Ingress資源來配置不同的轉發規則,從而根據轉發規則訪問集群內Pod。本文介紹如何通過控制臺和kubectl方式創建、查看、更新和刪除Nginx Ingress。

前提條件

已創建Kubernetes集群。具體操作,請參見創建ACK托管集群

注意事項

在您使用Nginx Ingress Controller時,請遵循以下注意事項。

  • 使用組件時,請通過組件管理的方式或者OpenAPI的方式配置組件的自定義參數。通過其他渠道修改組件配置可能會導致組件功能異常,且會影響組件后續的升級過程。

  • 請勿刪除Nginx Ingress Controller默認使用的Service(kube-system/nginx-ingress-lb)。將其刪除將會導致組件運行不穩定,嚴重時出現崩潰。

  • 請優先考慮使用相關注解或者設置項來實現所需功能,不建議您使用Snippet或Lua代碼等方式對組件進行額外配置。對于您使用Snippet等方式配置所出現的與預期功能不符等問題,將無法給予有效的支持。

  • 受上游社區版組件影響,Nginx Ingress Controller可能存在Bug或漏洞,請注意及時升級組件,以避免開源組件Bug或漏洞導致您的業務受損。

  • 在高負載情景下,推薦您使用獨立部署的方式將Nginx Ingress Controller部署在單獨的Node上。詳情請參見部署高可靠的Nginx Ingress Controller

  • 關于更多使用Nginx Ingress Controller的建議,請參見Nginx

操作步驟

方式一:控制臺操作步驟

創建Nginx Ingress

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇網絡 > 路由

  3. 路由頁面,單擊創建 Ingress,在創建 Ingress對話框配置路由。

    配置項

    說明

    示例值

    網關類型

    可按需選擇ALB IngressMSE IngressNginx Ingress三種網關類型。

    關于三種網關的差異,請參見Nginx Ingress、ALB Ingress和MSE Ingress對比

    Nginx Ingress

    名稱

    自定義路由名稱。

    nginx-ingress

    Ingress Class

    自定義Ingress的類。

    nginx

    規則

    單擊+ 添加規則可新增多個路由規則。

    • 域名:自定義域名。

    • 路徑映射:配置如下配置項。

      • 路徑:指定服務訪問的URL路徑。本例中不做配置,保留根路徑/

      • 匹配規則:支持前綴匹配(Prefix)完整匹配(Exact)默認(ImplementationSpecific)

      • 服務名稱:選擇目標服務,即K8s內的Service。

      • 端口:選擇服務需要暴露的端口。

    • Ingress支持同一個域名下配置多條路徑。單擊+ 添加路徑新增路徑。

    • 域名:test.example.com

    • 路徑映射

      • 路徑:/

      • 匹配規則:默認(ImplementationSpecific)

      • 服務名稱:nginx-ingress-lb

      • 端口:80

    TLS配置

    開啟TLS配置開關,配置安全的路由服務。

    • 域名:自定義域名。

    • 保密字典:根據需要選擇對應的保密字典。

      如果您需要創建Secret,請執行如下操作。

      1. 保密字典右側,單擊創建

      2. 創建 Secret對話框,自定義保密字典的名稱CertKey,然后單擊確定

      3. 保密字典的下拉框,選擇已創建的Secret。

    單擊+ 新增TLS配置,可配置多條TLS。

    Ingress的更多用法,請參見Ingress支持

    開啟TLS配置。

    • 域名:test.example.com

    • 保密字典:cert

    更多配置

    • 灰度發布:開啟灰度發布開關。灰度規則可按照請求頭、Cookie 、權重三個維度進行設置。

      說明

      請求頭、Cookie 、權重可以只設置一種,若同時設置生效規則按請求頭、Cookie、權重順序匹配。

      • 按請求頭:基于Request Header的流量切分,設置后會添加注解nginx.ingress.kubernetes.io/canary-by-headernginx.ingress.kubernetes.io/canary-by-header-valuenginx.ingress.kubernetes.io/canary-by-header-pattern

      • 按Cookie:基于Cookie的流量切分,設置后會添加注解nginx.ingress.kubernetes.io/canary-by-cookie

      • 按權重:設置請求到指定服務的百分比(值為0~100的整數),設置后會添加注解nginx.ingress.kubernetes.io/canary-weight

    • 協議:指定后端服務的協議,設置后會添加注解nginx.ingress.kubernetes.io/backend-protocol

      支持HTTP、HTTPS、gRPC、gRPCS四種服務協議。

    • 重寫路徑:將客戶端請求中的路徑重寫后發送到后端服務,設置后會添加注解 nginx.ingress.kubernetes.io/rewrite-target

    開啟灰度發布。

    • 生效規則選擇按請求頭

      • 請求頭名稱:foo

      • 匹配規則按值匹配

      • 匹配值:bar

    • 協議:GRPC

    • 重寫路徑:設置為空

    注解

    您可自定義注解名稱和值,也可根據名稱選擇或搜索要配置的注解。Ingress的注解請參見Annotations

    單擊+添加注解,可對Ingress無上限地添加注解。

    • 名稱:nginx.ingress.kubernetes.io/proxy-body-size

    • :10m

    標簽

    標簽的作用是為Ingress添加對應的標簽,標示該Ingress的特點。

    單擊+添加標簽,可對Ingress無上限地添加標簽。

    • 名稱:foo

    • :bar

  4. 配置成功后,單擊確定

    路由頁面,可以查看路由已成功創建。

相關操作

您可以在路由頁面,單擊目標路由操作列的更新YAML編輯監控,以及更多中的刪除,完成刪、改、查相關操作。

方式二:kubectl操作步驟

創建Nginx Ingress

  1. 創建Deployment和Service。

    在創建Ingress資源之前,必須創建外部訪問Kubernetes集群中的服務。

    1. 使用以下內容,創建test-deployment-service.yaml

      以下YAML文件中包含了一個名為test-web1的Deployment和一個名為web1-service的Service。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: test-web1
        labels:
          app: test-web1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: test-web1
        template:
          metadata:
            labels:
              app: test-web1
          spec:
            containers:
            - name: test-web1
              imagePullPolicy: IfNotPresent
              image: registry.cn-hangzhou.aliyuncs.com/yilong/ingress-test:web1
              ports:
              - containerPort: 8080
      --- 
      apiVersion: v1
      kind: Service
      metadata:
        name: web1-service
      spec:
        type: ClusterIP
        selector:
          app: test-web1
        ports:
          - port: 8080
            targetPort: 8080
    2. 執行以下命令,創建Deployment和Service。

      kubectl apply -f test-deployment-service.yaml
  2. 創建Ingress。

    1. 使用以下內容,創建test-ingress.yaml

      1.19版本之前集群

      apiVersion: networking.k8s.io/v1beta1
      kind: Ingress
      metadata:
        name: test-ingress
        namespace: default
      spec:
        rules:
        - host: test-ingress.com
          http:
            paths:
            - path: /foo
              backend:
                serviceName: web1-service
                servicePort: 8080
            - path: /bar
              backend:
                serviceName: web1-service
                servicePort: 8080

      1.19及之后版本集群

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: test-ingress
        namespace: default
      spec:
        rules:
        - host: test-ingress.com
          http:
            paths:
            - path: /foo
              backend:
                service: 
                  name: web1-service
                  port:
                    number: 8080
              pathType: ImplementationSpecific
            - path: /bar
              backend:
                service: 
                  name: web1-service
                  port:
                    number: 8080
              pathType: ImplementationSpecific
      • name:Ingress的名稱,本例為test-ingress。

      • host:指定服務訪問域名。

      • path:指定訪問的URL路徑。SLB將流量轉發到backend之前,所有的入站請求都要先匹配hostpath

      • backend:由服務名稱和服務端口組成。

        • 服務名稱:Ingress轉發的backend服務名稱。

        • 服務端口:服務暴露的端口。

    2. 執行以下命令,創建Ingress。

      kubectl apply -f test-ingress.yaml

查看Nginx Ingress

執行以下命令,查看Ingress。

kubectl get ingress

更新Nginx Ingress

執行以下命令,更新Ingress。

kubectl edit ingress <ingress名稱>

刪除Nginx Ingress

執行以下命令,刪除Ingress。

kubectl delete ingress <ingress名稱>