2.3. CLI를 사용하여 OpenShift 샌드박스 컨테이너 워크로드 배포
CLI를 사용하여 OpenShift 샌드박스 컨테이너 워크로드를 배포할 수 있습니다. 먼저 OpenShift 샌드박스 컨테이너 Operator를 설치한 다음 KataConfig
사용자 지정 리소스를 생성해야 합니다. 샌드박스 컨테이너에 워크로드를 배포할 준비가 되면 워크로드 YAML 파일에 kata
를 runtimeClassName
으로 추가해야 합니다.
2.3.1. CLI를 사용하여 OpenShift 샌드박스 컨테이너 Operator 설치
Red Hat OpenShift CLI를 사용하여 OpenShift 샌드박스 컨테이너 Operator를 설치할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift 4.13이 클러스터에 설치되어 있습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. OpenShift 샌드박스 컨테이너 카탈로그를 구독하고 있습니다.
참고OpenShift 샌드박스 컨테이너 카탈로그를 구독하면
openshift-sandboxed-containers-operator
네임스페이스에서 OpenShift 샌드박스 컨테이너 Operator에 액세스할 수 있습니다.
절차
OpenShift 샌드박스 컨테이너 Operator의
Namespace
오브젝트를 생성합니다.다음 매니페스트가 포함된
Namespace
오브젝트 YAML 파일을 생성합니다.apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operator
Namespace
오브젝트를 생성합니다.$ oc create -f Namespace.yaml
OpenShift 샌드박스 컨테이너 Operator의
OperatorGroup
오브젝트를 생성합니다.다음 매니페스트가 포함된
OperatorGroup
오브젝트 YAML 파일을 생성합니다.apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-sandboxed-containers-operator namespace: openshift-sandboxed-containers-operator spec: targetNamespaces: - openshift-sandboxed-containers-operator
OperatorGroup
개체를 생성합니다.$ oc create -f OperatorGroup.yaml
Subscription
오브젝트를 생성하여네임스페이스
에서 OpenShift 샌드박스 컨테이너 Operator를 서브스크립션합니다.다음 매니페스트가 포함된
Subscription
오브젝트 YAML 파일을 생성합니다.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-sandboxed-containers-operator namespace: openshift-sandboxed-containers-operator spec: channel: stable installPlanApproval: Automatic name: sandboxed-containers-operator source: redhat-operators sourceNamespace: openshift-marketplace startingCSV: sandboxed-containers-operator.v1.4.1
Subscription
오브젝트를 생성합니다.$ oc create -f Subscription.yaml
OpenShift 샌드박스 컨테이너 Operator가 클러스터에 설치되었습니다.
위에 나열된 모든 오브젝트 파일 이름은 제안 사항입니다. 다른 이름을 사용하여 오브젝트 YAML 파일을 생성할 수 있습니다.
검증
Operator가 올바르게 설치되었는지 확인합니다.
$ oc get csv -n openshift-sandboxed-containers-operator
출력 예
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.4.1 1.4.0 Succeeded
추가 리소스
2.3.2. CLI를 사용하여 KataConfig 사용자 지정 리소스 생성
kata
를 노드에 RuntimeClass
로 설치하려면 하나의 KataConfig
CR(사용자 정의 리소스)을 생성해야 합니다. KataConfig
CR을 생성하면 OpenShift 샌드박스 컨테이너 Operator가 다음을 수행합니다.
-
RHCOS 노드에 QEMU 및
kata-containers
와 같은 필요한 RHCOS 확장을 설치합니다. - CRI-O 런타임이 올바른 런타임 처리기로 구성되었는지 확인합니다.
-
기본 구성으로
kata
라는RuntimeClass
CR을 생성합니다. 이를 통해 사용자는RuntimeClassName
필드에서 CR을 참조하여kata
를 런타임으로 사용하도록 워크로드를 구성할 수 있습니다. 이 CR은 런타임의 리소스 오버헤드도 지정합니다.
Kata는 기본적으로 모든 작업자 노드에 설치됩니다. 특정 노드에서만 kata
를 RuntimeClass
로 설치하려면 해당 노드에 레이블을 추가한 다음 KataConfig
CR에 레이블을 생성할 때 정의할 수 있습니다.
사전 요구 사항
- 클러스터에 Red Hat OpenShift 4.13을 설치했습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - OpenShift 샌드박스 컨테이너 Operator가 설치되어 있습니다.
KataConfig
CR을 생성하면 작업자 노드가 자동으로 재부팅됩니다. 재부팅하는 데 10분에서 60분 이상 걸릴 수 있습니다. 재부팅 시간을 방해하는 요소는 다음과 같습니다.
- 더 많은 수의 작업자 노드가 있는 대규모 Red Hat OpenShift 배포.
- BIOS 및 iPXE 유틸리티 활성화
- SSD가 아닌 하드 디스크 드라이브에 배포합니다.
- 가상 노드가 아닌 베어 메탈과 같은 물리적 노드에 배포.
- 느린 CPU 및 네트워크
절차
다음 매니페스트를 사용하여 YAML 파일을 생성합니다.
apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfig spec: checkNodeEligibility: false 1 logLevel: info
- 1
kata
를RuntimeClass
로 실행할 노드 자격을 감지하려면 'checkNodeEligibility'를true
로 설정합니다. 자세한 내용은 "클러스터 노드가 OpenShift 샌드박스 컨테이너를 실행할 수 있는지 여부"를 참조하십시오.
(선택 사항)
kata
를 선택한 노드에서만RuntimeClass
로 설치하려면 매니페스트에 라벨이 포함된 YAML 파일을 생성합니다.apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfig spec: checkNodeEligibility: false logLevel: info kataConfigPoolSelector: matchLabels: <label_key>: '<label_value>' 1
- 1
kataConfigPoolSelector
의 라벨은 단일 값만 지원합니다.nodeSelector
구문이 지원되지 않습니다.
KataConfig
리소스를 생성합니다.$ oc create -f cluster-kataconfig.yaml
새로운 KataConfig
CR이 생성되고 작업자 노드에 RuntimeClass
로 kata
를 설치하기 시작합니다. kata
설치가 완료되고 작업자 노드가 재부팅될 때까지 기다린 후 다음 단계를 계속합니다.
OpenShift 샌드박스 컨테이너는 kata
를 기본 런타임이 아닌 클러스터의 선택적 런타임으로만 설치합니다.
검증
설치 진행 상황을 모니터링합니다.
$ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
Is In Progress 의 값이
false
로 표시되면 설치가 완료됩니다.
추가 리소스
2.3.3. CLI를 사용하여 샌드박스 컨테이너에 워크로드 배포
OpenShift 샌드박스 컨테이너는 Kata를 기본 런타임이 아닌 클러스터의 보조 선택적 런타임으로 설치합니다.
샌드박스 컨테이너에 Pod 템플릿 워크로드를 배포하려면 워크로드 YAML 파일에 kata
를 runtimeClassName
으로 추가해야 합니다.
사전 요구 사항
- 클러스터에 Red Hat OpenShift 4.13을 설치했습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - OpenShift 샌드박스 컨테이너 Operator가 설치되어 있습니다.
-
KataConfig
CR(사용자 정의 리소스)을 생성했습니다.
절차
pod 템플릿 오브젝트에
runtimeClassName: kata
를 추가합니다.-
Pod
오브젝트 -
ReplicaSet
오브젝트 -
ReplicationController
오브젝트 -
StatefulSet
오브젝트 -
Deployment
오브젝트 -
DeploymentConfig
오브젝트
Pod 오브젝트의 경우 .example
apiVersion: v1 kind: Pod metadata: name: hello-openshift labels: app: hello-openshift spec: runtimeClassName: kata containers: - name: hello-openshift image: quay.io/openshift/origin-hello-openshift ports: - containerPort: 8888 securityContext: privileged: false allowPrivilegeEscalation: false runAsNonRoot: true runAsUser: 1001 capabilities: drop: - ALL seccompProfile: type: RuntimeDefault
-
Red Hat OpenShift는 워크로드를 생성하고 스케줄링을 시작합니다.
검증
-
Pod 템플릿 오브젝트에서
runtimeClassName
필드를 검사합니다.runtimeClassName
이kata
인 경우 워크로드가 OpenShift 샌드박스 컨테이너에서 실행됩니다.