在 Kubernetes 叢集裡安裝 NGINX Ingress 控制器

本主題說明如何在 Kubernetes 叢集裡安裝 NGINX Ingress 控制器,並在 Kubernetes 叢集外公開 IBM 控制台工作負載。

關於此作業

程序

  1. 安裝 NGINX Ingress 控制器。 如需詳細資料,請參閱 NGINX 文件
  2. 建立新的 Ingress 安裝檔案,並將它命名為 icd-ingress.yaml。 它用於在叢集外部公開 IBM® Control Desk 工作量。 請參閱下列內容:
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: icd-ingress
      namespace: icd
      annotations:
        kubernetes.io/ingress.class: "nginx"
        nginx.ingress.kubernetes.io/affinity: "cookie"
        nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
        nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
        nginx.ingress.kubernetes.io/ssl-redirect: "false"
        nginx.ingress.kubernetes.io/affinity-mode: persistent
        nginx.ingress.kubernetes.io/session-cookie-hash: sha1
        nginx.ingress.kubernetes.io/secure-backends: "true"
        nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
        ingress.kubernetes.io/backend-protocol: "HTTPS"
        kubernetes.io/tls-acme: "true"
    spec:
      tls:
      - hosts:
        - icd.ibm.com
        secretName: icd-secret
      rules:
      - host: icd.ibm.com
        http:
          paths:
          - path: /maximoapi
            backend:
              serviceName: icd-api
              servicePort: 9080
          - path: /cron
            backend:
              serviceName: icd-cron
              servicePort: 9080
          - path: /mea
            backend:
              serviceName: icd-mea
              servicePort: 9080
          - path: /
            backend:
              serviceName: icd-ui
              servicePort: 9080
    
    其中 icd.ibm.com 是用來在服務埠 9080 上公開不同服務 (例如 icd-ui ) 的主機名稱及 http 通訊協定。 密鑰名稱 icd-secret 包含 TLS 密鑰。
  3. 使用下列指令 套用 icd-ingress 。 這將在叢集裡啟用 IBM Control Desk 工作負載的入口:
    kubectl apply -f icd-ingress.yaml
  4. 同樣地,建立 Service Portal 的入口資源,將它命名為 sp-ingress.yaml。 存取服務入口網站前端系統需要此入口網站。 請參閱下列內容:
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: ssp-ingress
      namespace: icd
      annotations:
        kubernetes.io/ingress.class: "nginx"
        nginx.ingress.kubernetes.io/secure-backends: "true"
        nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
        ingress.kubernetes.io/backend-protocol: "HTTPS"
        kubernetes.io/tls-acme: "true"
    spec:
      tls:
      - hosts:
        - ssp.ibm.com
        secretName: icd-secret
      rules:
      - host: ssp.ibm.com
        http:
          paths:
          - path: /
            backend:
              serviceName: icd-ssp
              servicePort: 3000 
    
    其中 ssp.ibm.com 是主機名稱,而 http 通訊協定用來在服務埠 3000 上公開不同的服務,例如 icd-ssp 。 密鑰名稱 icd-secret 包含 TLS 密鑰。
  5. 使用下列指令來套用 ssp-ingress :
    kubectl apply -f sp-ingress.yaml

結果

啟用上述步驟之後,即會在 Kubernetes 設定上啟用入口。 IBM Control DeskService Portal 使用者介面可以使用入口網站進行存取。
附註: 需要在機器的 hosts 檔中新增具有工作者節點 IP 位址的 icd.ibm.comssp.ibm.com 項目,才能解析主機名稱。