Microsoft Azure Kubernetes Service에 Red Hat Developer Hub 설치
Operator 또는 Helm 차트를 사용하여 Microsoft 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장. Operator를 사용하여 AKS에 개발자 허브 배포 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Developer Hub Operator를 사용하여 AKS에 개발자 허브를 배포할 수 있습니다.
프로세스
다음 예와 같이 보호된
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>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 Copied! Toggle word wrap Toggle overflow 다음과 같이 Developer Hub 서비스 이름을 지정하여
rhdh-ingress.yaml이라는 Ingress 매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 Ingress를 배포하려면 다음 명령을 실행합니다.
kubectl -n <your_namespace> apply -f rhdh-ingress.yaml
kubectl -n <your_namespace> apply -f rhdh-ingress.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제를 사용하여
app-config.yamlDeveloper Hub 구성 파일이 포함된my-rhdh-app-config구성 맵을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 <
my_product_secrets> 시크릿을 생성하고Base64 인코딩문자열 값을 사용하여BACKEND_SECRET이라는 키를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <
my_product_secrets>는 선호하는 Developer Hub 시크릿 이름입니다. 여기서 <my_product_secrets>는 개발자 허브 내에서 시크릿 구성의 식별자를 지정합니다.
<
your-rhdh-cr>라는BackstageCR(사용자 정의 리소스) 매니페스트 파일을 생성하고 다음과 같이 이전에 생성된rhdh-pull-secret을 포함합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <
my_product_secrets>는 선호하는 Developer Hub 시크릿 이름입니다. 여기서 <my_product_secrets>는 개발자 허브 내에서 시크릿 구성의 식별자를 지정합니다.
CR 매니페스트를 네임스페이스에 적용합니다.
kubectl -n my-rhdh-project apply -f rhdh.yaml
kubectl -n my-rhdh-project apply -f rhdh.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
URL을 사용하여 배포된 개발자 허브에 액세스합니다.
https://<app_address> . 여기서 <app_address>는 이전에 가져온 Ingress 주소입니다(예:https://108.141.70.228). 선택 사항: CR을 삭제하려면 다음 명령을 실행합니다.
kubectl -n my-rhdh-project delete -f rhdh.yaml
kubectl -n my-rhdh-project delete -f rhdh.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2장. Helm 차트를 사용하여 AKS에 개발자 허브 배포 링크 복사링크가 클립보드에 복사되었습니다!
AKS(Azure Kubernetes Service)에 Developer Hub 애플리케이션을 배포하여 애플리케이션을 빌드, 테스트 및 배포하기 위한 포괄적인 솔루션에 액세스할 수 있습니다.
사전 요구 사항
- 활성 서브스크립션이 있는 Microsoft Azure 계정이 있어야 합니다.
- Azure CLI 를 설치했습니다.
-
kubectlCLI 를 설치했습니다. -
kubectl을 사용하여 클러스터에 로그인하고개발자또는관리자권한이 있어야 합니다. - Helm 3 또는 최신 버전을 설치했습니다.
기본 Developer Hub 배포와 AKS 세부 사항 비교
-
권한 문제: Developer Hub 컨테이너에 특정 작업을 시도할 때
Permission denied와 같은 권한 관련 오류가 발생할 수 있습니다. 이 오류는PodSpec.securityContext의fsGroup을 조정하여 해결할 수 있습니다. Ingress 구성: AKS에서는 설치된 Developer Hub 인스턴스에 액세스하려면 Ingress를 구성해야 합니다. Developer Hub 인스턴스에 액세스하려면 다음 명령을 사용하여 NGINX 기반 Ingress 컨트롤러인 라우팅 애드온을 활성화해야 합니다.
az aks approuting enable --resource-group <your_ResourceGroup> --name <your_ClusterName>
az aks approuting enable --resource-group <your_ResourceGroup> --name <your_ClusterName>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보Azure CLI 확장
aks-preview를 설치해야 할 수 있습니다. 확장 기능이 자동으로 설치되지 않은 경우 다음 명령을 사용하여 수동으로 설치해야 할 수 있습니다.az extension add --upgrade -n aks-preview --allow-preview true
az extension add --upgrade -n aks-preview --allow-preview trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고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}'kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스 관리: 다음 명령을 사용하여 AKS에 Developer Hub 배포를 위한 전용 네임스페이스를 생성할 수 있습니다.
kubectl create namespace <your_namespace>
kubectl create namespace <your_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
프로세스
다음 명령을 실행하여 AKS에 로그인합니다.
az login [--tenant=<optional_directory_name>]
az login [--tenant=<optional_directory_name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 리소스 그룹을 생성합니다.
az group create --name <resource_group_name> --location <location>
az group create --name <resource_group_name> --location <location>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보다음 명령을 실행하여 사용 가능한 리전을 나열할 수 있습니다.
az account list-locations -o table
az account list-locations -o tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 AKS 클러스터를 생성합니다.
az aks create \ --resource-group <resource_group_name> \ --name <cluster_name> \ --enable-managed-identity \ --generate-ssh-keys
az aks create \ --resource-group <resource_group_name> \ --name <cluster_name> \ --enable-managed-identity \ --generate-ssh-keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow 추가 옵션은
--help를 참조할 수 있습니다.다음 명령을 실행하여 클러스터에 연결합니다.
az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>
az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령은 Kubernetes 클라이언트를 구성하고
kubeconfig의 현재 컨텍스트를 AKS 클러스터를 가리키도록 설정합니다.터미널을 열고 다음 명령을 실행하여 Helm 차트 리포지터리를 추가합니다.
helm repo add openshift-helm-charts https://charts.openshift.io/
helm repo add openshift-helm-charts https://charts.openshift.io/Copy to Clipboard Copied! Toggle word wrap Toggle overflow < my-rhdh-project> 네임스페이스를 생성하고 활성화합니다.
DEPLOYMENT_NAME=<redhat-developer-hub> NAMESPACE=<rhdh> kubectl create namespace ${NAMESPACE} kubectl config set-context --current --namespace=${NAMESPACE}DEPLOYMENT_NAME=<redhat-developer-hub> NAMESPACE=<rhdh> kubectl create namespace ${NAMESPACE} kubectl config set-context --current --namespace=${NAMESPACE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 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>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 Copied! Toggle word wrap Toggle overflow 다음 템플릿을 사용하여
values.yaml이라는 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Helm 차트를 사용하여 개발자 허브를 설치하려면 다음 명령을 실행합니다.
helm -n $NAMESPACE install -f values.yaml $DEPLOYMENT_NAME openshift-helm-charts/redhat-developer-hub --version 1.5.3
helm -n $NAMESPACE install -f values.yaml $DEPLOYMENT_NAME openshift-helm-charts/redhat-developer-hub --version 1.5.3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배포 상태를 확인합니다.
kubectl get deploy $DEPLOYMENT_NAME -n $NAMESPACE
kubectl get deploy $DEPLOYMENT_NAME -n $NAMESPACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터의 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.5.3/redhat-developer-hub-1.5.3.tgz" \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE" \ --set global.postgresql.auth.password="$PASSWORD"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.5.3/redhat-developer-hub-1.5.3.tgz" \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE" \ --set global.postgresql.auth.password="$PASSWORD"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 실행 중인 Developer Hub 인스턴스 URL을 표시합니다.
echo "https://$DEPLOYMENT_NAME-$NAMESPACE.$CLUSTER_ROUTER_BASE"
echo "https://$DEPLOYMENT_NAME-$NAMESPACE.$CLUSTER_ROUTER_BASE"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
- 브라우저에서 실행 중인 Developer Hub 인스턴스 URL을 열어 개발자 허브를 사용합니다.
업그레이드
배포를 업그레이드하려면 다음 명령을 실행합니다.
helm upgrade $DEPLOYMENT_NAME -i https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.5.3/redhat-developer-hub-1.5.3.tgz
helm upgrade $DEPLOYMENT_NAME -i https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.5.3/redhat-developer-hub-1.5.3.tgzCopy to Clipboard Copied! Toggle word wrap Toggle overflow
삭제
배포를 삭제하려면 다음 명령을 실행합니다.
helm -n $NAMESPACE delete $DEPLOYMENT_NAME
helm -n $NAMESPACE delete $DEPLOYMENT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow