3.3. CLI와 함께 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너 워크로드 배포


CLI를 사용하여 OpenShift 샌드박스 컨테이너 워크로드를 배포할 수 있습니다. 먼저 OpenShift 샌드박스 컨테이너 Operator를 설치한 다음 KataConfig 사용자 지정 리소스를 생성해야 합니다. 샌드박스 컨테이너에 워크로드를 배포할 준비가 되면 워크로드 YAML 파일에 kata-remote-ccruntimeClassName 으로 추가해야 합니다.

3.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에 액세스할 수 있습니다.

절차

  1. OpenShift 샌드박스 컨테이너 Operator의 Namespace 오브젝트를 생성합니다.

    1. 다음 매니페스트가 포함된 Namespace 오브젝트 YAML 파일을 생성합니다.

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-sandboxed-containers-operator
      Copy to Clipboard Toggle word wrap
    2. Namespace 오브젝트를 생성합니다.

      $ oc create -f Namespace.yaml
      Copy to Clipboard Toggle word wrap
  2. OpenShift 샌드박스 컨테이너 Operator의 OperatorGroup 오브젝트를 생성합니다.

    1. 다음 매니페스트가 포함된 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
      Copy to Clipboard Toggle word wrap
    2. OperatorGroup 개체를 생성합니다.

      $ oc create -f OperatorGroup.yaml
      Copy to Clipboard Toggle word wrap
  3. Subscription 오브젝트를 생성하여 네임스페이스 에서 OpenShift 샌드박스 컨테이너 Operator를 서브스크립션합니다.

    1. 다음 매니페스트가 포함된 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
      Copy to Clipboard Toggle word wrap
    2. Subscription 오브젝트를 생성합니다.

      $ oc create -f Subscription.yaml
      Copy to Clipboard Toggle word wrap

OpenShift 샌드박스 컨테이너 Operator가 클러스터에 설치되었습니다.

참고

위에 나열된 모든 오브젝트 파일 이름은 제안 사항입니다. 다른 이름을 사용하여 오브젝트 YAML 파일을 생성할 수 있습니다.

검증

  • Operator가 올바르게 설치되었는지 확인합니다.

    $ oc get csv -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                             DISPLAY                                  VERSION  REPLACES     PHASE
    openshift-sandboxed-containers   openshift-sandboxed-containers-operator  1.4.1    1.4.0        Succeeded
    Copy to Clipboard Toggle word wrap

3.3.2. CLI를 사용하여 AWS의 피어 Pod 설정

AWS에서 사용할 피어 Pod를 설정하려면 시크릿 오브젝트, AMI(AWS 이미지 VM) 및 피어 포드 ConfigMap을 생성해야 합니다.

AWS의 피어 Pod를 설정한 후에도 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너를 배포할 KataConfig CR(사용자 정의 리소스)을 계속 생성해야 합니다.

사전 요구 사항

  • 클러스터에 Red Hat OpenShift 4.13을 설치했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift 샌드박스 컨테이너 Operator가 설치되어 있습니다.

3.3.2.1. CLI를 사용하여 AWS의 보안 오브젝트 생성

AWS 액세스 키를 설정하고 secret 오브젝트에서 네트워크를 구성합니다. secret 오브젝트는 Pod VM 이미지를 생성하고 피어 Pod에서 사용하는 데 사용됩니다.

AWS의 보안 오브젝트를 생성할 때 특정 환경 값을 설정해야 합니다. 보안 오브젝트를 생성하기 전에 이러한 값 중 일부를 검색할 수 있습니다. 그러나 다음과 같은 값을 준비해야 합니다.

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

절차

  1. secret 오브젝트에 필요한 매개변수 값을 수집합니다. 각 값을 적어 둡니다.

    1. 인스턴스 ID를 검색합니다.

      $ INSTANCE_ID=$(oc get nodes -l 'node-role.kubernetes.io/worker' -o jsonpath='{.items[0].spec.providerID}' | sed 's#[^ ]*/##g')
      Copy to Clipboard Toggle word wrap

      이 값은 보안 오브젝트 자체에 필요하지 않지만 secret 오브젝트의 다른 값을 검색하는 데 사용됩니다.

    2. AWS 리전을 검색합니다.

      $ AWS_REGION=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.aws.region}') && echo "AWS_REGION: \"$AWS_REGION\""
      Copy to Clipboard Toggle word wrap
    3. AWS 서브넷 ID를 검색합니다.

      $ AWS_SUBNET_ID=$(aws ec2 describe-instances --instance-ids ${INSTANCE_ID} --query 'Reservations[*].Instances[*].SubnetId' --region ${AWS_REGION} --output text) && echo "AWS_SUBNET_ID: \"$AWS_SUBNET_ID\""
      Copy to Clipboard Toggle word wrap
    4. AWS VPC ID를 검색합니다.

      $ AWS_VPC_ID=$(aws ec2 describe-instances --instance-ids ${INSTANCE_ID} --query 'Reservations[*].Instances[*].VpcId' --region ${AWS_REGION} --output text) && echo "AWS_VPC_ID: \"$AWS_VPC_ID\""
      Copy to Clipboard Toggle word wrap
    5. AWS 보안 그룹 ID를 검색합니다.

      $ AWS_SG_IDS=$(aws ec2 describe-instances --instance-ids ${INSTANCE_ID} --query 'Reservations[*].Instances[*].SecurityGroups[*].GroupId' --region ${AWS_REGION} --output text)
      && echo "AWS_SG_IDS: \"$AWS_SG_IDS\""
      Copy to Clipboard Toggle word wrap
  2. 다음 매니페스트를 사용하여 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: peer-pods-secret
      namespace: openshift-sandboxed-containers-operator
    type: Opaque
    stringData:
      AWS_ACCESS_KEY_ID: "<enter value>" 
    1
    
      AWS_SECRET_ACCESS_KEY: "<enter value>" 
    2
    
      AWS_REGION: "<enter value>" 
    3
    
      AWS_SUBNET_ID: "<enter value>" 
    4
    
      AWS_VPC_ID: "<enter value>" 
    5
    
      AWS_SG_IDS: "<enter value>" 
    6
    Copy to Clipboard Toggle word wrap
    1
    시작하기 전에 준비한 AWS_ACCESS_KEY_ID 값을 입력합니다.
    2
    시작하기 전에 준비한 AWS_SECRET_ACCESS_KEY 값을 입력합니다.
    3
    검색한 AWS_REGION 값을 입력합니다.
    4
    검색한 AWS_SUBNET_ID 값을 입력합니다.
    5
    검색한 AWS_VPC_ID 값을 입력합니다.
    6
    검색한 AWS_SG_IDS 값을 입력합니다.
  3. 보안 오브젝트를 적용합니다.

    $ oc apply -f peer-pods-secret.yaml
    Copy to Clipboard Toggle word wrap

secret 오브젝트가 적용됩니다.

3.3.2.2. CLI를 사용하여 AWS VM 이미지(AMI) 생성

AWS에서 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너를 실행하려면 먼저 AWS 계정 및 리소스를 사용하여 RHEL AMI를 생성해야 합니다.

절차

  1. 다음 K8s 작업을 실행하여 이미지를 생성합니다.

    $ oc apply -f https://raw.githubusercontent.com/openshift/sandboxed-containers-operator/peer-pods-tech-preview/hack/aws-image-job.yaml
    Copy to Clipboard Toggle word wrap
    참고

    이 이미지는 OpenShift 샌드박스 컨테이너에서 관리되지 않습니다. 필요한 경우 AWS 웹 콘솔 또는 AWS CLI 툴을 사용하여 삭제할 수 있습니다.

  2. 작업이 완료될 때까지 기다립니다.

    $ oc wait --for=condition=complete job.batch/aws-image-creation --timeout=7m -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

이미지가 생성되면 피어-pod ConfigMap을 사용하여 이미지를 설정해야 합니다.

3.3.2.3. CLI를 사용하여 AWS의 피어 Pod ConfigMap 생성

AWS용 ConfigMap을 생성할 때 AMI ID를 설정해야 합니다. ConfigMap을 생성하기 전에 이 값을 검색할 수 있습니다.

절차

  1. AMI ID를 검색합니다. 나중에 값을 저장하기 위해 해당 값을 저장해야 합니다.

    $ PODVM_AMI_ID=$(aws ec2 describe-images --query "Images[*].[ImageId]" --filters "Name=name,Values=peer-pod-ami" --region ${AWS_REGION} --output text) && echo "PODVM_AMI_ID: \"$PODVM_AMI_ID\""
    Copy to Clipboard Toggle word wrap
  2. 다음 매니페스트를 사용하여 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: peer-pods-cm
      namespace: openshift-sandboxed-containers-operator
    data:
      CLOUD_PROVIDER: "aws"
      VXLAN_PORT: "9000"
      PODVM_INSTANCE_TYPE: "t3.medium"
      PROXY_TIMEOUT: "5m"
      PODVM_AMI_ID: "<enter value>" 
    1
    Copy to Clipboard Toggle word wrap
    1
    검색한 AMI ID 값을 입력합니다.
  3. ConfigMap을 배포합니다.

    $ oc apply -f peer-pods-cm.yaml
    Copy to Clipboard Toggle word wrap

ConfigMap이 배포되었습니다. KataConfig CR을 생성하면 AWS에서 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너를 실행할 수 있습니다.

3.3.3. CLI를 사용하여 Azure의 피어 Pod 설정

Microsoft Azure에서 사용할 피어 Pod를 설정하려면 시크릿 오브젝트, Azure 이미지 VM, 피어 포드 ConfigMap 및 SSH 키 시크릿 오브젝트를 생성해야 합니다.

Azure의 피어 Pod를 설정한 후에도 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너를 배포하려면 KataConfig CR(사용자 정의 리소스)을 생성해야 합니다.

사전 요구 사항

  • 클러스터에 Red Hat OpenShift 4.13을 설치했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift 샌드박스 컨테이너 Operator가 설치되어 있습니다.

3.3.3.1. CLI를 사용하여 Azure의 보안 오브젝트 생성

Azure 액세스 키를 설정하고 시크릿 오브젝트에서 네트워크를 구성합니다. secret 오브젝트는 Pod VM 이미지를 생성하고 피어 Pod에서 사용하는 데 사용됩니다.

Azure의 보안 오브젝트를 생성할 때 특정 환경 값을 설정해야 합니다. 보안 오브젝트를 생성하기 전에 이러한 값 중 일부를 검색할 수 있습니다. 그러나 다음과 같은 값을 준비해야 합니다.

  • AZURE_CLIENT_ID
  • AZURE_CLIENT_SECRET
  • AZURE_TENANT_ID

절차

  1. 보안 오브젝트에 대한 추가 매개변수 값을 수집합니다. 각 값을 적어 둡니다.

    1. 서브스크립션 ID를 검색합니다.

      $ AZURE_SUBSCRIPTION_ID=$(az account list --query "[?isDefault].id" -o tsv) && echo "AZURE_SUBSCRIPTION_ID: \"$AZURE_SUBSCRIPTION_ID\""
      Copy to Clipboard Toggle word wrap
    2. 리소스 그룹을 검색합니다.

      $ AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}') && echo "AZURE_RESOURCE_GROUP: \"$AZURE_RESOURCE_GROUP\""
      Copy to Clipboard Toggle word wrap
    3. Azure 리전을 검색합니다.

      $ AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP} --query "{Location:location}" --output tsv) && echo "AZURE_REGION: \"$AZURE_REGION\""
      Copy to Clipboard Toggle word wrap
  2. 다음 매니페스트를 사용하여 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: peer-pods-secret
      namespace: openshift-sandboxed-containers-operator
    type: Opaque
    stringData:
      AZURE_CLIENT_ID: "<enter value>" 
    1
    
      AZURE_CLIENT_SECRET: "<enter value>" 
    2
    
      AZURE_TENANT_ID: "<enter value>" 
    3
    
      AZURE_SUBSCRIPTION_ID: "<enter value>" 
    4
    
      AZURE_REGION: "<enter value>" 
    5
    
      AZURE_RESOURCE_GROUP: "<enter value>" 
    6
    Copy to Clipboard Toggle word wrap
    1
    시작하기 전에 준비한 AZURE_CLIENT_ID 값을 입력합니다.
    2
    시작하기 전에 준비한 AZURE_CLIENT_SECRET 값을 입력합니다.
    3
    시작하기 전에 준비한 AZURE_TENANT_ID 값을 입력합니다.
    4
    검색한 AZURE_SUBSCRIPTION_ID 값을 입력합니다.
    5
    검색한 AZURE_REGION 값을 입력합니다.
    6
    검색한 AZURE_RESOURCE_GROUP 값을 입력합니다.
  3. 보안 오브젝트를 적용합니다.

    $ oc apply -f peer-pods-secret.yaml
    Copy to Clipboard Toggle word wrap

secret 오브젝트가 적용됩니다.

3.3.3.2. CLI를 사용하여 Azure VM 이미지 생성

Azure에서 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너를 실행하려면 먼저 Azure 계정 및 리소스를 사용하여 Azure용 RHEL 이미지를 생성해야 합니다.

절차

  1. 다음 K8s 작업을 실행하여 이미지를 생성합니다.

    $ oc apply -f https://raw.githubusercontent.com/openshift/sandboxed-containers-operator/peer-pods-tech-preview/hack/azure-image-job.yaml
    Copy to Clipboard Toggle word wrap
    참고

    이 이미지는 OpenShift 샌드박스 컨테이너에서 관리되지 않습니다. 필요한 경우 Azure 웹 콘솔 또는 Azure CLI 도구를 사용하여 삭제할 수 있습니다.

  2. 작업이 완료될 때까지 기다립니다.

    $ oc wait --for=condition=complete job.batch/azure-image-creation --timeout=7m -n openshift-sandboxed-containers-operator
    Copy to Clipboard Toggle word wrap

이미지가 생성되면 피어-pod ConfigMap을 사용하여 이미지를 설정해야 합니다.

3.3.3.3. CLI를 사용하여 Azure용 피어 Pod ConfigMap 생성

Azure용 ConfigMap을 생성할 때 특정 구성 값을 설정해야 합니다. ConfigMap을 생성하기 전에 이러한 값을 검색할 수 있습니다.

절차

  1. Azure 피어 포드 ConfigMap의 구성 값을 수집합니다. 각 값을 적어 둡니다.

    1. Azure 이미지 ID를 검색합니다.

      $ AZURE_IMAGE_ID=$(az image list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Id: id} | [? contains(Id, 'peer-pod-vmimage')]" --output tsv) && echo "AZURE_IMAGE_ID: \"$AZURE_IMAGE_ID\""
      Copy to Clipboard Toggle word wrap
    2. Azure VNet 이름을 검색합니다.

      $ AZURE_VNET_NAME=$(az network vnet list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Name:name}" --output tsv)
      Copy to Clipboard Toggle word wrap

      이 값은 ConfigMap에 필요하지 않지만 Azure 서브넷 ID를 검색하는 데 사용됩니다.

    3. Azure 서브넷 ID를 검색합니다.

      $ AZURE_SUBNET_ID=$(az network vnet subnet list --resource-group ${AZURE_RESOURCE_GROUP} --vnet-name $AZURE_VNET_NAME --query "[].{Id:id} | [? contains(Id, 'worker')]" --output tsv) && echo "AZURE_SUBNET_ID: \"$AZURE_SUBNET_ID\""
      Copy to Clipboard Toggle word wrap
    4. Azure 네트워크 보안 그룹(NSG) ID를 검색합니다.

      $ AZURE_NSG_ID=$(az network nsg list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Id:id}" --output tsv) && echo "AZURE_NSG_ID: \"$AZURE_NSG_ID\""
      Copy to Clipboard Toggle word wrap
  2. 다음 매니페스트를 사용하여 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: peer-pods-cm
      namespace: openshift-sandboxed-containers-operator
    data:
      CLOUD_PROVIDER: "azure"
      VXLAN_PORT: "9000"
      AZURE_INSTANCE_SIZE: "Standard_B2als_v2"
      AZURE_SUBNET_ID: "<enter value>" 
    1
    
      AZURE_NSG_ID: "<enter value>" 
    2
    
      AZURE_IMAGE_ID: "<enter value>" 
    3
    
      PROXY_TIMEOUT: "5m"
      DISABLECVM: "true"
    Copy to Clipboard Toggle word wrap
    1
    검색한 AZURE_SUBNET_ID 값을 입력합니다.
    2
    검색한 AZURE_NSG_ID 값을 입력합니다.
    3
    검색한 AZURE_IMAGE_ID 값을 입력합니다.
  3. ConfigMap을 배포합니다.

    $ oc apply -f peer-pods-cm.yaml
    Copy to Clipboard Toggle word wrap

ConfigMap이 배포되었습니다.

3.3.3.4. CLI를 사용하여 Azure용 SSH 키 시크릿 오브젝트 생성

Azure에서 피어 Pod를 사용하려면 SSH 키를 생성하고 SSH 키 시크릿 오브젝트를 생성해야 합니다.

절차

  1. SSH 키를 생성합니다.

    $ ssh-keygen -f ./id_rsa -N ""
    Copy to Clipboard Toggle word wrap
  2. SHH 시크릿 오브젝트를 생성합니다.

    $ oc create secret generic ssh-key-secret -n openshift-sandboxed-containers-operator --from-file=id_rsa.pub=./id_rsa.pub --from-file=id_rsa=./id_rsa
    Copy to Clipboard Toggle word wrap

SSH 키가 생성되고 SSH 키 시크릿 오브젝트가 생성됩니다. KataConfig CR을 생성하면 Azure에서 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너를 실행할 수 있습니다.

3.3.4. CLI를 사용하여 KataConfig 사용자 지정 리소스 생성

노드에 kata-remote-cc 를 설치하려면 하나의 KataConfig CR(사용자 정의 리소스)을 생성해야 합니다. KataConfig CR을 생성하면 OpenShift 샌드박스 컨테이너 Operator가 다음을 수행합니다.

  • RHCOS 노드에 QEMU 및 kata-containers 와 같은 필요한 RHCOS 확장을 설치합니다.
  • CRI-O 런타임이 올바른 런타임 처리기로 구성되었는지 확인합니다.
  • 기본 구성을 사용하여 kata-remote-cc 라는 RuntimeClass CR을 생성합니다. 이를 통해 사용자는 RuntimeClassName 필드에서 CR을 참조하여 kata-remote-cc 를 런타임으로 사용하도록 워크로드를 구성할 수 있습니다. 이 CR은 런타임의 리소스 오버헤드도 지정합니다.
참고

피어 Pod의 Kata는 기본적으로 모든 작업자 노드에 설치됩니다. 특정 노드에서만 kata-remote-cc 를 설치하려면 해당 노드에 라벨을 추가한 다음 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 및 네트워크

절차

  1. 다음 매니페스트를 사용하여 YAML 파일을 생성합니다.

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: cluster-kataconfig
    spec:
      enablePeerPods: true
      logLevel: info
    Copy to Clipboard Toggle word wrap
  2. (선택 사항) 선택한 노드에서만 kata-remote-ccRuntimeClass 로 설치하려면 매니페스트에 라벨이 포함된 YAML 파일을 생성합니다.

    apiVersion: kataconfiguration.openshift.io/v1
    kind: KataConfig
    metadata:
      name: cluster-kataconfig
    spec:
      enablePeerPods: true
      logLevel: info
      kataConfigPoolSelector:
        matchLabels:
          <label_key>: '<label_value>' 
    1
    Copy to Clipboard Toggle word wrap
    1
    kataConfigPoolSelector 의 라벨은 단일 값만 지원합니다. nodeSelector 구문이 지원되지 않습니다.
  3. KataConfig 리소스를 생성합니다.

    $ oc create -f cluster-kataconfig.yaml
    Copy to Clipboard Toggle word wrap

새로운 KataConfig CR이 생성되고 작업자 노드에 RuntimeClasskata-remote-cc 를 설치하기 시작합니다. kata-remote-cc 설치가 완료되고 작업자 노드가 재부팅될 때까지 기다린 후 다음 단계를 진행합니다.

중요

OpenShift 샌드박스 컨테이너는 kata-remote-cc 를 기본 런타임이 아닌 클러스터의 선택적 런타임으로만 설치합니다.

검증

  • 설치 진행 상황을 모니터링합니다.

    $ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
    Copy to Clipboard Toggle word wrap

    Is In Progress 의 값이 false 로 표시되면 설치가 완료됩니다.

OpenShift 샌드박스 컨테이너는 Kata를 기본 런타임이 아닌 클러스터의 보조 선택적 런타임으로 설치합니다.

샌드박스 컨테이너에서 피어 Pod를 사용하여 Pod 템플릿 워크로드를 배포하려면 워크로드 YAML 파일에 kata-remote-ccruntimeClassName 으로 추가해야 합니다.

사전 요구 사항

  • 클러스터에 Red Hat OpenShift 4.13을 설치했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift 샌드박스 컨테이너 Operator가 설치되어 있습니다.
  • 클라우드 공급자에 고유한 보안 오브젝트 및 피어-pod 구성 맵을 생성했습니다.
  • KataConfig CR(사용자 정의 리소스)을 생성했습니다.

절차

  • pod 템플릿 오브젝트에 runtimeClassName: kata-remote-cc 를 추가합니다.

    • Pod 오브젝트
    • ReplicaSet 오브젝트
    • ReplicationController 오브젝트
    • StatefulSet 오브젝트
    • Deployment 오브젝트
    • DeploymentConfig 오브젝트

Pod 오브젝트의 예

apiVersion: v1
kind: Pod
metadata:
  name: hello-openshift
  labels:
    app: hello-openshift
spec:
  runtimeClassName: kata-remote-cc
  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
Copy to Clipboard Toggle word wrap

Red Hat OpenShift는 워크로드를 생성하고 스케줄링을 시작합니다.

검증

  • Pod 템플릿 오브젝트에서 runtimeClassName 필드를 검사합니다. runtimeClassNamekata-remote-cc 인 경우 피어 Pod를 사용하여 OpenShift 샌드박스 컨테이너에서 워크로드가 실행됩니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat