1.2. OpenShift 4.x에서 Fuse 콘솔 설정


OpenShift 4.x에서 Fuse 콘솔을 설정하려면 보안, 설치 및 배포가 필요합니다.

먼저 1.2.1절. “OpenShift 4.x에서 Fuse Console을 보호하기 위한 인증서 생성” 에 설명된 대로 Fuse 콘솔을 보호할 수 있도록 클라이언트 인증서를 생성해야 합니다.

클라이언트 인증서를 생성한 후 명령줄과 Fuse Console 템플릿 중 하나를 사용하여 Fuse Console을 설치 및 배포하여 OpenShift 클러스터 또는 특정 네임스페이스의 여러 네임스페이스의 Fuse 애플리케이션에 액세스할 수 있습니다.

참고
  • Fuse Console의 사용자 관리는 OpenShift에서 처리합니다.
  • 배포 후 Fuse Console에 액세스하는 사용자의 경우 OpenShift에서 Fuse를 사용할 수 없습니다.

1.2.1. OpenShift 4.x에서 Fuse Console을 보호하기 위한 인증서 생성

OpenShift 4.x에서는 Fuse Console 프록시와 Jolokia 에이전트 간에 안전하게 연결을 유지하려면 Fuse Console을 배포하기 전에 클라이언트 인증서를 생성해야 합니다. 서비스 서명 인증 기관 개인 키를 사용하여 클라이언트 인증서에 서명해야 합니다.

중요

각 OpenShift 클러스터에 대해 별도의 클라이언트 인증서를 생성하고 서명해야 합니다. 두 개 이상의 클러스터에 동일한 인증서를 사용하지 마십시오.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 액세스 권한이 있어야 합니다.
  • 두 개 이상의 OpenShift 클러스터에 대한 인증서를 생성하고 이전에 현재 디렉터리에 다른 클러스터에 대한 인증서를 생성한 경우 다음 중 하나를 수행하여 현재 클러스터에 대한 다른 인증서를 생성하십시오.

    • 현재 디렉터리에서 기존 인증서 파일(예: ca.crt,ca.key, ca.srl)을 삭제합니다.
    • 다른 작업 디렉터리로 변경합니다. 예를 들어 현재 작업 디렉터리 이름이 cluster1 인 경우 새 cluster2 디렉터리를 생성하고 작업 디렉터리를 해당 디렉터리로 변경합니다.

      mkdir ../cluster2

      cd ../cluster2

절차

  1. 클러스터 관리자 액세스 권한이 있는 사용자로 OpenShift에 로그인합니다.

    oc login -u <user_with_cluster_admin_role>
  2. 다음 명령을 실행하여 서비스 서명 인증 기관 키를 검색합니다.

    • 인증서를 검색하려면 다음을 수행합니다.

      oc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.crt']}" | base64 --decode > ca.crt
    • 개인 키를 검색하려면 다음을 수행합니다.

      oc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.key']}" | base64 --decode > ca.key
  3. easyrsa,openssl 또는 cfssl 을 사용하여 Kubernetes 인증서 관리에 설명된 대로 클라이언트 인증서를 생성합니다.

    다음은 openssl을 사용하는 예제 명령입니다.

    1. 개인 키를 생성합니다.

      openssl genrsa -out server.key 2048
    2. CSR 구성 파일을 작성합니다.

      cat <<EOT >> csr.conf
        [ req ]
        default_bits = 2048
        prompt = no
        default_md = sha256
        distinguished_name = dn
      
        [ dn ]
        CN = fuse-console.fuse.svc
      
        [ v3_ext ]
        authorityKeyIdentifier=keyid,issuer:always
        keyUsage=keyEncipherment,dataEncipherment,digitalSignature
        extendedKeyUsage=serverAuth,clientAuth
      EOT
    3. CSR을 생성합니다.

      openssl req -new -key server.key -out server.csr -config csr.conf
    4. 서명된 인증서를 발급합니다.

      openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf

1.2.2. 명령줄을 사용하여 OpenShift 4.x에 Fuse Console 설치 및 배포

OpenShift 4.x에서는 명령줄에서 Fuse 콘솔을 설치하고 배포할 다음 배포 옵션 중 하나를 선택할 수 있습니다.

  • 클러스터 - Fuse Console은 OpenShift 클러스터의 여러 네임스페이스(프로젝트)에 배포된 Fuse 애플리케이션을 검색하고 연결할 수 있습니다. 이 템플릿을 배포하려면 OpenShift 클러스터에 대한 관리자 역할이 있어야 합니다.
  • 네임스페이스 - Fuse Console은 특정 OpenShift 프로젝트(네임스페이스)에 액세스할 수 있습니다. 이 템플릿을 배포하려면 OpenShift 프로젝트에 대한 관리자 역할이 있어야 합니다.

Fuse Console 템플릿의 매개변수 목록을 보려면 다음 OpenShift 명령을 실행합니다.

oc process --parameters -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006/fuse-console-namespace-os4.json

사전 요구 사항

절차

  1. 다음 명령을 사용하여 모든 템플릿 목록을 검색하여 Fuse Console 이미지 스트림이 설치되었는지 확인합니다.

    oc get template -n openshift
  2. 선택적으로 이미 설치된 이미지 스트림을 새 릴리스 태그로 업데이트하려면 다음 명령을 사용하여 Fuse Console 이미지를 openshift 네임스페이스로 가져옵니다.

    oc import-image fuse7/fuse7-console:1.5 --from=registry.redhat.io/fuse7/fuse-console:1.5 --confirm -n openshift
  3. https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006 에서 원시 형식으로 다음 Fuse Console 템플릿 중 하나를 선택한 로컬 디렉터리(예: mytemp)로 다운로드합니다.

    • 클러스터 템플릿: fuse-console-cluster-os4.json
    • 네임스페이스 템플릿: fuse-console-namespace-os4.json
  4. 네임스페이스 템플릿의 경우 다음 단계로 건너뜁니다.

    클러스터 템플릿의 경우 선택한 편집기에서 fuse-console-cluster-os4.json 파일의 로컬 사본을 편집하여 "grantMethod": "auto" 속성을 OAuthClient 섹션에 추가합니다.

    {
          "kind": "OAuthClient",
          "apiVersion": "v1",
          "metadata": {
            "name": "${APP_NAME}-oauth-client"
          },
          "grantMethod": "auto",
          "redirectURIs": [
            "https://${ROUTE_HOSTNAME}"
          ]
    }
  5. 다음 명령을 실행하여 Fuse Console APP_NAME 값을 가져옵니다(여기서 mytemp 는 Fuse Console 템플릿이 포함된 로컬 디렉터리의 경로입니다).

    • 클러스터 템플릿의 경우:

      oc process --parameters -f mytemp/fuse-console-cluster-os4.json
    • 네임스페이스 템플릿의 경우:

      oc process --parameters -f mytemp/fuse-console-namespace-os4.json
  6. OpenShift 4.x에서 Fuse Console 보안에서 생성한 인증서에서 다음 명령을 사용하여 시크릿을 생성하고 Fuse Console에 마운트합니다(여기서 APP_NAME 은 Fuse Console 애플리케이션의 이름입니다.

    oc create secret tls APP_NAME-tls-proxying --cert server.crt --key server.key
  7. 다음 명령을 실행하여 Fuse Console 템플릿의 로컬 복사본을 기반으로 새 애플리케이션을 생성합니다. 여기서 myproject 는 OpenShift 프로젝트의 이름, mytemp 는 Fuse Console 템플릿이 포함된 로컬 디렉터리의 경로입니다. myhost 는 Fuse Console에 액세스할 수 있는 호스트 이름입니다.

    • 클러스터 템플릿의 경우:

      oc new-app -n myproject -f mytemp/fuse-console-cluster-os4.json -p ROUTE_HOSTNAME=myhost
    • 네임스페이스 템플릿의 경우:

      oc new-app -n myproject -f mytemp/fuse-console-namespace-os4.json
  8. 다음 명령을 실행하여 Fuse Console 배포의 상태 및 URL을 가져옵니다.

    oc status
  9. 브라우저에서 Fuse 콘솔에 액세스하려면 6단계에서 반환된 URL(예: https://fuse-console.192.168.64.12.nip.io)을 사용합니다.

1.2.3. OpenShift 4.x에서 Fuse Console 업그레이드

Red Hat OpenShift 4.x는 Red Hat Fuse Operator를 포함하여 Operator에 대한 업데이트를 처리합니다. 자세한 내용은 Operator OpenShift 설명서 를 참조하십시오.

결과적으로 Operator 업데이트는 애플리케이션 업그레이드를 트리거할 수 있습니다. 애플리케이션 업그레이드 방법은 애플리케이션 구성 방법에 따라 다릅니다.

Fuse Console 애플리케이션의 경우 애플리케이션 사용자 정의 리소스 정의의 .spec.version 필드를 편집하여 해당 애플리케이션에 대한 업그레이드를 트리거할 시기를 지정할 수 있습니다.

사전 요구 사항

  • OpenShift 클러스터 관리자 권한이 있어야 합니다.

절차

Fuse Console 애플리케이션을 업그레이드하려면 다음을 수행합니다.

  1. 터미널 창에서 다음 명령을 사용하여 애플리케이션 사용자 정의 리소스 정의의 .spec.version 필드를 변경합니다.

    oc patch <project-name> <custom-resource-name> --type='merge' -p '{"spec":{"version":"1.7.1"}}'

    예를 들면 다음과 같습니다.

    oc patch myproject example-fuseconsole --type='merge' -p '{"spec":{"version":"1.7.1"}}'
  2. 애플리케이션 상태가 업데이트되었는지 확인합니다.

     oc get myproject

    응답에는 버전 번호를 포함하여 애플리케이션에 대한 정보가 표시됩니다.

    NAME                  AGE   URL                                        IMAGE
    example-fuseconsole   1m    https://fuseconsole.192.168.64.38.nip.io   docker.io/fuseconsole/online:1.7.1

    .spec.version 필드의 값을 변경하면 OpenShift에서 애플리케이션을 자동으로 재배포합니다.

  3. 버전 변경으로 트리거되는 재배포 상태를 확인하려면 다음을 수행합니다.

    oc rollout status deployment.v1.apps/example-fuseconsole

    성공적인 배포에는 다음 응답이 표시됩니다.

    deployment "example-fuseconsole" successfully rolled out
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.