Microsoft Azure Kubernetes Service에 Red Hat Developer Hub 설치


Red Hat Developer Hub 1.2

Red Hat Customer Content Services

초록

Red Hat Developer Hub는 개발자 포털을 구축하기 위한 엔터프라이즈급 플랫폼입니다. 관리 사용자는 역할, 권한 및 기타 설정을 구성하여 다른 권한이 있는 사용자가 Operator 또는 Helm 차트를 사용하여 Microsoft Azure Kubernetes Service(AKS)에 Developer Hub 인스턴스를 배포할 수 있습니다.

1장. Azure Kubernetes Service(AKS)에 Red Hat Developer Hub 설치

다음 방법 중 하나를 사용하여 Microsoft Azure Kubernetes Service(AKS)에 Red Hat Developer Hub를 설치할 수 있습니다.

  • Red Hat Developer Hub Operator
  • Red Hat Developer Hub Helm 차트

1.1. Operator를 사용하여 AKS에 개발자 허브 배포

Red Hat Developer Hub Operator를 사용하여 AKS에 개발자 허브를 배포할 수 있습니다.

프로세스

  1. rhdh-operator-<VERSION>.yaml 이라는 Red Hat Developer Hub Operator 매니페스트 파일을 가져오고 다음 조각을 추가하여 db-statefulset.yamldeployment.yaml 의 기본 구성을 수정합니다.

    securityContext:
      fsGroup: 300
    Copy to Clipboard

    다음은 매니페스트에 지정된 위치입니다.

    db-statefulset.yaml: | spec.template.spec
    deployment.yaml: | spec.template.spec
    Copy to Clipboard
  2. 수정된 Operator 매니페스트를 Kubernetes 클러스터에 적용합니다.

    kubectl apply -f rhdh-operator-<VERSION>.yaml
    Copy to Clipboard
    참고

    이전 명령을 실행하는 것은 클러스터 범위이며 적절한 클러스터 권한이 필요합니다.

  3. 다음 예와 같이 보호된 registry.redhat.io 의 이미지에 액세스하기 위해 Red Hat 인증 정보를 사용하여 rhdh-pull-secret 이라는 ImagePull 보안을 생성합니다.

    kubectl -n <your_namespace> create secret docker-registry rhdh-pull-secret \
        --docker-server=registry.redhat.io \
        --docker-username=<redhat_user_name> \
        --docker-password=<redhat_password> \
        --docker-email=<email>
    Copy to Clipboard
  4. 다음과 같이 Developer Hub 서비스 이름을 지정하여 rhdh-ingress.yaml 이라는 Ingress 매니페스트 파일을 생성합니다.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: rhdh-ingress
      namespace: <your_namespace>
    spec:
      ingressClassName: webapprouting.kubernetes.azure.com
      rules:
        - http:
            paths:
              - path: /
                pathType: Prefix
                backend:
                  service:
                    name: backstage-<your-CR-name>
                    port:
                      name: http-backend
    Copy to Clipboard
  5. 생성된 Ingress를 배포하려면 다음 명령을 실행합니다.

    kubectl -n <your_namespace> apply -f rhdh-ingress.yaml
    Copy to Clipboard
  6. 다음 예제를 사용하여 Developer Hub 구성이 포함된 app-config-rhdh 라는 ConfigMap을 생성합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: app-config-rhdh
    data:
      "app-config-rhdh.yaml": |
        app:
          title: Red Hat Developer Hub
          baseUrl: https://<app_address>
        backend:
          auth:
            keys:
              - secret: "${BACKEND_SECRET}"
          baseUrl: https://<app_address>
          cors:
            origin: https://<app_address>
    Copy to Clipboard
  7. secrets-rhdh 라는 시크릿을 생성하고 다음 예와 같이 Base64 인코딩 문자열 값을 사용하여 BACKEND_SECRET 이라는 키를 추가합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: secrets-rhdh
    stringData:
      BACKEND_SECRET: "xxx"
    Copy to Clipboard
  8. rhdh.yaml 이라는 사용자 정의 리소스(CR) 매니페스트 파일을 생성하고 다음과 같이 이전에 생성된 rhdh-pull-secret 을 포함합니다.

    apiVersion: rhdh.redhat.com/v1alpha1
    kind: Backstage
    metadata:
      name: <your-rhdh-cr>
    spec:
      application:
        imagePullSecrets:
          - rhdh-pull-secret
        appConfig:
          configMaps:
            - name: "app-config-rhdh"
        extraEnvs:
          secrets:
            - name: "secrets-rhdh"
    Copy to Clipboard
  9. CR 매니페스트를 네임스페이스에 적용합니다.

    kubectl -n <your_namespace> apply -f rhdh.yaml
    Copy to Clipboard
  10. URL을 사용하여 배포된 개발자 허브에 액세스합니다. https://<app_address > . 여기서 <app_address>는 이전에 가져온 Ingress 주소입니다(예: https://108.141.70.228).
  11. 선택 사항: CR을 삭제하려면 다음 명령을 실행합니다.

    kubectl -n <your_namespace> delete -f rhdh.yaml
    Copy to Clipboard

1.2. Helm 차트를 사용하여 AKS에 개발자 허브 배포

AKS(Azure Kubernetes Service)에 Developer Hub 애플리케이션을 배포하여 애플리케이션을 빌드, 테스트 및 배포하기 위한 포괄적인 솔루션에 액세스할 수 있습니다.

사전 요구 사항

  • 활성 서브스크립션이 있는 Microsoft Azure 계정이 있어야 합니다.
  • Azure CLI 를 설치했습니다.
  • kubectl CLI 를 설치했습니다.
  • kubectl 을 사용하여 클러스터에 로그인하고 개발자 또는 관리자 권한이 있어야 합니다.
  • Helm 3 또는 최신 버전을 설치했습니다.

기본 Developer Hub 배포와 AKS 세부 사항 비교

  • 권한 문제: Developer Hub 컨테이너에 특정 작업을 시도할 때 Permission denied 와 같은 권한 관련 오류가 발생할 수 있습니다. 이 오류는 PodSpec.securityContextfsGroup 을 조정하여 처리할 수 있습니다.
  • Ingress 구성: AKS에서는 설치된 Developer Hub 인스턴스에 액세스하려면 Ingress를 구성해야 합니다. Developer Hub 인스턴스에 액세스하려면 다음 명령을 사용하여 NGINX 기반 Ingress 컨트롤러인 라우팅 애드온을 활성화해야 합니다.

    az aks approuting enable --resource-group <your_ResourceGroup> --name <your_ClusterName>
    Copy to Clipboard
    작은 정보

    Azure CLI 확장 aks-preview 를 설치해야 할 수 있습니다. 확장 기능이 자동으로 설치되지 않은 경우 다음 명령을 사용하여 수동으로 설치해야 할 수 있습니다.

    az extension add --upgrade -n aks-preview --allow-preview true
    Copy to Clipboard
    참고

    Ingress 컨트롤러를 설치하면 Ingress 컨트롤러가 있는 app-routing-system 네임스페이스가 클러스터에 배포됩니다. 설치된 Ingress 컨트롤러의 개발자 허브 애플리케이션 주소(예: 108.141.70.228)는 나중에 < app_address >로 참조되는 Developer Hub 애플리케이션에 액세스할 수 있습니다.

    kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    Copy to Clipboard
  • 네임스페이스 관리: 다음 명령을 사용하여 AKS에 Developer Hub 배포를 위한 전용 네임스페이스를 생성할 수 있습니다.

    kubectl create namespace <your_namespace>
    Copy to Clipboard

프로세스

  1. 다음 명령을 실행하여 AKS에 로그인합니다.

    az login [--tenant=<optional_directory_name>]
    Copy to Clipboard
  2. 다음 명령을 실행하여 리소스 그룹을 생성합니다.

    az group create --name <resource_group_name> --location <location>
    Copy to Clipboard
    작은 정보

    다음 명령을 실행하여 사용 가능한 리전을 나열할 수 있습니다.

    az account list-locations -o table
    Copy to Clipboard
  3. 다음 명령을 실행하여 AKS 클러스터를 생성합니다.

    az aks create \
    --resource-group <resource_group_name> \
    --name <cluster_name> \
    --enable-managed-identity \
    --generate-ssh-keys
    Copy to Clipboard

    추가 옵션은 --help 를 참조할 수 있습니다.

  4. 다음 명령을 실행하여 클러스터에 연결합니다.

    az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>
    Copy to Clipboard

    이전 명령은 Kubernetes 클라이언트를 구성하고 kubeconfig 의 현재 컨텍스트를 AKS 클러스터를 가리키도록 설정합니다.

  5. 터미널을 열고 다음 명령을 실행하여 Helm 차트 리포지터리를 추가합니다.

    helm repo add openshift-helm-charts https://charts.openshift.io/
    Copy to Clipboard
  6. < rhdh> 네임스페이스를 생성하고 활성화합니다.

    DEPLOYMENT_NAME=<redhat-developer-hub>
    NAMESPACE=<rhdh>
    kubectl create namespace ${NAMESPACE}
    kubectl config set-context --current --namespace=${NAMESPACE}
    Copy to Clipboard
  7. 다음 명령을 실행하여 Red Hat Ecosystem에서 Developer Hub 이미지를 가져오는 데 사용되는 풀 시크릿을 생성합니다.

    kubectl -n $NAMESPACE create secret docker-registry rhdh-pull-secret \
        --docker-server=registry.redhat.io \
        --docker-username=<redhat_user_name> \
        --docker-password=<redhat_password> \
        --docker-email=<email>
    Copy to Clipboard
  8. 다음 템플릿을 사용하여 values.yaml 이라는 파일을 생성합니다.

    global:
      host: <app_address>
    route:
      enabled: false
    upstream:
      ingress:
        enabled: true
        className: webapprouting.kubernetes.azure.com
        host:
      backstage:
        image:
          pullSecrets:
            - rhdh-pull-secret
        podSecurityContext:
          fsGroup: 3000
      postgresql:
        image:
          pullSecrets:
            - rhdh-pull-secret
        primary:
          podSecurityContext:
            enabled: true
            fsGroup: 3000
      volumePermissions:
        enabled: true
    Copy to Clipboard
  9. Helm 차트를 사용하여 개발자 허브를 설치하려면 다음 명령을 실행합니다.

    helm -n $NAMESPACE install -f values.yaml $DEPLOYMENT_NAME openshift-helm-charts/redhat-developer-hub --version 1.2.6
    Copy to Clipboard
  10. 배포 상태를 확인합니다.

    kubectl get deploy $DEPLOYMENT_NAME -n $NAMESPACE
    Copy to Clipboard
  11. 클러스터의 Developer Hub 데이터베이스 암호 및 라우터 기본 URL 값을 사용하여 Developer Hub Helm 차트 인스턴스를 구성합니다.

    PASSWORD=$(kubectl get secret redhat-developer-hub-postgresql -o jsonpath="{.data.password}" | base64 -d)
    CLUSTER_ROUTER_BASE=$(kubectl get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/^[^.]*\.//')
    helm upgrade $DEPLOYMENT_NAME -i "https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.2.6/redhat-developer-hub-1.2.6.tgz" \
        --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE" \
        --set global.postgresql.auth.password="$PASSWORD"
    Copy to Clipboard
  12. 다음 명령을 실행하여 실행 중인 Developer Hub 인스턴스 URL을 표시합니다.

    echo "https://$DEPLOYMENT_NAME-$NAMESPACE.$CLUSTER_ROUTER_BASE"
    Copy to Clipboard

검증

  • 브라우저에서 실행 중인 Developer Hub 인스턴스 URL을 열어 개발자 허브를 사용합니다.

업그레이드

  • 배포를 업그레이드하려면 다음 명령을 실행합니다.

    helm upgrade $DEPLOYMENT_NAME -i https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.2.6/redhat-developer-hub-1.2.6.tgz
    Copy to Clipboard

delete

  • 배포를 삭제하려면 다음 명령을 실행합니다.

    helm -n $NAMESPACE delete $DEPLOYMENT_NAME
    Copy to Clipboard

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat