1.4. 애플리케이션 리소스 관리


콘솔에서 Git 리포지토리, Helm 리포지토리 및 오브젝트 스토리지 리포지토리를 사용하여 애플리케이션을 생성할 수 있습니다.

중요: Git 채널은 Helm, 오브젝트 스토리지 및 기타 Git 네임스페이스 등 다른 모든 채널 유형과 네임스페이스를 공유할 수 있습니다.

다음 주제를 참조하여 앱 관리를 시작하십시오.

1.4.1. Git 리포지토리를 사용하여 앱 관리

애플리케이션을 사용하여 Kubernetes 리소스를 배포할 때 리소스는 특정 리포지토리에 있습니다. 다음 절차에서 Git 리포지토리에서 리소스를 배포하는 방법을 알아봅니다. 애플리케이션 모델 및 정의에서 애플리케이션 모델에 대해 자세히 알아보십시오.

사용자 액세스 권한: 애플리케이션을 생성할 수 있는 사용자 역할입니다. 역할이 할당된 작업만 수행할 수 있습니다. 역할 기반 액세스 제어 설명서에서 액세스 요구 사항에 대해 알아보십시오.

  1. 콘솔 탐색 메뉴에서 애플리케이션을 클릭하여 나열된 애플리케이션을 확인하고 새 애플리케이션을 생성합니다.
  2. 선택 사항: 생성할 애플리케이션 유형을 선택한 후 YAML: On 을 선택하여 애플리케이션을 생성하고 편집할 콘솔에서 YAML을 볼 수 있습니다. 주제의 뒷부분에 있는 YAML 샘플을 참조하십시오.
  3. 사용할 수 있는 리포지토리 목록에서 Git 을 선택하고 올바른 필드에 값을 입력합니다. 콘솔의 지침에 따라 입력에 따라 YAML 편집기 값이 변경되는지 확인합니다.

    참고:

    • 기존 Git 리포지토리 경로를 선택하는 경우 프라이빗 리포지토리인 경우 연결 정보를 지정할 필요가 없습니다. 연결 정보는 사전 설정되어 있으며 이러한 값을 볼 필요가 없습니다.
    • 새 Git 리포지토리 경로를 입력하면 선택적으로 개인 Git 리포지토리인 경우 Git 연결 정보를 입력할 수 있습니다.
    • 조정 옵션을 확인합니다. merge 옵션은 기본 선택 사항이며, 이는 새 필드가 추가되고 리소스에서 기존 필드가 업데이트됨을 의미합니다. 교체 를 선택할 수 있습니다. replace 옵션으로 기존 리소스가 Git 소스로 교체됩니다. 서브스크립션 조정 비율이 낮은 것으로 설정되면 서브스크립션된 애플리케이션 리소스를 조정하는 데 최대 1시간이 걸릴 수 있습니다. 단일 애플리케이션 보기의 카드에서 동기화 를 클릭하여 수동으로 조정합니다. off 로 설정하면 조정되지 않습니다.
  4. 선택적 사전 배포 및 배포 후 작업을 설정합니다. 구독이 애플리케이션 리소스를 배포하기 전이나 후에 실행할 Ansible Tower 작업이 있는 경우 Ansible Tower 시크릿을 설정합니다. Ansible 작업을 정의하는 Ansible Tower 작업은 이 리포지토리의 prehookposthook 폴더에 배치해야 합니다.
  5. 콘솔을 사용하여 인증 정보를 추가해야 하는 경우 인증 정보 추가 를 클릭합니다. 콘솔의 지침을 따르십시오. Manage credentials overview에서 자세한 내용을 참조하십시오.
  6. 생성을 클릭합니다.
  7. 세부 사항 및 토폴로지를 볼 수 있는 개요 페이지로 리디렉션됩니다.

1.4.1.1. GitOps 패턴

클러스터를 관리하기 위해 Git 리포지토리를 조정하기 위한 모범 사례를 알아보십시오.

1.4.1.1.1. GitOps 예제 디렉터리

이 예제의 폴더는 정의되고 이름이 지정되며, 관리되는 클러스터에서 실행되는 애플리케이션 또는 구성이 포함된 각 폴더가 있습니다.

  • 루트 폴더 managed-subscriptions: 공통 관리 폴더를 대상으로 하는 서브스크립션이 포함되어 있습니다.
  • 하위 폴더 앱/: managed-clusters 에 배치를 사용하여 공통 관리 폴더의 애플리케이션을 구독하는 데 사용됩니다.
  • 하위 폴더 config/: managed-clusters 에 배치를 사용하여 공통 관리 폴더의 구성을 구독하는 데 사용됩니다.
  • 하위 폴더 정책/: 배치와 함께 관리 클러스터에 정책을 적용하는 데 사용됩니다.
  • folder root-subscription/: managed-subscriptions 폴더를 서브스크립션하는 hub 클러스터의 초기 서브스크립션입니다.

디렉터리의 예제를 참조하십시오.

common-managed/
    apps/
      app-name-0/
      app-name-1/
    config/
      config001/
      config002/

managed-subscriptions
    apps/
    config/
    policies/

root-subscription/
Copy to Clipboard Toggle word wrap
1.4.1.1.2. GitOps flow

디렉터리 구조는 root-subscription > managed-subscriptions > common-managed 용으로 생성됩니다.

  1. root-subscription/ 의 단일 서브스크립션은 CLI 터미널에서 hub 클러스터로 적용됩니다.
  2. 서브스크립션 및 정책은 managed-subscription 폴더의 hub 클러스터에 다운로드하여 적용됩니다.

    • 그런 다음 managed-subscription 폴더의 서브스크립션 및 정책은 배치에 따라 관리 클러스터에서 작업을 수행합니다.
    • placement는 각 서브스크립션 또는 정책에 영향을 미치는 관리 클러스터를 결정합니다.
    • 서브스크립션 또는 정책은 배치와 일치하는 클러스터에 대한 내용을 정의합니다.
  3. 서브스크립션은 공통 관리 폴더의 내용을 배치 규칙과 일치하는 managed-cluster 에 적용합니다. 이는 배치 규칙과 일치하는 모든 관리 클러스터에 공통 애플리케이션 및 구성도 적용합니다.
1.4.1.1.3. 더 많은 예

1.4.2. Helm 리포지터리를 사용하여 앱 관리

애플리케이션을 사용하여 Kubernetes 리소스를 배포할 때 리소스는 특정 리포지토리에 있습니다. 다음 절차에서 Helm 리포지터리에서 리소스를 배포하는 방법을 알아봅니다. 애플리케이션 모델 및 정의에서 애플리케이션 모델에 대해 자세히 알아보십시오.

사용자 액세스 권한: 애플리케이션을 생성할 수 있는 사용자 역할입니다. 역할이 할당된 작업만 수행할 수 있습니다. 역할 기반 액세스 제어 설명서에서 액세스 요구 사항에 대해 알아보십시오.

  1. 콘솔 탐색 메뉴에서 애플리케이션을 클릭하여 나열된 애플리케이션을 확인하고 새 애플리케이션을 생성합니다.
  2. 선택 사항: 생성할 애플리케이션 유형을 선택한 후 YAML: On 을 선택하여 애플리케이션을 생성하고 편집할 콘솔에서 YAML을 볼 수 있습니다. 주제의 뒷부분에 있는 YAML 샘플을 참조하십시오.
  3. 사용할 수 있는 리포지토리 목록에서 Helm 을 선택하고 올바른 필드에 값을 입력합니다. 콘솔의 지침에 따라 입력에 따라 YAML 편집기 값이 변경되는지 확인합니다.
  4. 생성을 클릭합니다.
  5. 세부 사항 및 토폴로지를 볼 수 있는 개요 페이지로 리디렉션됩니다.

1.4.2.1. YAML 샘플

다음 예제 채널 정의에서는 Helm 리포지터리를 채널로 추상화합니다.

참고: Helm의 경우 Helm 차트에 포함된 모든 Kubernetes 리소스에 레이블 릴리스가 있어야 합니다. 애플리케이션 토폴로지가 올바르게 표시되도록 하려면 {{ .release.Name }}' 입니다.

apiVersion: v1
kind: Namespace
metadata:
  name: hub-repo
---
apiVersion: apps.open-cluster-management.io/v1
kind: Channel
metadata:
  name: helm
  namespace: hub-repo
spec:
    pathname: [https://kubernetes-charts.storage.googleapis.com/] # URL points to a valid chart URL.
    type: HelmRepo
Copy to Clipboard Toggle word wrap

다음 채널 정의는 Helm 리포지터리 채널의 또 다른 예를 보여줍니다.

apiVersion: apps.open-cluster-management.io/v1
kind: Channel
metadata:
  name: predev-ch
  namespace: ns-ch
  labels:
    app: nginx-app-details
spec:
  type: HelmRepo
  pathname: https://kubernetes-charts.storage.googleapis.com/
Copy to Clipboard Toggle word wrap

참고: REST API를 보려면 API를 사용합니다.

1.4.3. 오브젝트 스토리지 리포지토리를 사용하여 앱 관리

애플리케이션을 사용하여 Kubernetes 리소스를 배포할 때 리소스는 특정 리포지토리에 있습니다. 애플리케이션 모델 및 정의에서 애플리케이션 모델에 대해 자세히 알아보십시오.

사용자 액세스 권한: 애플리케이션을 생성할 수 있는 사용자 역할입니다. 역할이 할당된 작업만 수행할 수 있습니다. 역할 기반 액세스 제어 설명서에서 액세스 요구 사항에 대해 알아보십시오.

  1. 콘솔 탐색 메뉴에서 애플리케이션을 클릭하여 나열된 애플리케이션을 확인하고 새 애플리케이션을 생성합니다.
  2. 선택 사항: 생성할 애플리케이션 유형을 선택한 후 YAML: On 을 선택하여 애플리케이션을 생성하고 편집할 콘솔에서 YAML을 볼 수 있습니다. 주제의 뒷부분에 있는 YAML 샘플을 참조하십시오.
  3. 사용할 수 있는 리포지토리 목록에서 오브젝트 저장소를 선택하고 올바른 필드에 값을 입력합니다. 콘솔의 지침에 따라 입력에 따라 YAML 편집기 값이 변경되는지 확인합니다.
  4. 생성을 클릭합니다.
  5. 세부 사항 및 토폴로지를 볼 수 있는 개요 페이지로 리디렉션됩니다.

1.4.3.1. YAML 샘플

다음 예제 채널 정의는 오브젝트 스토리지를 채널로 추상화합니다.

apiVersion: apps.open-cluster-management.io/v1
kind: Channel
metadata:
 name: dev
 namespace: ch-obj
spec:
 type: Object storage
 pathname: [http://sample-ip:#####/dev] # URL is appended with the valid bucket name, which matches the channel name.
 secretRef:
   name: miniosecret
 gates:
   annotations:
     dev-ready: true
Copy to Clipboard Toggle word wrap

참고: REST API를 보려면 API를 사용합니다.

1.4.3.2. AWS(Amazon Web Services) S3 오브젝트 스토리지 버킷 생성

서브스크립션을 설정하여 Amazon Simple Storage Service(Amazon S3) 오브젝트 스토리지 서비스에 정의된 리소스를 구독할 수 있습니다. 다음 절차를 참조하십시오.

  1. AWS 계정, 사용자 이름 및 암호를 사용하여 AWS 콘솔에 로그인합니다.
  2. Amazon S3 > Buckets 로 이동하여 버킷 홈 페이지로 이동합니다.
  3. Create Bucket 을 클릭하여 버킷을 생성합니다.
  4. AWS S3 오브젝트 버킷을 연결하는 데 필요한 AWS 리전 을 선택합니다.
  5. 버킷 액세스 토큰을 생성합니다.
  6. 탐색 모음에서 사용자 이름으로 이동한 다음 드롭다운 메뉴에서 My Security Credentials 를 선택합니다.
  7. AWS IAM 인증 정보 탭에서 CLI, SDK 및 API 액세스에 대한 액세스 키로 이동하고 액세스 키 생성을 클릭합니다.
  8. 액세스 키 ID 를 저장, 시크릿 액세스 키.
  9. 오브젝트 YAML 파일을 버킷에 업로드합니다.

1.4.3.3. AWS 버킷의 오브젝트 구독

  1. 시크릿을 사용하여 오브젝트 버킷 유형 채널을 생성하여 AWS 버킷 연결을 위한 AccessKeyID,SecretAccessKeyRegion 을 지정합니다. 세 개의 필드는 AWS 버킷이 생성될 때 생성됩니다.
  2. URL을 추가합니다. URL은 URL에 s3 :// 또는 s 3 및 aws 키워드가 포함된 경우 AWS S3 버킷에서 채널을 식별합니다. 예를 들어 다음 버킷 URL의 모든 AWS s3 버킷 식별자를 참조하십시오.

    https://s3.console.aws.amazon.com/s3/buckets/sample-bucket-1
    s3://sample-bucket-1/
    https://sample-bucket-1.s3.amazonaws.com/
    Copy to Clipboard Toggle word wrap

    참고: AWS S3 API와 버킷을 연결하는 데 AWS S3 오브젝트 버킷 URL이 필요하지 않습니다.

1.4.3.4. AWS 서브스크립션 샘플

다음 전체 AWS S3 오브젝트 버킷 채널 샘플 YAML 파일을 참조하십시오.

apiVersion: apps.open-cluster-management.io/v1
kind: Channel
metadata:
  name: object-dev
  namespace: ch-object-dev
spec:
  type: ObjectBucket
  pathname: https://s3.console.aws.amazon.com/s3/buckets/sample-bucket-1
  secretRef:
    name: secret-dev
---
apiVersion: v1
kind: Secret
metadata:
  name: secret-dev
  namespace: ch-object-dev
stringData:
  AccessKeyID: <your AWS bucket access key id>
  SecretAccessKey: <your AWS bucket secret access key>
  Region: <your AWS  bucket region>
type: Opaque
Copy to Clipboard Toggle word wrap

kind: PlacementRulekind: Subscription 과 함께 다음 샘플 YAML에 표시된 대로 다른 AWS 서브스크립션 및 배치 규칙 오브젝트를 계속 생성할 수 있습니다.

apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
  name: towhichcluster
  namespace: obj-sub-ns
spec:
  clusterSelector: {}
---
apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
  name: obj-sub
  namespace: obj-sub-ns
spec:
  channel: ch-object-dev/object-dev
  placement:
    placementRef:
      kind: PlacementRule
      name: towhichcluster
Copy to Clipboard Toggle word wrap

오브젝트 버킷의 특정 하위 폴더 내의 오브젝트를 구독할 수도 있습니다. 하위 폴더 주석을 서브스크립션에 추가하여 오브젝트 버킷 서브스크립션이 하위 폴더의 모든 리소스만 적용하도록 강제 적용합니다.

subfolder-1 이 있는 주석을 bucket-path 로 참조하십시오.

annotations:
  apps.open-cluster-management.io/bucket-path: <subfolder-1>
Copy to Clipboard Toggle word wrap

하위 폴더에 대한 다음 전체 샘플을 참조하십시오.

apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
  annotations:
    apps.open-cluster-management.io/bucket-path: subfolder1
  name: obj-sub
  namespace: obj-sub-ns
  labels:
    name: obj-sub
spec:
  channel: ch-object-dev/object-dev
  placement:
    placementRef:
      kind: PlacementRule
      name: towhichcluster
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat