5.6. 더 빠른 작업 공간 시작을 위해 이미지 캐싱
OpenShift Dev Spaces 작업 공간의 시작 시간 성능을 개선하려면 OpenShift 클러스터의 이미지를 사전 가져오는 데 사용할 수 있는 OpenShift Dev Spaces 관련 구성 요소인 Image Puller를 사용합니다.
Image Puller는 각 노드에서 관련 OpenShift Dev Spaces 작업 공간을 사전 가져오도록 구성할 수 있는 DaemonSet 을 생성하는 추가 OpenShift 배포입니다. 이러한 이미지는 OpenShift Dev Spaces 작업 공간이 시작될 때 이미 사용 가능하므로 작업 공간 시작 시간이 단축됩니다.
Kubernetes 이미지 가져오기 설치
Kubernetes 이미지 가져오기 구성
5.6.1. Kubernetes 이미지 가져오기 설치 링크 복사링크가 클립보드에 복사되었습니다!
다양한 사용 사례에 대해 Kubernetes Image Puller를 설치하려면 아래 지침을 따르십시오.
5.6.1.1. Kubernetes 이미지 가져오기 설치 링크 복사링크가 클립보드에 복사되었습니다!
5.6.1.2. CLI를 사용하여 OpenShift에 이미지 가져오기 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift oc
관리 툴을 사용하여 OpenShift에 Kubernetes 이미지 가져오기를 설치할 수 있습니다.
oc
CLI를 사용하여 ImagePuller를 설치하는 경우 CheCluster
사용자 정의 리소스를 통해 구성할 수 없습니다.
사전 요구 사항
-
OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc
세션. OpenShift CLI 시작하기를 참조하십시오.
프로세스
- doc에 따라 가져올 관련 컨테이너 이미지 목록을 수집합니다. 5.6.3절. “Kubernetes Image Puller의 기본 이미지 목록 검색”
메모리 요청 및 제한 매개 변수를 정의하여 가져온 컨테이너와 플랫폼에 충분한 메모리가 있는지 확인합니다.
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)
(memory limit) * (number of images) * (number of nodes in the cluster)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨테이너 메모리 제한
20Mi
를 사용하여 20개의 노드에서 5개의 이미지를 가져오려면2000Mi
의 메모리가 필요합니다.이미지 Puller 리포지토리를 복제하고 OpenShift 템플릿이 포함된 디렉터리에 가져옵니다.
git clone https://github.com/che-incubator/kubernetes-image-puller cd kubernetes-image-puller/deploy/openshift
git clone https://github.com/che-incubator/kubernetes-image-puller cd kubernetes-image-puller/deploy/openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 매개변수를 사용하여
app.yaml
,configmap.yaml
및serviceaccount.yaml
OpenShift 템플릿을 구성합니다.Expand 표 5.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
Expand 표 5.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
값"{}"
Expand 표 5.39. serviceaccount.yaml의 이미지 Puller OpenShift 템플릿 매개변수 현재의 사용법 기본 SERVICEACCOUNT_NAME
배포에서 생성하고 사용하는 ServiceAccount의 이름
kubernetes-image-puller
KIP_IMAGE
절전 바이너리를 복사하는 이미지 풀러 이미지
registry.redhat.io/devspaces/imagepuller-rhel8:latest
이미지 가져오기를 호스팅할 OpenShift 프로젝트를 생성합니다.
oc new-project <k8s-image-puller>
oc new-project <k8s-image-puller>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 템플릿을 처리하고 적용하여 가져오기를 설치합니다.
oc process -f serviceaccount.yaml | oc apply -f - oc process -f configmap.yaml | oc apply -f - oc process -f app.yaml | oc apply -f -
oc process -f serviceaccount.yaml | oc apply -f - oc process -f configmap.yaml | oc apply -f - oc process -f app.yaml | oc apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계
< kubernetes-image-puller > 배포 및 < kubernetes-image-puller > DaemonSet이 있는지 확인합니다. DaemonSet에는 클러스터의 각 노드에 대한 Pod가 있어야 합니다.
oc get deployment,daemonset,pod --namespace <k8s-image-puller>
oc get deployment,daemonset,pod --namespace <k8s-image-puller>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow < kubernetes-image-puller >
ConfigMap
의 값을 확인합니다.oc get configmap <kubernetes-image-puller> --output yaml
oc get configmap <kubernetes-image-puller> --output yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.1.3. 웹 콘솔을 사용하여 OpenShift에 이미지 Puller 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 웹 콘솔을 사용하여 OpenShift에 커뮤니티 지원 Kubernetes Image Puller Operator를 설치할 수 있습니다.
사전 요구 사항
- 클러스터 관리자의 OpenShift 웹 콘솔 세션입니다. 웹 콘솔 액세스를 참조하십시오.
프로세스
- 커뮤니티 지원 Kubernetes Image Puller Operator를 설치합니다. 웹 콘솔을 사용하여 OperatorHub에서 설치를 참조하십시오.
-
커뮤니티 지원 Kubernetes Image Puller Operator에서 kubernetes-image-puller
KubernetesImagePuller
피연산자를 생성합니다. 설치된 Operator에서 애플리케이션 생성 을 참조하십시오.
5.6.2. Kubernetes 이미지 가져오기 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 다양한 사용 사례에 맞게 Kubernetes 이미지 Puller를 구성하는 방법에 대해 설명합니다.
5.6.2.1. Kubernetes 이미지 가져오기 구성 링크 복사링크가 클립보드에 복사되었습니다!
5.6.2.2. 기본 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 시작하기를 참조하십시오.
프로세스
OpenShift Dev Spaces 이미지를 사전 가져오도록 이미지 Puller를 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.2.3. 사용자 정의 이미지를 사전 가져오도록 이미지 가져오기 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 이미지를 사전 가져오도록 Kubernetes 이미지 가져오기를 구성할 수 있습니다.
사전 요구 사항
- 조직의 OpenShift Dev Spaces 인스턴스가 Kubernetes 클러스터에 설치되어 실행 중입니다.
- 이미지 Puller는 Kubernetes 클러스터에 설치됩니다.
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc
세션. CLI 시작하기를 참조하십시오.
프로세스
사용자 지정 이미지를 사전 가져오도록 이미지 가져오기를 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이미지--------------------
5.6.2.4. 추가 이미지를 사전 가져오도록 이미지 가져오기 구성 링크 복사링크가 클립보드에 복사되었습니다!
추가 OpenShift Dev Spaces 이미지를 미리 가져오도록 Kubernetes 이미지 가져오기를 구성할 수 있습니다.
사전 요구 사항
- 조직의 OpenShift Dev Spaces 인스턴스가 Kubernetes 클러스터에 설치되어 실행 중입니다.
- 이미지 Puller는 Kubernetes 클러스터에 설치됩니다.
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc
세션. CLI 시작하기를 참조하십시오.
프로세스
k8s-image-puller
네임스페이스를 생성합니다.oc create namespace k8s-image-puller
oc create namespace k8s-image-puller
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KubernetesImagePuller
사용자 정의 리소스를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이미지--------------------
5.6.3. Kubernetes Image Puller의 기본 이미지 목록 검색 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes Image Puller에서 사용하는 기본 이미지 목록을 검색하는 방법을 알아봅니다. 이 기능은 이러한 이미지의 하위 집합만 미리 사용하도록 이미지 Puller를 검토 및 구성하려는 관리자에게 유용할 수 있습니다.
사전 요구 사항
- 조직의 OpenShift Dev Spaces 인스턴스가 Kubernetes 클러스터에 설치되어 실행 중입니다.
-
대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성
oc
세션. CLI 시작하기를 참조하십시오.
프로세스
OpenShift Dev Spaces Operator가 배포된 네임스페이스를 찾습니다.
OPERATOR_NAMESPACE=$(oc get pods -l app.kubernetes.io/component=devspaces-operator -o jsonpath={".items[0].metadata.namespace"} --all-namespaces)
OPERATOR_NAMESPACE=$(oc get pods -l app.kubernetes.io/component=devspaces-operator -o jsonpath={".items[0].metadata.namespace"} --all-namespaces)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Image Puller에서 사전 가져올 수 있는 이미지를 확인합니다.
oc exec -n $OPERATOR_NAMESPACE deploy/devspaces-operator -- cat /tmp/external_images.txt
oc exec -n $OPERATOR_NAMESPACE deploy/devspaces-operator -- cat /tmp/external_images.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow