Menu Close
Settings Close

Language and Page Formatting Options

20장. 컨테이너

이 장에서는 RHEL 8과 RHEL 9 간의 컨테이너 관련 주요 변경 사항을 설명합니다.

20.1. 컨테이너 관련 주요 변경 사항

container-tools meta-package를 사용할 수 있습니다.

Podman, Buildah, Skopeo, CRIU, Udica 및 모든 필수 라이브러리를 포함하는 container-tools RPM 메타 패키지를 RHEL 9에서 사용할 수 있습니다. RHEL 9에서는 안정적인 스트림을 사용할 수 없습니다. Podman, Buildah, Skopeo 등에 대한 안정적인 액세스를 받으려면 RHEL EUS 서브스크립션을 사용합니다.

container-tools meta-package를 설치하려면 다음을 수행합니다.

  • container-tools meta-package를 설치합니다.

    $ sudo dnf install container-tools

container-tools meta-package가 업데이트됨

container-tools meta-package에는 Podman, Buildah, Skopeo, CRIU, Udica 및 모든 필수 라이브러리가 포함되어 있습니다. 이번 업데이트에서는 이전 버전에 비해 여러 버그 수정 및 개선 사항을 제공합니다.

주요 변경 사항은 다음과 같습니다.

  • 기본 오버레이 파일 시스템을 rootless 사용자로 사용할 수 있습니다.
  • NFS 스토리지가 컨테이너 내에서 지원됨
  • 제어 그룹 버전 2(cgroup v2)는 기본적으로 활성화되어 있습니다.

Podman의 주요 변경 사항에 대한 자세한 내용은 업스트림 릴리스 노트 를 참조하십시오.

제어 그룹 성능 개선

이전 버전의 제어 그룹인 cgroup 버전 1(cgroup v1)으로 인해 다양한 애플리케이션의 성능 문제가 발생했습니다. cgroup 버전 2(cgroup v2)의 최신 제어 그룹 릴리스를 통해 시스템 관리자는 성능 문제가 발생하지 않고 애플리케이션의 리소스를 제한할 수 있습니다.

RHEL 9에서는 새로운 버전의 제어 그룹인 cgroups v2가 기본적으로 활성화되어 있습니다.

Podman에서 보안 짧은 이름 지원

[aliases] 테이블에 있는 registries.conf 파일에서 이미지의 단축 별칭을 구성할 수 있습니다. 짧은 이름 모드는 다음과 같습니다.

  • 강제: 이미지 가져오기 중에 일치하는 별칭을 찾을 수 없는 경우 Podman은 사용자에게 unqualified-search 레지스트리 중 하나를 선택하라는 메시지를 표시합니다. 선택한 이미지를 성공적으로 가져오면 Podman은 $HOME/.cache/containers/short-name-aliases.conf 파일(rootless 사용자) 및 /var/cache/containers/short-name-aliases.conf (root user)에 자동으로 새로운 단축 별칭을 기록합니다. 사용자에게 메시지를 표시할 수 없는 경우 (예: stdin 또는 stdout는 TTY가 아님) Podman은 실패합니다. 둘 다 동일한 별칭을 지정하는 경우 short-name-aliases.conf 파일이 registries.conf 파일보다 우선합니다. 강제 모드는 RHEL 9의 기본값입니다.
  • 허용: 강제 모드와 유사하지만, 사용자에게 메시지를 표시할 수 없는 경우 Podman은 실패하지 않습니다. 대신 Podman은 지정된 순서로 모든 정규화되지 않은 레지스트리에서 검색합니다. 별칭은 기록되지 않습니다. RHEL 8에서는 허용 모드가 기본값입니다.

예제:

unqualified-search-registries=["registry.fedoraproject.org", “quay.io"]
[aliases]
"fedora"="registry.fedoraproject.org/fedora"

기본 컨테이너 이미지 서명 확인을 사용할 수 있습니다.

이전에는 Red Hat Container Registries의 정책 YAML 파일을 /etc/containers/registries.d/ 디렉터리에 수동으로 생성해야 했습니다. 이제 registry.access.redhat.com.yamlregistry.redhat.io.yaml 파일이 containers-common 패키지에 포함되어 있습니다. podman image trust 명령을 사용하여 컨테이너 이미지 서명을 확인할 수 있습니다.

podman image trust 명령은 신뢰할 수 있는 레지스트리를 위치를 기반으로 컨테이너 이미지의 소스로 관리합니다. 신뢰는 /etc/containers/policy.json 파일에 정의되어 있으며 사용자가 레지스트리에서 원격 이미지를 가져오려고 할 때 적용됩니다. policy.json 의 신뢰 정책은 신뢰의 레지스트리 범위를 설명합니다. 이 신뢰는 서명된 이미지에 공개 키를 사용할 수 있습니다. RHEL 8 및 RHEL 9에서는 이미지 서명 확인이 기본적으로 활성화되어 있습니다.

예제:

registry.access.redhat.com의 기존 신뢰 범위를 업데이트하려면 다음을 수행합니다.

# podman image trust set -f /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release registry.access.redhat.com

신뢰 정책 구성을 확인하려면 /etc/containers/policy.json 파일을 표시합니다.

...
"transports": {
  "docker": {
      "registry.access.redhat.com": [
       {
         "type": "signedBy",
         "keyType": "GPGKeys",
         "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
       }
     ]
},
...

registries.conf의 기본 컨테이너 레지스트리

/etc/containers/registries.conf 파일의 컨테이너 레지스트리 목록은 루트 사용자로, $HOME/.config/containers/registries.conf 에서 root 사용자로 찾을 수 있습니다. registries.conf 파일을 변경하면 기본 시스템 전체 검색 설정을 변경할 수 있습니다.

RHEL 8의 경우 unqualified-search-registries 는 다음과 같습니다.

unqualified-search-registries = ["registry.fedoraproject.org", "registry.access.redhat.com", "registry.centos.org", "docker.io"]

RHEL 9의 경우 unqualified-search-registries 는 다음과 같습니다.

unqualified-search-registries = ["registry.fedoraproject.org", "registry.access.redhat.com", "registry.centos.org", "quay.io", "docker.io"]

container-tools:latest 롤링 스트림이 업데이트되었습니다.

container-tools:rhel8 롤링 스트림의 이름이 container-tools:latest 로 변경되었습니다. 안정적인 스트림의 숫자는 동일하게 유지됩니다(예: 2.0, 3.0). Podman, Buildah, Skopeo 및 runc 툴이 포함된 container-tools:latest 롤링 스트림을 사용할 수 있습니다. 이번 업데이트에서는 이전 버전에 대한 버그 수정 및 개선 사항을 제공합니다.

자세한 내용은 https://access.redhat.com/support/policy/updates/containertools 을 참조하십시오.

기본 OCI 런타임 변경

이제 container-tools:rhel8 모듈에 crun OCI 런타임을 사용할 수 있습니다. crun 컨테이너 런타임은 컨테이너에서 rootless 사용자의 추가 그룹에 액세스할 수 있는 주석을 지원합니다. 이는 setgid가 설정된 디렉터리에서 볼륨을 마운트하는 경우 또는 사용자가 그룹 액세스 권한만 있는 경우 컨테이너 작업에 유용합니다.

  • RHEL 8의 기본 컨테이너 런타임은 runc 입니다.
  • RHEL 9의 기본 컨테이너 런타임은 crun 입니다.

RHEL 7 호스트에서 RHEL 9 컨테이너 실행은 지원되지 않습니다.

RHEL 7 호스트에서 RHEL 9 컨테이너 실행은 지원되지 않습니다.

자세한 내용은 Red Hat Enterprise Linux 컨테이너 호환성 매트릭스 를 참조하십시오.

기본 네트워크 스택

Podman은 RHEL 8 및 Netavark의 기본 네트워크 스택으로 CNI를 RHEL 9를 새로 설치하는 기본 네트워크 스택으로 사용합니다.

RHEL 8에서 RHEL 9로 인플레이스 업그레이드를 수행하는 경우 Podman의 네트워크 스택이 다음과 같이 설정됩니다.

  • /etc/containers/containers.conf 파일의 network_backend 매개 변수가 설정되지 않았거나 RHEL 8의 Podman 네트워크 스택을 Netavark로 수동으로 업그레이드한 경우 Netavark.
  • 업그레이드 후 Podman이 처음 실행될 때 제공되는 컨테이너, 이미지, Pod 또는 네트워크가 있는 경우 CNI입니다. 그런 다음 새 Netavark 네트워크 스택으로 수동으로 업그레이드할 수 있습니다. CNI와 Netavark 네트워크 스택 간에 전환하는 방법에 대한 자세한 내용은 8.6 네트워크 스택 전환을 참조하십시오 CNI에서 Netavark 및 8.7 네트워크 스택 전환

올바른 백엔드가 선택되도록 network_backend 매개변수를 명시적으로 지정하는 것이 좋습니다.

네트워크 스택의 변경으로 인해 Podman v3 및 이전 버전에서 생성한 컨테이너는 Podman v4.0에서 사용할 수 없습니다.