This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.3. CLI를 사용하여 OpenShift 샌드박스 컨테이너 Operator 배포
Operator를 설치 및 배포하고 CLI에서 워크로드를 볼 수 있습니다.
3.3.1. CLI를 사용하여 OpenShift 샌드박스 컨테이너 Operator 설치
OpenShift 샌드박스 컨테이너 Operator는 OpenShift Container Platform CLI를 사용하여 설치할 수 있습니다.
사전 요구 사항
- 클러스터에 OpenShift Container Platform 4.8을 설치합니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. OpenShift 샌드박스 컨테이너 카탈로그를 구독하고 있습니다.
참고OpenShift 샌드박스 컨테이너 카탈로그를 구독하면
openshift-sandboxed-containers-operator
네임스페이스에서 OpenShift 샌드박스 컨테이너 Operator에 액세스할 수 있습니다.
절차
다음 매니페스트를 포함하는 YAML 파일을 만듭니다.
apiVersion: v1 kind: Namespace metadata: name: openshift-sandboxed-containers-operator --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-sandboxed-containers-kataconfig-group namespace: openshift-sandboxed-containers-operator spec: targetNamespaces: - openshift-sandboxed-containers-operator --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: sandboxed-containers-operatorhub namespace: openshift-sandboxed-containers-operator spec: source: redhat-operators sourceNamespace: openshift-marketplace name: sandboxed-containers-operator startingCSV: sandboxed-containers-operator.v1.0.0 channel: "preview-1.0" approval: "Automatic"
참고preview-1.0 채널을 사용하면 OpenShift Container Platform 버전과 호환되는 OpenShift 샌드박스 컨테이너 버전을 설치할 수 있습니다.
다음 명령을 실행하여 OpenShift 샌드박스 컨테이너에 필요한
Namespace
,OperatorGroup
및Subscription
오브젝트를 생성합니다.$ oc create -f <file name>.yaml
Operator가 올바르게 설치되었는지 확인합니다.
$ oc get csv -n openshift-sandboxed-containers-operator
출력 예
NAME DISPLAY VERSION REPLACES PHASE openshift-sandboxed-containers openshift-sandboxed-containers-operator 1.0.0 <csv-of-previous-version> Succeeded
사용 가능한 배포를 확인합니다.
$ oc get deployments -n openshift-sandboxed-containers-operator
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-operator 1/111 9m48s
검증
KataConfig
리소스를 생성하여 설치를 트리거할 수 있도록 Operator가 실행 중인지 확인합니다.$ oc get deployments -n openshift-sandboxed-containers-operator
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE openshift-sandboxed-containers-controller-manager 1/1 1 1 40d
추가 리소스
3.3.1.1. Kata 런타임 설치 트리거
다음을 수행하려면 OpenShift 샌드박스 컨테이너 Operator를 트리거하려면 하나의 KataConfig
CR( 사용자 정의 리소스)을 생성해야 합니다.
-
RHCOS 노드에 QEMU 및
kata-containers
와 같은 필요한 RHCOS 확장을 설치합니다. - 런타임 CRI-O가 올바른 Kata 런타임 핸들러로 구성되었는지 확인합니다.
-
가상화로 인한 추가 오버헤드 및 필요한 추가 프로세스에 대해 필요한 구성으로
RuntimeClass
사용자 지정 리소스를 생성합니다.
사전 요구 사항
- 클러스터에 OpenShift Container Platform 4.8을 설치합니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
절차
KataConfig
리소스를 생성합니다.$ oc create -f <file name>.yaml
예제
apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfig
설치 진행 상황을 모니터링합니다.
KataConfig
설치를 설명할 수 있습니다.$ oc describe kataconfig
- 상태에서 완료된 노드 필드를 확인합니다.
- 완료된 노드 값이 작업자 노드 수와 일치하는 경우 설치가 완료됩니다. 상태에는 설치가 완료된 노드 목록도 포함됩니다.
KataConfig
리소스를 확인하여 설치 진행 상황을 확인할 수 있습니다.$ watch -n 10 oc describe kataconfig
또는
KataConfig
리소스의 상태를 확인할 수 있습니다. 이 작업은oc get KataConfig <name> -oyaml
을 실행하고 출력에서status
필드를 검사하여 수행할 수 있습니다.
이제 Kata 런타임이 클러스터에 설치되어 보조 런타임으로 사용할 수 있습니다. 클러스터에서 Kata에 대해 새로 생성된 RuntimeClass
가 표시되는지 확인합니다.
OpenShift 샌드박스 컨테이너는 Kata를 기본 런타임이 아닌 클러스터의 보조 선택적 런타임으로만 설치합니다.
검증
다음을 실행하여
KataConfig
사용자 정의 리소스의 값을 모니터링할 수 있습니다.$ watch oc describe KataConfig cluster-kataconfig
추가 리소스
3.3.1.2. OpenShift 샌드박스 컨테이너의 노드 선택
특정 작업자에 Kata 런타임을 선택적으로 설치할 수 있습니다.
사전 요구 사항
- 클러스터에 OpenShift Container Platform 4.8을 설치합니다.
- OpenShift CLI(oc)가 설치되어 있습니다.
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
절차
노드를 선택하는 데 사용할 레이블을 확인합니다. 이 예에서는 레이블을 사용하여 OpenShift 샌드박스 컨테이너 워크로드에서 실행할 후보로 선택할 수 있습니다. 노드가 있으면 선택됩니다.
노드에 레이블을 적용하려면 다음 명령을 실행합니다.
$ oc label node <worker_node_name> <label>=<value>
이렇게 하면 값이
<value>
인<label>
레이블이 있는 작업자 노드에 레이블이 지정됩니다.
레이블 선택기를 추가하려면
KataConfig
CR(사용자 정의 리소스)을 편집합니다.$ oc edit kataconfig
예제
apiVersion: kataconfiguration.openshift.io/v1 kind: KataConfig metadata: name: cluster-kataconfig spec: kataConfigPoolSelector: matchLabels: custom-kata-machine-pool: 'true'
검증
machine-config-pool
오브젝트의 노드가 구성 업데이트를 통해 수행하는지 확인할 수 있습니다.기본 노드를 사용하는 경우 다음을 실행하여
machine-config-pool
리소스를 모니터링할 수 있습니다.$ watch oc get mcp worker
선택한 노드를 사용하는 경우 다음을 실행하여
machine-config-pool
리소스를 모니터링할 수 있습니다.$ watch oc get mcp kata-oc
watch oc describe kataconfig cluster-kataconfig
를 실행하여 노드의sandboxed-containers
확장 실패에 대한 정보를 표시할 수 있습니다. 정보는machine-config-pool
오브젝트의 상태에서 수집됩니다. 다음을 실행하여 정보를 볼 수 있습니다.$ oc describe mcp <machine-config-pool>
3.3.1.3. OpenShift 샌드박스 컨테이너 워크로드 예약
OpenShift 샌드박스 컨테이너에서 실행되도록 워크로드를 예약할 수 있습니다.
사전 요구 사항
- 클러스터에 OpenShift Container Platform 4.8을 설치합니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
절차
pod 템플릿 리소스에
runtimeClassName: kata
를 추가합니다.-
Pod
오브젝트 -
ReplicaSet
오브젝트 -
ReplicationController
오브젝트 -
StatefulSet
오브젝트 -
Deployment
오브젝트 -
DeploymentConfig
오브젝트
-
Pod 오브젝트의 예
apiVersion: v1 kind: Pod metadata: name: mypod spec: runtimeClassName: kata
Deployment 오브젝트의 예
apiVersion: apps/v1 kind: Deployment metadata: name: mypod labels: app: mypod spec: replicas: 3 selector: matchLabels: app: mypod template: metadata: labels: app: mypod spec: runtimeClassName: kata containers: - name: mypod image: myImage
pod 템플릿 리소스가 runtimeClassName: kata
를 사용하여 생성된 후 OpenShift Container Platform은 OpenShift 샌드박스 컨테이너에서 활성화된 노드의 워크로드 예약을 시작합니다. 선택기를 사용하지 않으면 기본값은 모든 작업자 노드로 설정됩니다. 워크로드는 OpenShift 샌드박스 컨테이너에서 실행됩니다.
3.3.2. CLI에서 OpenShift 샌드박스 컨테이너 워크로드 보기
CLI에서 워크로드에 사용된 Pod의 runtimeClass
를 볼 수 있습니다.
사전 요구 사항
- 클러스터에 OpenShift Container Platform 4.8을 설치합니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
절차
pod의
runtimeClassName
필드를 검사하여 일반 컨테이너와 OpenShift 샌드박스 컨테이너에서 실행되는 pod를 확인합니다.-
노드에서 각 pod에는 해당
qemu
프로세스가 있습니다.
-
노드에서 각 pod에는 해당
검증
openshift-sandboxed-containers-operator
컨트롤러 Pod의 로그를 확인하여 실행 중인 단계에 대한 자세한 메시지를 확인할 수 있습니다.다음을 실행하여 컨트롤러 Pod의 이름을 검색할 수 있습니다.
$ oc get pods -n openshift-sandboxed-containers-operator | grep openshift-sandboxed-containers-operator-controller-manager
이를 통해 해당 pod의 컨테이너 관리자 로그를 모니터링할 수 있습니다.