6장. IBM Z 및 IBM LinuxONE에 OpenShift 샌드박스 컨테이너 배포
IBM Z® 및 IBM® LinuxONE에 OpenShift 샌드박스 컨테이너를 배포할 수 있습니다.
OpenShift 샌드박스 컨테이너는 피어 Pod를 배포합니다. 피어 Pod 설계는 중첩된 가상화의 필요성을 우회합니다. 자세한 내용은 피어 Pod를 참조하십시오.
IBM Z® 및 IBM® LinuxONE의 OpenShift 샌드박스 컨테이너는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
클러스터 요구 사항
- OpenShift 샌드박스 컨테이너 Operator를 설치하는 클러스터에 Red Hat OpenShift Container Platform 4.14 이상을 설치했습니다.
- 클러스터에 작업자 노드가 하나 이상 있습니다.
6.1. 피어 Pod 리소스 요구 사항
클러스터에 충분한 리소스가 있는지 확인해야 합니다.
피어 Pod 가상 머신(VM)에는 다음 두 위치에 있는 리소스가 필요합니다.
-
작업자 노드입니다. 작업자 노드는 메타데이터, Kata shim 리소스(
containerd-shim-kata-v2
), remote-hypervisor 리소스(cloud-api-adaptor
) 및 작업자 노드와 피어 Pod VM 간의 터널 설정을 저장합니다. - libvirt 가상 시스템 인스턴스입니다. 이는 LPAR(KVM 호스트)에서 실행되는 실제 피어 Pod VM입니다.
Kubernetes 작업자 노드에 사용되는 CPU 및 메모리 리소스는 피어 Pod를 생성하는 데 사용되는 RuntimeClass(kata-remote
) 정의에 포함된 Pod 오버헤드 에 의해 처리됩니다.
클라우드에서 실행되는 총 피어 Pod VM 수는 Kubernetes 노드 확장 리소스로 정의됩니다. 이 제한은 노드당이며 peerpodConfig
CR(사용자 정의 리소스)의 limit
속성으로 설정됩니다.
peerpodconfig-openshift
라는 peerpodConfig
CR은 kataConfig
CR을 생성하고 피어 Pod를 활성화할 때 생성되며 openshift-sandboxed-containers-operator
네임스페이스에 있습니다.
다음 peerpodConfig
CR 예제에서는 기본 사양
값을 표시합니다.
apiVersion: confidentialcontainers.org/v1alpha1
kind: PeerPodConfig
metadata:
name: peerpodconfig-openshift
namespace: openshift-sandboxed-containers-operator
spec:
cloudSecretName: peer-pods-secret
configMapName: peer-pods-cm
limit: "10" 1
nodeSelector:
node-role.kubernetes.io/kata-oc: ""
- 1
- 기본 제한은 노드당 VM 10개입니다.
확장된 리소스의 이름은 kata.peerpods.io/vm
이며 Kubernetes 스케줄러에서 용량 추적 및 계정을 처리할 수 있습니다.
OpenShift 샌드박스 컨테이너 Operator를 설치한 후 환경의 요구 사항에 따라 노드당 제한을 편집할 수 있습니다.
변경 웹 후크 는 확장된 리소스 kata.peerpods.io/vm
을 Pod 사양에 추가합니다. 또한 Pod 사양에서 리소스별 항목도 제거합니다(있는 경우). 이를 통해 Kubernetes 스케줄러에서 이러한 확장 리소스를 고려하여 리소스를 사용할 수 있는 경우에만 피어 Pod를 예약할 수 있습니다.
변경 웹 후크는 다음과 같이 Kubernetes Pod를 수정합니다.
-
변경 웹 후크는
TARGET_RUNTIME_CLASS
환경 변수에 지정된 예상RuntimeClassName
값을 Pod에 확인합니다. Pod 사양의 값이TARGET_RUNTIME_CLASS
의 값과 일치하지 않으면 Pod를 수정하지 않고 웹 후크가 종료됩니다. RuntimeClassName
값이 일치하는 경우 Webhook에서 Pod 사양을 다음과 같이 변경합니다.-
Webhook는 Pod에 있는 모든 컨테이너 및 init 컨테이너의
resources
필드에서 모든 리소스 사양을 제거합니다. -
Webhook는 Pod의 첫 번째 컨테이너의 resources 필드를 수정하여 확장 리소스(
kata.peerpods.io/vm
)를 사양에 추가합니다. 확장된 리소스kata.peerpods.io/vm
은 회계 목적으로 Kubernetes 스케줄러에서 사용합니다.
-
Webhook는 Pod에 있는 모든 컨테이너 및 init 컨테이너의
변경 웹 후크는 OpenShift Container Platform의 특정 시스템 네임스페이스가 변경되지 않습니다. 해당 시스템 네임스페이스에 피어 Pod가 생성되면 Pod 사양에 확장 리소스가 포함되지 않는 한 Kubernetes 확장 리소스를 사용하는 리소스 계정이 작동하지 않습니다.
특정 네임스페이스에서 피어 Pod 생성만 허용하도록 클러스터 전체 정책을 정의하는 것이 좋습니다.