Azure Red Hat에 Oracle Blockchain Platform Enterprise Edition 배포 OpenShift

Azure Red Hat OpenShift에 Oracle Blockchain Platform Enterprise Edition을 설치할 수 있습니다. OpenShift Red Hat의 엔터프라이즈 Kubernetes 플랫폼으로 컨테이너화된 애플리케이션을 대규모로 구축, 배포 및 관리할 수 있는 도구 모음을 통해 표준 Kubernetes를 개선합니다. Azure Red Hat OpenShift은 Microsoft Azure의 완전 관리형 OpenShift 서비스입니다.

이 항목의 지침은 Azure Red Hat OpenShift에서 Oracle Blockchain Platform Enterprise Edition을 배포하는 방법을 제안하는 지침입니다. 실제로 시도하기 전에, 특히 프로덕션 환경의 경우 이 항목의 정보를 대체하는 Azure Red Hat OpenShift 설명서를 숙지해야 합니다.

Microsoft Azure에서 Red Hat OpenShift 클러스터 생성

Azure Red Hat OpenShift 클러스터에 권장되는 최소 사양입니다.

Azure 설명서를 참조하여 Azure Red Hat OpenShift 클러스터를 생성합니다: Azure Red Hat OpenShift 클러스터 생성

다음을 생성해야 합니다.
  • 제어 플레인 VM: 세 개의 Standard_D8s_v3
  • 워커 노드 VM: 4개의 Standard_D4s_v3
  • Red Hat 풀 암호를 생성합니다.

Oracle Blockchain Platform Enterprise Edition 설치

Oracle Blockchain Platform 배포에 필요한 이미지는 Microsoft Azure VM으로 푸시되기 전에 Docker 저장소에 저장됩니다. 소프트웨어가 설치될 지역과 가능한 한 지리적으로 가까운 Cloud Linux VM에서 설치하는 것이 좋습니다. Docker 이미지의 로컬 스토리지는 약 100GB여야 합니다.

  1. OpenShift 클러스터 콘솔을 엽니다.
  2. kube:admin, Copy login command 순으로 선택합니다. 사용자 ID 및 암호를 입력하라는 메시지가 표시됩니다.
    토큰 표시를 누릅니다. 이 토큰으로 로그인 명령을 복사하여 OpenShift 명령줄 인터페이스에 붙여 넣습니다.
    $ oc login --token=<token> --server=<openshift_cluster_url>
  3. OpenShift에 연결되어 있는지 확인합니다.
    oc get nodes
    이 명령은 마스터 및 워커 노드 목록과 해당 상태를 반환해야 합니다.
  4. istio 프로파일을 설정합니다. 다음 명령을 실행하기 전에 Install Istio의 단계를 완료한 상태여야 합니다.
    istioctl install --set profile=openshift --set
    values.pilot.env.ENABLE_TLS_ON_SIDECAR_INGRESS=true --set components.cni.enabled=true --set
    values.cni.repair.deletePods="true"
  5. Oracle Blockchain Platform 다운로드: Oracle Blockchain Platform.
  6. zip 패키지의 압축을 풀고 OpenShift에 대한 runme 스크립트를 찾습니다.
  7. runme-input.yaml 파일을 필요한 값으로 업데이트합니다. 다음 예제 runme-input.yaml 파일을 참조로 사용할 수 있습니다.
    imageRegistryConfiguration:
      registry: <container_registry_name.azurecr.io>
      imageTagPrefix: <container-image-repository-prefix.azurecr.io/bcs-k8s-dev  >
      username: <container-registry-username>
     
    imageReleaseVersion: 24.1.3-20240723083137
     
    # storageClassName should be set to create a dynamic persistent volume. If empty, default storageClass is used.
     
    controlPlaneStorage:
      storageClassName: 
      # Example 500Mi, 5Gi
      size: 10Gi
      
    parentDomainName: example.com
    #imagePullTimeout: Use this field to customize the wait time (in seconds) for pulling the required container images from the repository. Default is 1800 seconds.
      imagePullTimeout: 1800
    이전 예제에서 변수는 다음 리스트에 표시된 대로 정의됩니다.
    • imageRegistryConfiguration.registry: 사용할 컨테이너 레지스트리 서버입니다.
    • imageRegistryConfiguration.imageTagPrefix: 레지스트리가 있는 컨테이너 기본 저장소 경로로, 이미지가 푸시되어 풀링됩니다. 예: registryname.azurecr.io/obpee/bcs
    • imageRegistryConfiguration.username: 컨테이너 레지스트리 로그인 사용자 이름입니다. Azure의 경우 컨테이너 레지스트리 토큰입니다.
    • imageReleaseVersion - Oracle Blockchain Platform Enterprise Edition 릴리스 버전
    • controlPlaneStorage.storageClassName: PVC에 사용할 Kubernetes 스토리지 클래스(PersistentVolumeClaim). 비어 있는 경우 기본 storageClass가 사용됩니다.
    • controlPlaneStorage.size: 블록체인 플랫폼 관리자(제어 플레인) 서비스를 위한 PVC 크기
    • parentDomainName: Blockchain Platform Manager 서비스에 사용할 도메인 이름입니다. 예: example.com
    • imagePullTimeout: Oracle Blockchain Platform Enterprise Edition 설치 중 이미지 풀 대기 시간 초과(초)입니다. 기본값은 1800초입니다.
  8. 편집기에서 runme_openshift.sh를 열고 다음 두 행을 주석 처리합니다.
    • openshift_status_check
    • check_software_exists "crc"
  9. runme_openshift.sh를 실행하고 프롬프트에 따라 단계를 완료합니다:
    chmod +x runme_openshift.sh
    
    ./runme_openshift.sh --publish-images
    # The publish-images option uploads the containers to the container image registry specified in runme-input.yaml
    # Running the script without this option pulls images you've already pre-uploaded from the repository specified in runme-input.yaml
    표시되는 프롬프트는 다음과 같습니다.
    • OpenLDAP 관리자 비밀번호 입력 - 이 비밀번호는 Blockchain Platform Manager에서 사용되며 사용자는 이 OpenLDAP 서버에서 생성됩니다.
    • 제어 플레인 관리자 비밀번호 입력 - 이 비밀번호는 Oracle Blockchain Platform 관리 사용자용이며 Blockhain Platform Manager 콘솔에 처음 로그인할 때 사용됩니다.
    • run-input.yaml에 지정된 사용자에 대한 레지스트리 로그인 비밀번호를 입력하십시오. - 컨테이너 저장소에 접속하는 데 사용됩니다.
    • 이 스크립트는 obp-cp 네임스페이스 아래에 다음 서비스를 설치합니다.
      • control-plane
      • openldap
      • obp-auth-server
      • obp-operator
      • hlf-operator
  10. Istio 수신 게이트웨이 서비스의 외부 IP 주소를 가져옵니다.
    kubectl get svc/istio-ingressgateway -n istio-system
  11. Blockchain Platform Manager 콘솔에 연결하는 데 사용되는 호스트의 이러한 파일 중 하나에 필요에 따라 다음 행을 추가합니다.
    • Linux 또는 macOS: /etc/hosts
    • 윈도우: C:\Windows\system32\drivers\etc\hosts
    <public_svc_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    여기서 <public_svc_ip>는 이전 단계의 공용 외부 IP 주소입니다.

사후 요구사항

이제 처음으로 Oracle Blockchain Platform에 로그온하고 인스턴스를 프로비저닝할 준비가 되었습니다.