3.6. 더 빠른 작업 공간 시작을 위해 이미지 캐싱


OpenShift Dev Spaces 작업 공간의 시작 시간 성능을 개선하려면 OpenShift 클러스터의 이미지를 사전 가져오는 데 사용할 수 있는 OpenShift Dev Spaces 관련 구성 요소인 Image Puller를 사용합니다.

Image Puller는 각 노드에서 관련 OpenShift Dev Spaces 작업 공간을 사전 가져오도록 구성할 수 있는 DaemonSet 을 생성하는 추가 OpenShift 배포입니다. 이러한 이미지는 OpenShift Dev Spaces 작업 공간이 시작될 때 이미 사용 가능하므로 작업 공간 시작 시간이 단축됩니다.

3.6.1. CLI를 사용하여 OpenShift에 이미지 가져오기 설치

OpenShift oc 관리 툴을 사용하여 OpenShift에 Kubernetes 이미지 가져오기를 설치할 수 있습니다.

사전 요구 사항

프로세스

  1. 링크로 이동하여 가져올 관련 컨테이너 이미지 목록을 수집합니다.

    • https://<openshift_dev_spaces_fqdn>/plugin-registry/v3/external_images.txt
    • https://<openshift_dev_spaces_fqdn>/devfile-registry/devfiles/external_images.txt
  2. 메모리 요청 및 제한 매개 변수를 정의하여 가져온 컨테이너와 플랫폼에 충분한 메모리가 있는지 확인합니다.

    CACHING_MEMORY_REQUEST 또는 CACHING_MEMORY_LIMIT 에 대한 최소 값을 정의할 때 가져올 각 컨테이너 이미지를 실행하는 데 필요한 메모리 양을 고려하십시오.

    CACHING_MEMORY_REQUEST 또는 CACHING_MEMORY_LIMIT 의 최대 값을 정의할 때 클러스터의 DaemonSet Pod에 할당된 총 메모리를 고려하십시오.

    (memory limit) * (number of images) * (number of nodes in the cluster)

    컨테이너 메모리 제한 20Mi 를 사용하여 20개의 노드에서 5개의 이미지를 가져오려면 2000Mi 의 메모리가 필요합니다.

  3. 이미지 Puller 리포지토리를 복제하고 OpenShift 템플릿이 포함된 디렉터리에 가져옵니다.

    $ git clone https://github.com/che-incubator/kubernetes-image-puller
    $ cd kubernetes-image-puller/deploy/openshift
  4. 다음 매개변수를 사용하여 app.yaml,configmap.yamlserviceaccount.yaml OpenShift 템플릿을 구성합니다.

    표 3.37. app.yaml의 이미지 Puller OpenShift 템플릿 매개변수
    현재의사용법기본

    DEPLOYMENT_NAME

    ConfigMap의 DEPLOYMENT_NAME

    kubernetes-image-puller

    IMAGE

    kubernetes-image-puller 배포에 사용되는 이미지

    registry.redhat.io/devspaces/imagepuller-rhel8

    IMAGE_TAG

    가져올 이미지 태그

    latest

    SERVICEACCOUNT_NAME

    배포에서 생성하고 사용하는 ServiceAccount의 이름

    kubernetes-image-puller

    표 3.38. configmap.yaml의 이미지 Puller OpenShift 템플릿 매개변수
    현재의사용법기본

    CACHING_CPU_LIMIT

    ConfigMap의 CACHING_CPU_LIMIT

    .2

    CACHING_CPU_REQUEST

    ConfigMap의 CACHING_CPU_REQUEST

    .05

    CACHING_INTERVAL_HOURS

    ConfigMap의 CACHING_INTERVAL_HOURS 의 값

    "1"

    CACHING_MEMORY_LIMIT

    ConfigMap의 CACHING_MEMORY_LIMIT

    "20Mi"

    CACHING_MEMORY_REQUEST

    ConfigMap의 CACHING_MEMORY_REQUEST

    "10Mi"

    DAEMONSET_NAME

    ConfigMap의 DAEMONSET_NAME

    kubernetes-image-puller

    DEPLOYMENT_NAME

    ConfigMap의 DEPLOYMENT_NAME

    kubernetes-image-puller

    IMAGES

    ConfigMap의 IMAGES

    {}

    NAMESPACE

    ConfigMap의 NAMESPACE

    k8s-image-puller

    NODE_SELECTOR

    ConfigMap의 NODE_SELECTOR

    "{}"

    표 3.39. serviceaccount.yaml의 이미지 Puller OpenShift 템플릿 매개변수
    현재의사용법기본

    SERVICEACCOUNT_NAME

    배포에서 생성하고 사용하는 ServiceAccount의 이름

    kubernetes-image-puller

    KIP_IMAGE

    절전 바이너리를 복사하는 이미지 풀러 이미지

    registry.redhat.io/devspaces/imagepuller-rhel8:latest

  5. 이미지 가져오기를 호스팅할 OpenShift 프로젝트를 생성합니다.

    $ oc new-project <k8s-image-puller>
  6. 템플릿을 처리하고 적용하여 가져오기를 설치합니다.

    $ oc process -f serviceaccount.yaml | oc apply -f -
    $ oc process -f configmap.yaml | oc apply -f -
    $ oc process -f app.yaml | oc apply -f -

검증 단계

  1. < kubernetes-image-puller > 배포 및 < kubernetes-image-puller > DaemonSet이 있는지 확인합니다. DaemonSet에는 클러스터의 각 노드에 대한 Pod가 있어야 합니다.

    $ oc get deployment,daemonset,pod --namespace <k8s-image-puller>
  2. < kubernetes-image-puller > ConfigMap 의 값을 확인합니다.

    $ oc get configmap <kubernetes-image-puller> --output yaml

3.6.2. 웹 콘솔을 사용하여 OpenShift에 이미지 Puller 설치

OpenShift 웹 콘솔을 사용하여 OpenShift에 커뮤니티 지원 Kubernetes Image Puller Operator를 설치할 수 있습니다.

사전 요구 사항

프로세스

  1. 커뮤니티 지원 Kubernetes Image Puller Operator를 설치합니다. 웹 콘솔을 사용하여 OperatorHub에서 설치를 참조하십시오.
  2. 커뮤니티 지원 Kubernetes Image Puller Operator에서 kubernetes-image-puller KubernetesImagePuller 피연산자를 생성합니다. 설치된 Operator에서 애플리케이션 생성 을 참조하십시오.

3.6.3. 기본 Dev Spaces 이미지를 사전 가져오도록 이미지 Puller 구성

기본 OpenShift Dev Spaces 이미지를 사전 가져오도록 Kubernetes 이미지 가져오기를 구성할 수 있습니다. Red Hat OpenShift Dev Spaces Operator는 사전 가져올 이미지 목록을 제어하고 OpenShift Dev Spaces 업그레이드에서 자동으로 업데이트합니다.

사전 요구 사항

  • 조직의 OpenShift Dev Spaces 인스턴스가 Kubernetes 클러스터에 설치되어 실행 중입니다.
  • 이미지 Puller는 Kubernetes 클러스터에 설치됩니다.
  • 대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성 oc 세션. CLI 시작하기를 참조하십시오.

프로세스

  1. OpenShift Dev Spaces 이미지를 사전 가져오도록 이미지 Puller를 구성합니다.

    oc patch checluster/devspaces \
        --namespace openshift-devspaces \
        --type='merge' \
        --patch '{
                  "spec": {
                    "components": {
                      "imagePuller": {
                        "enable": true
                      }
                    }
                  }
                }'

3.6.4. 사용자 정의 이미지를 사전 가져오도록 이미지 가져오기 구성

사용자 정의 이미지를 사전 가져오도록 Kubernetes 이미지 가져오기를 구성할 수 있습니다.

사전 요구 사항

  • 조직의 OpenShift Dev Spaces 인스턴스가 Kubernetes 클러스터에 설치되어 실행 중입니다.
  • 이미지 Puller는 Kubernetes 클러스터에 설치됩니다.
  • 대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성 oc 세션. CLI 시작하기를 참조하십시오.

프로세스

  1. 사용자 지정 이미지를 사전 가져오도록 이미지 가져오기를 구성합니다.

    oc patch checluster/devspaces \
        --namespace openshift-devspaces \
        --type='merge' \
        --patch '{
                  "spec": {
                    "components": {
                      "imagePuller": {
                        "enable": true,
                        "spec": {
                          "images": "NAME-1=IMAGE-1;NAME-2=IMAGE-2" 1
                        }
                      }
                    }
                  }
                }'
    1
    이미지--------------------

3.6.5. 추가 이미지를 사전 가져오도록 이미지 가져오기 구성

추가 OpenShift Dev Spaces 이미지를 미리 가져오도록 Kubernetes 이미지 가져오기를 구성할 수 있습니다.

사전 요구 사항

  • 조직의 OpenShift Dev Spaces 인스턴스가 Kubernetes 클러스터에 설치되어 실행 중입니다.
  • 이미지 Puller는 Kubernetes 클러스터에 설치됩니다.
  • 대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성 oc 세션. CLI 시작하기를 참조하십시오.

프로세스

  1. k8s-image-puller 네임스페이스를 생성합니다.

    oc create namespace k8s-image-puller
  2. KubernetesImagePuller 사용자 정의 리소스를 생성합니다.

    oc apply -f - <<EOF
    apiVersion: che.eclipse.org/v1alpha1
    kind: KubernetesImagePuller
    metadata:
      name: k8s-image-puller-images
      namespace: k8s-image-puller
    spec:
      images: "__NAME-1__=__IMAGE-1__;__NAME-2__=__IMAGE-2__" 1
    EOF
    1
    이미지--------------------
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.