7.3. 사용자 정의 Helm 차트 리포지터리 구성


다음 방법을 사용하여 OpenShift Container Platform 클러스터에 Helm 릴리스를 생성할 수 있습니다.

  • The CLI.
  • 웹 콘솔의 개발자 화면입니다.

개발자 카탈로그는 웹 콘솔의 개발자 관점으로 클러스터에서 사용할 수 있는 Helm 차트를 표시합니다. 기본적으로 Red Hat OpenShift Helm 차트 리포지터리의 Helm 차트를 나열합니다. 차트 목록은 Red Hat Helm 인덱스 파일을 참조하십시오.

클러스터 관리자는 기본 클러스터 범위의 Helm 리포지터리와 별도로 여러 클러스터 범위 및 네임스페이스 범위의 Helm 차트 리포지터리를 추가하고 개발자 카탈로그에 이러한 리포지토리의 Helm 차트를 표시할 수 있습니다.

적절한 RBAC(역할 기반 액세스 제어) 권한이 있는 일반 사용자 또는 프로젝트 멤버로 기본 클러스터 범위의 Helm 리포지터리 외에도 여러 네임스페이스 범위의 Helm 차트 리포지터리를 추가하고 개발자 카탈로그에 해당 리포지토리의 Helm 차트를 표시할 수 있습니다.

웹 콘솔의 개발자 화면에서 Helm 페이지를 사용하여 다음을 수행할 수 있습니다.

  • 생성 버튼을 사용하여 Helm 릴리스 및 리포지토리를 생성합니다.
  • 클러스터 범위 또는 네임스페이스 범위의 Helm 차트 리포지터리를 생성, 업데이트 또는 삭제합니다.
  • Repositories 탭에서 기존 Helm 차트 리포지터리 목록을 확인합니다. 이 리포지토리는 클러스터 범위 또는 네임스페이스 범위로 쉽게 구분할 수 있습니다.

7.3.1. OpenShift Container Platform 클러스터에 Helm 차트 설치

사전 요구 사항

  • 실행 중인 OpenShift Container Platform 클러스터가 있고 로그인되어 있어야 합니다.
  • Helm이 설치되어 있어야 합니다.

절차

  1. 새 프로젝트를 생성합니다.

    $ oc new-project vault
  2. 로컬 Helm 클라이언트에 Helm 차트 리포지터리를 추가합니다.

    $ helm repo add openshift-helm-charts https://charts.openshift.io/

    출력 예

    "openshift-helm-charts" has been added to your repositories

  3. 리포지터리를 업데이트합니다.

    $ helm repo update
  4. HashiCorp Vault 예제를 설치합니다.

    $ helm install example-vault openshift-helm-charts/hashicorp-vault

    출력 예

    NAME: example-vault
    LAST DEPLOYED: Fri Mar 11 12:02:12 2022
    NAMESPACE: vault
    STATUS: deployed
    REVISION: 1
    NOTES:
    Thank you for installing HashiCorp Vault!

  5. 차트가 성공적으로 설치되었는지 확인합니다.

    $ helm list

    출력 예

    NAME         	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART       	APP VERSION
    example-vault	vault    	1       	2022-03-11 12:02:12.296226673 +0530 IST	deployed	vault-0.19.0	1.9.2

7.3.2. 개발자 화면을 사용하여 Helm 릴리스 생성

웹 콘솔의 개발자 화면 또는 CLI를 사용하여 개발자 카탈로그에 나열된 Helm 차트에서 릴리스를 선택하고 생성할 수 있습니다. Helm 차트를 설치하고 웹 콘솔의 개발자 화면에서 Helm 릴리스를 생성할 수 있습니다.

사전 요구 사항

절차

개발자 카탈로그에 제공된 Helm 차트에서 Helm 릴리스를 생성하려면 다음을 수행합니다.

  1. 개발자 화면에서 +추가 보기로 이동하여 프로젝트를 선택합니다. 그런 다음 Helm 차트 옵션을 클릭하여 개발자 카탈로그의 모든 Helm 차트를 확인합니다.
  2. 차트를 선택하고 해당 차트에 대한 설명, README 및 기타 세부 정보를 읽습니다.
  3. Create를 클릭합니다.

    그림 7.1. 개발자 카탈로그의 Helm 차트

    odc helm chart devcatalog new
  4. Helm 릴리스 생성 페이지에서 다음을 수행합니다.

    1. 릴리스 이름 필드에 고유한 릴리스 이름을 입력합니다.
    2. 차트 버전 드롭다운 목록에서 필요한 차트 버전을 선택합니다.
    3. 보기에서 또는 YAML 보기를 사용하여 Helm 차트를 구성합니다.

      참고

      가능한 경우 YAML 보기양식 보기를 전환할 수 있습니다. 다른 보기로 전환해도 데이터는 유지됩니다.

    4. 생성을 클릭하여 Helm 릴리스를 생성합니다. 웹 콘솔은 토폴로지 보기에 새 릴리스를 표시합니다.

      Helm 차트에 릴리스 노트가 있는 경우 웹 콘솔에 해당 정보가 표시됩니다.

      Helm 차트에서 워크로드를 생성하면 웹 콘솔에서 Topology 또는 Helm 릴리스 세부 정보 페이지에 표시합니다. 워크로드는 DaemonSet,CronJob,Pod,Deployment, DeploymentConfig 입니다.

    5. Helm 릴리스 페이지에서 새로 생성된 Helm 릴리스를 확인합니다.

측면 패널의 작업 버튼을 사용하거나 Helm 릴리스를 마우스 오른쪽 버튼으로 클릭하여 Helm 릴리스를 업그레이드, 롤백 또는 삭제할 수 있습니다.

7.3.3. 웹 터미널에서 Helm 사용

웹 콘솔의 개발자 화면에서 웹 터미널에 액세스하여 Helm을 사용할 수 있습니다.

7.3.4. OpenShift Container Platform에서 사용자 정의 Helm 차트 생성

절차

  1. 새 프로젝트를 생성합니다.

    $ oc new-project nodejs-ex-k
  2. OpenShift Container Platform 오브젝트가 포함된 Node.js 차트 예를 다운로드합니다.

    $ git clone https://github.com/redhat-developer/redhat-helm-charts
  3. 샘플 차트가 있는 디렉터리로 이동합니다.

    $ cd redhat-helm-charts/alpha/nodejs-ex-k/
  4. Chart.yaml 파일을 편집하고 차트에 대한 설명을 추가합니다.

    apiVersion: v2 1
    name: nodejs-ex-k 2
    description: A Helm chart for OpenShift 3
    icon: https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.svg 4
    version: 0.2.1 5
    1
    차트 API 버전. Helm 3 이상이 필요한 Helm 차트 v2여야 합니다.
    2
    차트 이름.
    3
    차트 설명.
    4
    아이콘으로 사용할 이미지의 URL.
    5
    차트 버전(SemVer) 2.0.0 사양에 따라 차트 버전입니다.
  5. 차트 형식이 올바르게 지정되었는지 확인합니다.

    $ helm lint

    출력 예

    [INFO] Chart.yaml: icon is recommended
    
    1 chart(s) linted, 0 chart(s) failed

  6. 이전 디렉터리 수준으로 이동합니다.

    $ cd ..
  7. 차트를 설치합니다.

    $ helm install nodejs-chart nodejs-ex-k
  8. 차트가 성공적으로 설치되었는지 확인합니다.

    $ helm list

    출력 예

    NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
    nodejs-chart nodejs-ex-k 1 2019-12-05 15:06:51.379134163 -0500 EST deployed nodejs-0.1.0  1.16.0

7.3.5. 사용자 정의 Helm 차트 리포지터리 추가

클러스터 관리자는 사용자 정의 Helm 차트 리포지터리를 클러스터에 추가하여 개발자 카탈로그에서 해당 리포지터리의 Helm 차트에 대한 액세스를 활성화할 수 있습니다.

절차

  1. 새 Helm 차트 리포지터리를 추가하려면 클러스터에 Helm 차트 리포지터리 CR(사용자 정의 리소스)을 추가해야 합니다.

    샘플 Helm 차트 리포지터리 CR

    apiVersion: helm.openshift.io/v1beta1
    kind: HelmChartRepository
    metadata:
      name: <name>
    spec:
     # optional name that might be used by console
     # name: <chart-display-name>
      connectionConfig:
        url: <helm-chart-repository-url>

    예를 들어 Azure 샘플 차트 리포지터리를 추가하려면 다음을 실행합니다.

    $ cat <<EOF | oc apply -f -
    apiVersion: helm.openshift.io/v1beta1
    kind: HelmChartRepository
    metadata:
      name: azure-sample-repo
    spec:
      name: azure-sample-repo
      connectionConfig:
        url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
    EOF
  2. 웹 콘솔에서 개발자 카탈로그로 이동하여 차트 리포지터리의 Helm 차트가 표시되는지 확인합니다.

    예를 들어 차트 리포지터리 필터를 사용하여 리포지터리의 Helm 차트를 검색합니다.

    그림 7.2. 차트 리포지터리 필터

    odc helm 차트 리포지터리 필터
    참고

    클러스터 관리자가 모든 차트 리포지터리를 제거하는 경우 +추가 보기, 개발자 카탈로그 및 왼쪽 탐색 패널에서 Helm 옵션을 볼 수 없습니다.

7.3.6. 네임스페이스 범위의 사용자 정의 Helm 차트 리포지터리 추가

Helm 리포지터리의 클러스터 범위 HelmChartRepository CRD(사용자 정의 리소스 정의)는 관리자가 Helm 리포지토리를 사용자 정의 리소스로 추가할 수 있는 기능을 제공합니다. 네임스페이스 범위의 ProjectHelmChartRepository CRD를 사용하면 적절한 역할 기반 액세스 제어(RBAC) 권한이 있는 프로젝트 멤버가 선택한 Helm 리포지토리 리소스를 생성할 수 있지만 네임스페이스로 범위가 지정됩니다. 이러한 프로젝트 멤버는 클러스터 범위 및 네임스페이스 범위의 Helm 리포지터리 리소스의 차트를 볼 수 있습니다.

참고
  • 관리자는 사용자가 네임스페이스 범위의 Helm 리포지터리 리소스를 생성하지 못하도록 제한할 수 있습니다. 관리자는 사용자를 제한함으로써 클러스터 역할 대신 네임스페이스 역할을 통해 RBAC를 제어할 수 있습니다. 이를 통해 사용자에게 불필요한 권한 상승을 방지하고 권한 없는 서비스 또는 애플리케이션에 대한 액세스를 방지할 수 있습니다.
  • 네임스페이스 범위의 Helm 리포지터리를 추가하면 기존 클러스터 범위의 Helm 리포지터리의 동작에 영향을 미치지 않습니다.

적절한 RBAC 권한이 있는 일반 사용자 또는 프로젝트 멤버로 사용자 정의 네임스페이스 범위의 Helm 차트 리포지터리를 클러스터에 추가하고 개발자 카탈로그에서 해당 리포지터리의 Helm 차트에 액세스할 수 있습니다.

절차

  1. 새 네임스페이스 범위의 Helm 차트 리포지터리를 추가하려면 네임스페이스에 Helm 차트 리포지터리 CR(사용자 정의 리소스)을 추가해야 합니다.

    샘플 네임스페이스 범위 Helm 차트 리포지터리 CR

    apiVersion: helm.openshift.io/v1beta1
    kind: ProjectHelmChartRepository
    metadata:
      name: <name>
    spec:
      url: https://my.chart-repo.org/stable
    
      # optional name that might be used by console
      name: <chart-repo-display-name>
    
      # optional and only needed for UI purposes
      description: <My private chart repo>
    
      # required: chart repository URL
      connectionConfig:
        url: <helm-chart-repository-url>

    예를 들어 my-namespace 네임스페이스에 범위가 지정된 Azure 샘플 차트 리포지터리를 추가하려면 다음을 실행합니다.

    $ cat <<EOF | oc apply --namespace my-namespace -f -
    apiVersion: helm.openshift.io/v1beta1
    kind: ProjectHelmChartRepository
    metadata:
      name: azure-sample-repo
    spec:
      name: azure-sample-repo
      connectionConfig:
        url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
    EOF

    출력에서 네임스페이스 범위의 Helm 차트 리포지터리 CR이 생성되었는지 확인합니다.

    출력 예

    projecthelmchartrepository.helm.openshift.io/azure-sample-repo created

  2. 웹 콘솔에서 개발자 카탈로그 로 이동하여 차트 리포지토리의 Helm 차트가 my-namespace 네임스페이스에 표시되는지 확인합니다.

    예를 들어 차트 리포지터리 필터를 사용하여 리포지터리의 Helm 차트를 검색합니다.

    그림 7.3. 네임스페이스에서 차트 리포지터리 필터링

    odc namespace helm chart repo 필터

    또는 다음을 실행합니다.

    $ oc get projecthelmchartrepositories --namespace my-namespace

    출력 예

    NAME                     AGE
    azure-sample-repo        1m

    참고

    적절한 RBAC 권한이 있는 클러스터 관리자 또는 일반 사용자가 특정 네임스페이스의 모든 차트 리포지터리를 제거하는 경우 +Add view, Developer Catalog, 및 left navigation panel에서 Helm 옵션을 볼 수 없습니다.

7.3.7. 인증 정보 및 CA 인증서를 생성하여 Helm 차트 리포지터리 추가

일부 Helm 차트 리포지터리는 연결하려면 인증 정보 및 사용자 정의 CA(인증 기관) 인증서가 필요합니다. 웹 콘솔 및 CLI를 사용하여 인증 정보 및 인증서를 추가할 수 있습니다.

프로세스

CLI를 사용하여 인증 정보 및 인증서를 구성한 후 Helm 차트 리포지터리를 추가하려면 다음을 실행합니다.

  1. openshift-config 네임스페이스에서 PEM 인코딩 형식의 사용자 정의 CA 인증서로 ConfigMap 오브젝트를 생성한 후 구성 맵 내의 ca-bundle.crt 키에 저장합니다.

    $ oc create configmap helm-ca-cert \
    --from-file=ca-bundle.crt=/path/to/certs/ca.crt \
    -n openshift-config
  2. openshift-config 네임스페이스에서 Secret 오브젝트를 생성하여 클라이언트 TLS 구성을 추가합니다.

    $ oc create secret tls helm-tls-configs \
    --cert=/path/to/certs/client.crt \
    --key=/path/to/certs/client.key \
    -n openshift-config

    클라이언트 인증서 및 키는 PEM 인코딩 형식이어야 하며 각각 tls.crttls.key 키에 저장되어야 합니다.

  3. 다음과 같이 Helm 리포지터리를 추가합니다.

    $ cat <<EOF | oc apply -f -
    apiVersion: helm.openshift.io/v1beta1
    kind: HelmChartRepository
    metadata:
      name: <helm-repository>
    spec:
      name: <helm-repository>
      connectionConfig:
        url: <URL for the Helm repository>
        tlsConfig:
            name: helm-tls-configs
        ca:
    	name: helm-ca-cert
    EOF

    ConfigMapSecrettlsConfigca 필드를 사용하는 HelmChartRepository CR에서 사용됩니다. 이러한 인증서는 Helm 리포지터리 URL에 연결하는 데 사용됩니다.

  4. 기본적으로 모든 인증된 사용자는 모든 구성된 차트에 액세스할 수 있습니다. 하지만 인증서가 필요한 차트 리포지터리의 경우 다음과 같이 사용자에게 openshift-config 네임스페이스의 helm-ca-cert 구성 맵과 helm-tls-configs 시크릿에 대한 읽기 액세스 권한을 제공해야 합니다.

    $ cat <<EOF | kubectl apply -f -
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      namespace: openshift-config
      name: helm-chartrepos-tls-conf-viewer
    rules:
    - apiGroups: [""]
      resources: ["configmaps"]
      resourceNames: ["helm-ca-cert"]
      verbs: ["get"]
    - apiGroups: [""]
      resources: ["secrets"]
      resourceNames: ["helm-tls-configs"]
      verbs: ["get"]
    ---
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      namespace: openshift-config
      name: helm-chartrepos-tls-conf-viewer
    subjects:
      - kind: Group
        apiGroup: rbac.authorization.k8s.io
        name: 'system:authenticated'
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: helm-chartrepos-tls-conf-viewer
    EOF

7.3.8. 인증 수준에 따라 Helm 차트 필터링

개발자 카탈로그의 인증 수준에 따라 Helm 차트를 필터링할 수 있습니다.

프로세스

  1. 개발자 화면에서 +추가 보기로 이동하여 프로젝트를 선택합니다.
  2. 개발자 카탈로그 타일에서 Helm 차트 옵션을 선택하여 개발자 카탈로그의 모든 Helm 차트를 확인합니다.
  3. 필요한 차트를 필터링하려면 Helm 차트 목록 왼쪽에 있는 필터를 사용합니다.

    • 차트 리포지토리 필터를 사용하여 Red Hat 인증 차트 또는 OpenShift Helm 차트에서 제공하는 차트를 필터링합니다.
    • 소스 필터를 사용하여 파트너,커뮤니티 또는 Red Hat에서 제공한 차트를 필터링합니다. 인증 차트는 ( odc verified icon ) 아이콘으로 표시됩니다.
참고

공급업체 유형이 하나뿐이면 소스 필터가 표시되지 않습니다.

이제 필요한 차트를 선택하고 설치할 수 있습니다.

7.3.9. Helm 차트 리포지터리 비활성화

HelmChartRepository 사용자 정의 리소스에서 disabled 속성을 true 로 설정하여 카탈로그의 특정 Helm 차트 리포지터리에서 Helm 차트를 비활성화할 수 있습니다.

프로세스

  • CLI를 사용하여 Helm 차트 리포지터리를 비활성화하려면 disabled: true 플래그를 사용자 정의 리소스에 추가합니다. 예를 들어 Azure 샘플 차트 리포지터리를 제거하려면 다음을 실행합니다.

    $ cat <<EOF | oc apply -f -
    apiVersion: helm.openshift.io/v1beta1
    kind: HelmChartRepository
    metadata:
      name: azure-sample-repo
    spec:
      connectionConfig:
       url:https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs
      disabled: true
    EOF
  • 웹 콘솔을 사용하여 최근에 추가된 Helm 차트 리포지터리를 비활성화하려면 다음을 수행합니다.

    1. 사용자 정의 리소스 정의로 이동하여 HelmChartRepository 사용자 정의 리소스를 검색합니다.
    2. 인스턴스로 이동하여 비활성화할 저장소를 찾아 이름을 클릭합니다.
    3. YAML 탭으로 이동하여 spec 섹션에 disabled: true 플래그를 추가하고 저장을 클릭합니다.

      예제

      spec:
        connectionConfig:
          url: <url-of-the-repositoru-to-be-disabled>
        disabled: true

      이제 리포지터리가 비활성화되어 카탈로그에 표시되지 않습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.