검색

4장. GitOps

download PDF

4.1. Red Hat OpenShift GitOps 릴리스 정보

Red Hat OpenShift GitOps는 클라우드 네이티브 애플리케이션에 대한 연속 배포를 구현하는 선언적 방법입니다. Red Hat OpenShift GitOps를 사용하면 개발, 스테이징, 프로덕션과 같은 다양한 환경의 다양한 클러스터에 애플리케이션을 배포할 때 애플리케이션의 일관성을 유지할 수 있습니다. Red Hat OpenShift GitOps는 다음 작업을 자동화하는 데 도움이 됩니다.

  • 클러스터의 구성, 모니터링, 스토리지 상태가 비슷한지 확인
  • 알려진 상태에서 클러스터 복구 또는 재생성
  • 여러 OpenShift Container Platform 클러스터에 구성 변경 사항 적용 또는 되돌리기
  • 템플릿 구성을 다른 환경과 연결
  • 스테이징에서 프로덕션까지 클러스터 전체에서 애플리케이션 승격

Red Hat OpenShift GitOps 개요는 OpenShift GitOps 이해를 참조하십시오.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 향후 여러 릴리스에 대해 단계적으로 구현될 예정입니다. 자세한 내용은 Red Hat CTO Chris Wright의 메시지에서 참조하십시오.

4.1.2. Red Hat OpenShift GitOps 1.2.1 릴리스 노트

이제 OpenShift Container Platform 4.7 및 4.8에서 Red Hat OpenShift GitOps 1.2.1을 사용할 수 있습니다.

4.1.2.1. 지원 매트릭스

이 릴리스의 일부 기능은 현재 기술 프리뷰 단계에 있습니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.

기술 프리뷰 기능 지원 범위

아래 표에서 기능은 다음 상태로 표시됩니다.

  • TP: 기술 프리뷰
  • GA: 정식 출시일 (GA)

해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.

표 4.1. 지원 매트릭스
기능Red Hat OpenShift GitOps 1.2.1

Argo CD

GA

Argo CD ApplicationSet

TP

Red Hat OpenShift GitOps Application Manager (kam)

TP

4.1.2.2. 해결된 문제

현재 릴리스에서 다음 문제가 해결되었습니다.

  • 이전에는 시작 시 애플리케이션 컨트롤러에서 대규모 메모리 스파이크를 관찰했습니다. 애플리케이션 컨트롤러의 --kubectl-parallelism-limit 플래그는 기본적으로 10으로 설정되어 있지만 Argo CD CR 사양에 .spec.controller.kubeParallelismLimit 의 번호를 지정하여 이 값을 재정의할 수 있습니다. GITOPS-1255
  • 최신 Triggers API로 인해 kam 부트스트랩 명령을 사용할 때 kustomization.yaml의 중복 항목으로 인해 Kubernetes 빌드가 실패했습니다. Pipelines 및 Tekton 트리거 구성 요소가 이제 이 문제를 해결하기 위해 각각 v0.24.2 및 v0.14.2로 업데이트되었습니다. GITOPS-1273
  • 소스 네임스페이스의 Argo CD 인스턴스가 삭제될 때 대상 네임스페이스에서 RBAC 역할 및 바인딩을 유지하면 대상 네임스페이스에서 자동으로 제거됩니다. GITOPS-1228
  • 이전 버전에서는 Argo CD 인스턴스를 네임스페이스에 배포할 때 Argo CD 인스턴스가 "managed-by" 라벨이 자체 네임스페이스로 변경되었습니다. 이번 수정을 통해 네임스페이스에 필요한 RBAC 역할 및 바인딩도 생성 및 삭제되는 동안 네임스페이스에 라벨이 지정되지 않았습니다. GITOPS-1247
  • 이전에는 repo-server 및 애플리케이션 컨트롤러를 위한 Argo CD 워크로드에 대한 기본 리소스 요청 제한이 매우 제한적이었습니다. 이제 기존 리소스 할당량이 제거되었으며 리포지토리 서버에서 기본 메모리 제한이 1024M으로 증가했습니다. 이 변경 사항은 새 설치에만 영향을 미칩니다. 기존 Argo CD 인스턴스 워크로드는 영향을 받지 않습니다. GITOPS-1274

4.1.3. Red Hat OpenShift GitOps 1.2 릴리스 노트

Red Hat OpenShift GitOps 1.2는 이제 OpenShift Container Platform 4.7 및 4.8에서 사용할 수 있습니다.

4.1.3.1. 지원 매트릭스

이 릴리스의 일부 기능은 현재 기술 프리뷰 단계에 있습니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.

기술 프리뷰 기능 지원 범위

아래 표에서 기능은 다음 상태로 표시됩니다.

  • TP: 기술 프리뷰
  • GA: 정식 출시일 (GA)

해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.

표 4.2. 지원 매트릭스
기능Red Hat OpenShift GitOps 1.2

Argo CD

GA

Argo CD ApplicationSet

TP

Red Hat OpenShift GitOps Application Manager (kam)

TP

4.1.3.2. 새로운 기능

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift GitOps 1.2의 새로운 기능도 소개합니다.

  • openshift-gitops 네임스페이스에 대한 읽기 또는 쓰기 권한이 없는 경우 이제 GitOps Operator에서 DISABLE_DEFAULT_ARGOCD_INSTANCE 환경 변수를 사용하고 기본 Argo CD 인스턴스가 openshift-gitops 네임스페이스에서 시작되지 않도록 TRUE로 설정할 수 있습니다.
  • 이제 리소스 요청 및 제한이 Argo CD 워크로드에서 구성됩니다. openshift-gitops 네임스페이스에서 리소스 할당량이 활성화됩니다. 결과적으로 openshift-gitops 네임스페이스에 수동으로 배포된 대역 외 워크로드는 리소스 요청 및 제한을 사용하여 구성해야 하며 리소스 할당량을 늘려야 할 수 있습니다.
  • Argo CD 인증은 이제 Red Hat SSO와 통합되며 클러스터의 OpenShift 4 ID 공급자로 자동으로 구성됩니다. 이 기능은 기본적으로 비활성화되어 있습니다. Red Hat SSO를 활성화하려면 다음과 같이 ArgoCD CR에 SSO 구성을 추가합니다. 현재keycloak은 지원되는 유일한 공급자입니다.

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: basic
    spec:
      sso:
        provider: keycloak
      server:
        route:
         enabled: true
  • 라우터 샤딩을 지원하기 위해 경로 레이블을 사용하여 호스트 이름을 정의할 수 있습니다. 이제 server (argocd server), grafana, prometheus 경로에서 레이블 설정 지원을 사용할 수 있습니다. 경로에 레이블을 설정하려면 ArgoCD CR의 서버에 대한 경로 구성 아래에 labels를 추가합니다.

    argocd 서버에 라벨을 설정하는 ArgoCD CR YAML의 예

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: basic
    spec:
      server:
        route:
         enabled: true
         labels:
           key1: value1
           key2: value2

  • GitOps Operator는 레이블을 적용하여 대상 네임스페이스의 리소스를 관리할 수 있도록 Argo CD 인스턴스에 권한을 자동으로 부여합니다. 사용자는 argocd.argoproj.io/managed-by: <source-namespace> 라벨을 사용하여 대상 네임스페이스에 레이블을 지정할 수 있습니다. 여기서 source-namespace는 argocd 인스턴스가 배포된 네임스페이스입니다.

4.1.3.3. 해결된 문제

현재 릴리스에서 다음 문제가 해결되었습니다.

  • 이전 버전에서는 사용자가 openshift-gitops 네임스페이스에서 기본 클러스터 인스턴스에서 관리하는 Argo CD의 추가 인스턴스를 생성한 경우 새 Argo CD 인스턴스를 담당하는 애플리케이션이 OutOfSync 상태로 중단되었습니다. 이 문제는 클러스터 시크릿에 소유자 참조를 추가하여 해결되었습니다. GITOPS-1025

4.1.3.4. 확인된 문제

이는 Red Hat OpenShift GitOps 1.2에서 알려진 문제입니다.

  • 소스 네임스페이스에서 Argo CD 인스턴스가 삭제되면 대상 네임스페이스의 argocd.argoproj.io/managed-by 레이블이 제거되지 않습니다. GITOPS-1228
  • Red Hat OpenShift GitOps 1.2의 openshift-gitops 네임스페이스에서 리소스 할당량이 활성화되었습니다. 이는 수동으로 배포된 대역 외 워크로드 및 openshift-gitops 네임스페이스의 기본 Argo CD 인스턴스에서 배포한 워크로드에 영향을 미칠 수 있습니다. Red Hat OpenShift GitOps v1.1.2에서 v1.2로 업그레이드하는 경우 리소스 요청 및 제한을 사용하여 워크로드를 구성해야 합니다. 추가 워크로드가 있는 경우 openshift-gitops 네임스페이스의 리소스 할당량을 늘려야 합니다.

    openshift-gitops 네임스페이스의 현재 리소스 할당량입니다.

    리소스요구 사항제한

    CPU

    6688m

    13750m

    메모리

    4544Mi

    9070Mi

    아래 명령을 사용하여 CPU 제한을 업데이트할 수 있습니다.

    $ oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/limits.cpu", "value":"9000m"}]'

    아래 명령을 사용하여 CPU 요청을 업데이트할 수 있습니다.

    $ oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/cpu", "value":"7000m"}]

    위의 명령의 경로를 cpu에서 memory로 교체하여 메모리를 업데이트할 수 있습니다.

4.1.4. Red Hat OpenShift GitOps 1.1 릴리스 노트

Red Hat OpenShift GitOps 1.1은 이제 OpenShift 컨테이너 플랫폼 4.7에서 사용할 수 있습니다.

4.1.4.1. 지원 매트릭스

이 릴리스의 일부 기능은 현재 기술 프리뷰 단계에 있습니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.

기술 프리뷰 기능 지원 범위

아래 표에서 기능은 다음 상태로 표시됩니다.

  • TP: 기술 프리뷰
  • GA: 정식 출시일 (GA)

해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.

표 4.3. 지원 매트릭스
기능Red Hat OpenShift GitOps 1.1

Argo CD

GA

Argo CD ApplicationSet

TP

Red Hat OpenShift GitOps Application Manager (kam)

TP

4.1.4.2. 새로운 기능

다음 섹션에서는 수정 및 안정성 개선 사항 외에 Red Hat OpenShift GitOps 1.1의 새로운 기능도 소개합니다.

  • 이제 ApplicationSet 기능이 추가되었습니다(기술 프리뷰). ApplicationSet 기능을 사용하면 Argo CD 애플리케이션을 다수의 클러스터와 monorepos 내에서 관리할 때 자동화와 유연성을 모두 사용할 수 있습니다. 또한 멀티테넌트 Kubernetes 클러스터에서 셀프 서비스를 사용할 수 있습니다.
  • Argo CD는 이제 클러스터 로깅 스택 및 OpenShift Container Platform 모니터링 및 경고 기능과 통합되었습니다.
  • Argo CD 인증이 OpenShift Container Platform과 통합되었습니다.
  • Argo CD 애플리케이션 컨트롤러는 이제 수평 크기 조정을 지원합니다.
  • Argo CD Redis 서버는 이제 HA(고가용성)를 지원합니다.

4.1.4.3. 해결된 문제

현재 릴리스에서 다음 문제가 해결되었습니다.

  • 이전에는 활성 글로벌 프록시 설정을 사용하여 프록시 서버 설정에서 Red Hat OpenShift GitOps가 예상대로 작동하지 않았습니다. 이 문제는 해결되었으며 이제 Red Hat OpenShift GitOps Operator가 Argo CD는 Pod에 FQDN(정규화된 도메인 이름)을 사용하여 구성 요소 간 통신을 활성화하도록 구성되어 있습니다. GITOPS-703
  • Red Hat OpenShift GitOps 백엔드는 Red Hat OpenShift GitOps URL의?ref= 쿼리 매개 변수를 사용하여 API를 호출합니다. 이전에는 이 매개변수를 URL에서 읽지 않아 백엔드에서 항상 기본 참조를 고려했습니다. 이 문제는 해결되어 Red Hat OpenShift GitOps 백엔드에서 Red Hat OpenShift GitOps URL에서 참조 쿼리 매개 변수를 추출하고 입력 참조가 제공되지 않은 경우에만 기본 참조를 사용합니다. GITOPS-817
  • 이전에는 Red Hat OpenShift GitOps 백엔드에서 유효한 GitLab 리포지토리를 찾지 못했습니다. 이는 Red Hat OpenShift GitOps 백엔드가 GitLab 리포지토리의 master 대신 main 분기 참조로 확인되었기 때문입니다. 이 문제는 이제 해결되었습니다. GITOPS-768
  • OpenShift Container Platform 웹 콘솔의 개발자 화면에 있는 환경 페이지에 애플리케이션 목록과 환경 수가 표시됩니다. 이 페이지에는 모든 애플리케이션을 나열하는 Argo CD 애플리케이션 페이지로 이동하는 Argo CD 링크도 표시됩니다. Argo CD 애플리케이션 페이지에는 선택한 애플리케이션만 필터링할 수 있는 LABELS (예: app.kubernetes.io/name=appName)가 있습니다. GITOPS-544

4.1.4.4. 확인된 문제

이는 Red Hat OpenShift GitOps 1.1에서 알려진 문제입니다.

  • Red Hat OpenShift GitOps는 Helm v2 및 ksonnet을 지원하지 않습니다.
  • RH SSO(Red Hat SSO) Operator는 연결이 끊긴 클러스터에서 지원되지 않습니다. 결과적으로 연결이 끊긴 클러스터에서 Red Hat OpenShift GitOps Operator 및 RH SSO 통합이 지원되지 않습니다.
  • OpenShift Container Platform 웹 콘솔에서 Argo CD 애플리케이션을 삭제하면 사용자 인터페이스에서 Argo CD 애플리케이션이 삭제되지만 배포는 여전히 클러스터에 있습니다. 해결 방법으로 Argo CD 콘솔에서 Argo CD 애플리케이션을 삭제합니다. GITOPS-830

4.1.4.5. 변경 사항 중단

4.1.4.5.1. Red Hat OpenShift GitOps v1.0.1에서 업그레이드

Red Hat OpenShift GitOps v1.0.1에서 v1.1으로 업그레이드하는 경우 Red Hat OpenShift GitOps Operator는 openshift-gitops 네임스페이스에 생성된 기본 Argo CD 인스턴스 이름을 argocd-cluster에서 openshift-gitops로 변경합니다.

이는 변경 사항이 중단되어 업그레이드 전에 수동으로 다음 단계를 수행해야 합니다.

  1. OpenShift Container Platform 웹 콘솔로 이동하여 openshift-gitops 네임스페이스에 있는 argocd-cm.yml 구성 맵 파일의 콘텐츠를 로컬 파일에 복사합니다. 내용은 다음 예와 같을 수 있습니다.

    argocd 구성 맵 YAML의 예

    kind: ConfigMap
    apiVersion: v1
    metadata:
    selfLink: /api/v1/namespaces/openshift-gitops/configmaps/argocd-cm
    resourceVersion: '112532'
    name: argocd-cm
    uid: f5226fbc-883d-47db-8b53-b5e363f007af
    creationTimestamp: '2021-04-16T19:24:08Z'
    managedFields:
    ...
    namespace: openshift-gitops
    labels:
      app.kubernetes.io/managed-by: argocd-cluster
      app.kubernetes.io/name: argocd-cm
      app.kubernetes.io/part-of: argocd
    data: "" 1
    admin.enabled: 'true'
    statusbadge.enabled: 'false'
    resource.exclusions: |
      - apiGroups:
        - tekton.dev
        clusters:
        - '*'
        kinds:
        - TaskRun
        - PipelineRun
    ga.trackingid: ''
    repositories: |
      - type: git
        url: https://github.com/user-name/argocd-example-apps
    ga.anonymizeusers: 'false'
    help.chatUrl: ''
    url: >-
      https://argocd-cluster-server-openshift-gitops.apps.dev-svc-4.7-041614.devcluster.openshift.com   "" 2
    help.chatText: ''
    kustomize.buildOptions: ''
    resource.inclusions: ''
    repository.credentials: ''
    users.anonymous.enabled: 'false'
    configManagementPlugins: ''
    application.instanceLabelKey: ''

    1
    argocd-cm.yml 구성 맵 파일의 data 섹션만 수동으로 복원합니다.
    2
    구성 맵 항목의 URL 값을 새 인스턴스 이름 openshift-gitops로 바꿉니다.
  2. 기본 argocd-cluster 인스턴스를 삭제합니다.
  3. argocd-cm.yml 구성 맵 파일을 편집하여 전체 data 섹션을 수동으로 복원합니다.
  4. 구성 맵 항목의 URL 값을 새 인스턴스 이름 openshift-gitops로 바꿉니다. 예를 들어 위 예제에서 URL 값을 다음 URL 값으로 바꿉니다.

    url: >-
      https://openshift-gitops-server-openshift-gitops.apps.dev-svc-4.7-041614.devcluster.openshift.com
  5. Argo CD 클러스터에 로그인하고 이전 구성이 있는지 확인합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.