Kubernetes 클러스터에 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. 마찬가지로 서비스 포털에 대한 Ingress 자원을 작성하고 이름을 sp-ingress.yaml로 지정하십시오. 서비스 포털 프론트 엔드에 액세스하는 데 이 Ingress가 필요합니다. 아래 내용을 참조하십시오.
    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가 사용 가능해집니다. Ingress를 사용하여 IBM Control DeskService Portal 사용자 인터페이스에 액세스할 수 있습니다.
참고: 작업자 노드 IP 주소에서 icd.ibm.comssp.ibm.com에 대한 항목은 호스트 이름을 분석하기 위해 시스템의 호스트 파일에 추가해야 합니다.