Kubernetes 클러스터에 NGINX Ingress 컨트롤러 설치

이 주제에서는 NGINX Ingress 컨트롤러를 Kubernetes 클러스터에 설치하고 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은 호스트 이름이고 http 프로토콜은 서비스 포트 9080에서 icd-ui와 같은 다른 서비스를 노출하는 데 사용됩니다. 시크릿 이름 icd-secret에는 TLS 시크릿이 포함되어 있습니다.
  3. 아래 명령을 사용하여 icd-ingress 를 적용하십시오. 그러면 IBM Control Desk 워크로드에 대해 클러스터의 Ingress가 사용으로 설정됩니다.
    kubectl apply -f icd-ingress.yaml
  4. 마찬가지로 Service Portal에 대한 Ingress 리소스를 작성하고 이름을 sp-ingress.yaml로 지정하십시오. 이 Ingress는 Service Portal 프론트 엔드에 액세스하는 데 필요합니다. 다음 내용을 참조하십시오.
    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 설정 시 Ingress가 사용됩니다. IBM Control DeskService Portal 사용자 인터페이스는 Ingress를 사용하여 액세스할 수 있습니다.
참고: 작업자 노드 IP 주소가 있는 icd.ibm.comssp.ibm.com 의 항목은 호스트 이름을 분석하기 위해 시스템의 호스트 파일에 추가되어야 합니다.