Instalowanie komponentu NGINX Ingress Controller w klastrze Kubernetes

W tej sekcji opisano instalowanie kontrolera NGINX Ingress w klastrze Kubernetes oraz ujawnianie obciążeń produktu IBM Control Desk poza klastrem Kubernetes.

O tym zadaniu

Procedura

  1. Zainstaluj kontroler NGINX Ingress. Więcej informacji na ten temat zawiera sekcja Dokumentacja NGINX .
  2. Utwórz nowy plik instalacyjny programu narzędziowego ingress, nazwij go icd-ingress.yaml. Jest on używany do ujawniania obciążeń produktu IBM® Control Desk poza klastrem. Zapoznaj się z poniższą treścią:
    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 jest nazwą hosta, a http protokołem używanym do ujawniania różnych usług, takich jak icd-ui na porcie 9080. Nazwa niejawna icd-secret zawiera dane niejawne TLS.
  3. Zastosuj icd-ingress przy użyciu poniższej komendy. Spowoduje to włączenie funkcji ingress w klastrze do obsługi obciążeń IBM Control Desk :
    kubectl apply -f icd-ingress.yaml
  4. Podobnie, utwórz zasób ingress dla portalu usług, nazwij go sp-ingress.yaml. Ten zasób jest wymagany w celu uzyskania dostępu do zasobów frontowych portalu usług. Zapoznaj się z poniższą treścią:
    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 jest nazwą hosta, a http protokołem używanym do ujawniania różnych usług, takich jak icd-ssp na porcie 3000. Nazwa niejawna icd-secret zawiera dane niejawne TLS.
  5. Zastosuj ssp-ingress przy użyciu poniższej komendy:
    kubectl apply -f sp-ingress.yaml

Wyniki

Po wykonaniu powyższych kroków w konfiguracji Kubernetes zostanie włączony zasób ingress. Dostęp do interfejsów użytkownika produktu IBM Control Desk i portalu usług można uzyskać za pomocą komendy ingress.
Uwaga: Pozycje dla produktów icd.ibm.com i ssp.ibm.com z adresami IP węzłów roboczych są wymagane do dodania do pliku hosts komputera w celu rozstrzygnięcia nazw hostów.