Installation du contrôleur Ingress NGINX dans le cluster Kubernetes

Cette rubrique explique comment installer le contrôleur Ingress NGINX dans le cluster Kubernetes et exposer les charges de travail IBM Control Desk hors du cluster Kubernetes.

A propos de cette tâche

Procédure

  1. Installez le contrôleur Ingress NGINX. Pour plus de détails, voir la documentation NGINX .
  2. Créez un nouveau fichier d'installation Ingress, nommez-le icd-ingress.yaml. Il est utilisé pour exposer les charges de travail IBM® Control Desk en dehors du cluster. Son contenu doit être le suivant :
    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
    
    Ici, icd.ibm.com est le nom d'hôte et http est le protocole utilisé pour exposer les différents services tels qu'icd-ui sur le port de service 9080. Le nom de secret icd-secret contient le secret TLS.
  3. Appliquez le icd-ingress à l'aide de la commande ci-dessous. Cela active l'entrée dans votre cluster pour les charges de travail IBM Control Desk :
    kubectl apply -f icd-ingress.yaml
  4. De la même manière, créez une ressource Ingress pour le portail des services, nommez-la sp-ingress.yaml. Elle sera requise pour l'accès au guichet du portail des services. Son contenu doit être le suivant :
    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 
    
    Ici, ssp.ibm.com est le nom d'hôte et http est le protocole utilisé pour exposer les différents services tels qu'icd-ssp sur le port de service 3000. Le nom de secret icd-secret contient le secret TLS.
  5. Appliquez le ssp-ingress à l'aide de la commande suivante:
    kubectl apply -f sp-ingress.yaml

Résultats

Une fois les étapes ci-dessus effectuées, Ingress est activé dans la configuration Kubernetes. Les interfaces utilisateur IBM Control Desk et Service Portal sont accessibles à l'aide d'Ingress.
Remarque: les entrées pour icd.ibm.com et ssp.ibm.com avec les adresses IP des noeuds worker doivent être ajoutées dans le fichier hosts de la machine pour résoudre les noms d'hôte.