1장. Operator를 사용하여 EKS에 개발자 허브 설치
Red Hat Developer Hub Operator를 설치하려면 OLM(Operator Lifecycle Manager) 프레임워크가 필요합니다.
Additonal 리소스
- OLM에 대한 자세한 내용은 OLM(Operator Lifecycle Manager) 설명서를 참조하십시오.
1.1. OLM 프레임워크를 사용하여 Developer Hub Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
OLM(Operator Lifecycle Manager) 프레임워크를 사용하여 EKS에 Developer Hub Operator 를 설치할 수 있습니다. 이에 따라 EKS에 Developer Hub 인스턴스를 계속 배포할 수 있습니다.
사전 요구 사항
-
현재
kubeconfig에서 컨텍스트를 EKS 클러스터로 설정했습니다. 자세한 내용은 Amazon EKS 클러스터의 kubeconfig 파일 생성 또는 업데이트를 참조하십시오. -
kubectl을 설치했습니다. 자세한 내용은 kubectl 설치 또는 업데이트를 참조하십시오. -
registry.redhat.io에 가입했습니다. 자세한 내용은 Red Hat Container Registry Authentication 을 참조하십시오. - OLM(Operator Lifecycle Manager)이 설치되어 있습니다. 설치 및 문제 해결에 대한 자세한 내용은 OLM QuickStart 또는 How do I get Operator Lifecycle Manager를 참조하십시오.
프로세스
터미널에서 다음 명령을 실행하여 Operator가 설치된
rhdh-operator네임스페이스를 생성합니다.kubectl create namespace rhdh-operator다음 명령을 사용하여 풀 시크릿을 생성합니다.
kubectl -n rhdh-operator create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \1 --docker-password=<password> \2 --docker-email=<email>3 생성된 풀 시크릿은 Red Hat Ecosystem에서 Developer Hub 이미지를 가져오는 데 사용됩니다.
Red Hat Ecosystem에서 Operator가 포함된
CatalogSource리소스를 생성합니다.cat <<EOF | kubectl -n rhdh-operator apply -f - apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: redhat-catalog spec: sourceType: grpc image: registry.redhat.io/redhat/redhat-operator-index:v4.17 secrets: - "rhdh-pull-secret" displayName: Red Hat Operators EOF다음과 같이
OperatorGroup리소스를 생성합니다.cat <<EOF | kubectl apply -n rhdh-operator -f - apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: rhdh-operator-group EOF다음 코드를 사용하여
서브스크립션리소스를 생성합니다.cat <<EOF | kubectl apply -n rhdh-operator -f - apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhdh namespace: rhdh-operator spec: channel: fast installPlanApproval: Automatic name: rhdh source: redhat-catalog sourceNamespace: rhdh-operator startingCSV: rhdh-operator.v1.3.5 EOF다음 명령을 실행하여 생성된 Operator가 실행 중인지 확인합니다.
kubectl -n rhdh-operator get pods -wOperator Pod에
ImagePullBackOff상태가 표시되면 Operator 배포 매니페스트 내에서 이미지를 직접 가져오려면 권한이 필요할 수 있습니다.작은 정보deployment.spec.template.spec.imagePullSecrets목록에 필요한 시크릿 이름을 추가하고kubectl get deployment -n rhdh-operator명령을 사용하여 배포 이름을 확인할 수 있습니다.kubectl -n rhdh-operator patch deployment \ rhdh.fast --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \ --type=merge다음 단계를 사용하여 EKS에서 Developer Hub 리소스가 올바르게 시작될 수 있도록 Operator의 기본 구성을 업데이트합니다.
다음 명령을 사용하여
rhdh-operator네임스페이스에서backstage-default-configConfigMap을 편집합니다.kubectl -n rhdh-operator edit configmap backstage-default-config다음 예와 같이
db-statefulset.yaml문자열을 찾고fsGroup을spec.template.spec.securityContext에 추가합니다.db-statefulset.yaml: | apiVersion: apps/v1 kind: StatefulSet --- TRUNCATED --- spec: --- TRUNCATED --- restartPolicy: Always securityContext: # You can assign any random value as fsGroup fsGroup: 2000 serviceAccount: default serviceAccountName: default --- TRUNCATED ---다음 예와 같이
deployment.yaml문자열을 찾고fsGroup을 사양에 추가합니다.deployment.yaml: | apiVersion: apps/v1 kind: Deployment --- TRUNCATED --- spec: securityContext: # You can assign any random value as fsGroup fsGroup: 3000 automountServiceAccountToken: false --- TRUNCATED ---service.yaml문자열을 찾고 다음과 같이유형을NodePort로 변경합니다.service.yaml: | apiVersion: v1 kind: Service spec: # NodePort is required for the ALB to route to the Service type: NodePort --- TRUNCATED ---저장 및 종료합니다.
변경 사항이 Operator Pod에 자동으로 적용될 때까지 몇 분 정도 기다립니다.