6장. 컨테이너
다음 장에서는 RHEL 8과 RHEL 9 사이의 컨테이너에 대한 가장 주목할 만한 변경 사항이 포함되어 있습니다.
6.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-toolsmeta-package를 설치합니다.sudo dnf install container-tools
$ sudo dnf install container-toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
제어 그룹 성능 개선
이전 버전의 제어 그룹인 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"
unqualified-search-registries=["registry.fedoraproject.org", "quay.io"]
[aliases]
"fedora"="registry.fedoraproject.org/fedora"
registries.conf의 기본 컨테이너 레지스트리
/etc/containers/registries.conf 파일의 컨테이너 레지스트리 목록은 루트 사용자로, $HOME/.config/containers/registries.conf 에서 root 사용자로 찾을 수 있습니다. registries.conf 파일을 변경하면 기본 시스템 전체 검색 설정을 변경할 수 있습니다.
RHEL 8의 경우 unqualified-search-registries 는 다음과 같습니다.
unqualified-search-registries = ["registry.access.redhat.com", "registry.redhat.io", "docker.io"] short-name-mode = "permissive"
unqualified-search-registries = ["registry.access.redhat.com", "registry.redhat.io", "docker.io"]
short-name-mode = "permissive"
RHEL 9의 경우 unqualified-search-registries 는 다음과 같습니다.
unqualified-search-registries = ["registry.access.redhat.com", "registry.redhat.io", "docker.io"] short-name-mode = "enforcing"
unqualified-search-registries = ["registry.access.redhat.com", "registry.redhat.io", "docker.io"]
short-name-mode = "enforcing"
기본 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 컨테이너 체크포인트 및 를 다른 네트워크 스택 시스템으로 마이그레이션할 수 없습니다. CNI 네트워크 스택에서 Netavark 네트워크 스택으로 전환하려면 컨테이너 이미지에서 컨테이너를 다시 생성합니다.
podman container restore 명령을 사용하여 기존 컨테이너
Podman v5.0 사용 중단
RHEL 9.5에서는 Podman v5.0에서 다음 사항이 더 이상 사용되지 않습니다.
-
containers.conf파일에 저장된 시스템 연결 및 pam 정보는 이제 읽기 전용입니다. 이제 시스템 연결 및 pam 정보는 Podman에서만 관리되는podman.connections.json파일에 저장됩니다. Podman은[engine.service_destinations]및[farms]섹션과 같은 이전 구성 옵션을 계속 지원합니다. 필요한 경우 연결 또는 RAM을 수동으로 추가할 수 있지만podman system connection rm명령을 사용하여containers.conf파일에서 연결을 삭제할 수 없습니다. -
slirp4netns네트워크 모드는 더 이상 사용되지 않으며 향후 RHEL의 주요 릴리스에서 제거될 예정입니다.pasta네트워크 모드는 rootless 컨테이너의 기본 네트워크 모드입니다. - rootless 컨테이너용 cgroup v1은 더 이상 사용되지 않으며 향후 RHEL의 주요 릴리스에서 제거됩니다.
runc 컨테이너 런타임이 더 이상 사용되지 않음
runc 컨테이너 런타임은 더 이상 사용되지 않으며 향후 주요 RHEL 릴리스에서 제거될 예정입니다. 기본 컨테이너 런타임은 crun 입니다.