검색

28장. podman RHEL 시스템 역할을 사용하여 컨테이너 관리

download PDF

podman RHEL 시스템 역할을 사용하면 Podman 컨테이너를 실행하는 Podman 구성, 컨테이너 및 systemd 서비스를 관리할 수 있습니다.

28.1. podman RHEL 시스템 역할의 변수

podman RHEL 시스템 역할에 사용되는 매개변수는 다음과 같습니다.

Variable설명

podman_kube_specs

Podman 포드 및 해당 systemd 장치를 설명합니다.

  • state: (default: created) - systemd 서비스 및 Pod를 사용하여 실행할 작업을 나타냅니다.

    • created: Pod 및 systemd 서비스를 생성하지만 실행하지 않습니다.
    • started: Pod 및 systemd 서비스를 생성하고 시작합니다.
    • absent: pod 및 systemd 서비스를 제거합니다.
  • run_as_user: (기본값: podman_run_as_user) - Pod별 사용자입니다. 사용자를 지정하지 않으면 root 를 사용합니다.

    참고

    사용자가 이미 있어야 합니다.

  • run_as_group (기본값: podman_run_as_group) - Pod별 그룹입니다. 사용자를 지정하지 않으면 root 를 사용합니다.

    참고

    그룹이 이미 있어야 합니다.

  • systemd_unit_scope (기본값: podman_systemd_unit_scope) - systemd 단위에 사용할 범위입니다. 지정하지 않으면 시스템을 루트 컨테이너 및 사용자 컨테이너에 사용합니다.
  • kube_file_src - 관리 노드의 kube_file 에 복사될 컨트롤러 노드의 Kubernetes YAML 파일의 이름입니다.

    참고

    kube_file_content 변수를 지정하는 경우 kube_file_src 변수를 지정하지 마십시오. kube_file_contentkube_file_src 보다 우선합니다.

  • kube_file_content - Kubernetes YAML 형식의 문자열 또는 Kubernetes YAML 형식의 dict입니다. 관리 노드에서 kube_file 의 내용을 지정합니다.

    참고

    kube_file_src 변수를 지정하는 경우 kube_file_content 변수를 지정하지 마십시오. kube_file_contentkube_file_src 보다 우선합니다.

  • kube_file - 컨테이너 또는 Pod의 Kubernetes 사양이 포함된 관리 노드의 파일 이름입니다. 일반적으로 역할 외부의 관리 노드에 kube_file 파일을 복사할 필요가 없는 경우 kube_file 변수를 지정할 필요가 없습니다. kube_file_src 또는 kube_file_content 중 하나를 지정하는 경우 이를 지정할 필요가 없습니다.

    참고

    kube_file을 생략하고 대신 kube_file _ src 또는 kube_file _content 를 지정하고 역할에서 파일 경로와 이름을 관리하도록 하는 것이 좋습니다.

    • 파일 basename은 K8s yaml의 metadata.name 값이고 .yml 접미사가 추가됩니다.
    • 디렉터리는 시스템 서비스의 경우 /etc/containers/ansible-kubernetes.d 입니다.
    • 디렉터리는 사용자 서비스의 경우 $HOME/.config/containers/ansible-kubernetes.d 입니다.
    • 관리 노드의 /etc/containers/ansible-kubernetes.d/ <application_name > .yml 파일에 복사됩니다.

podman_quadlet_specs

Quadlet 사양 목록입니다.

주의

Quadlets는 RHEL 8에서 rootful 컨테이너에서만 작동합니다. Quadlets는 RHEL 9에서만 rootless 컨테이너에서 작동합니다.

Quadlet은 유닛의 이름과 유형으로 정의됩니다. 단위 유형은 컨테이너,kube,network,volume 등일 수 있습니다. nametype 을 명시적으로 전달할 수 있습니다. 또는 이름과 유형은 파일 , file _src 또는 template_src 에 지정된 파일 이름에서 파생됩니다.

  • 루트 컨테이너 파일은 관리 노드의 /etc/containers/systemd/$name.$type 에 있습니다.
  • rootless 컨테이너 파일은 관리 노드의 $HOME/.config/containers/systemd/$name.$type 에 있습니다.

Quadlet 사양이 다른 파일(예: Yaml 파일 또는 ConfigMap 에 종속된 quadlet.kube )에 종속된 경우 해당 파일을 사용하는 파일 앞에 podman_quadlet_specs 목록에 지정해야 합니다. 예를 들어 my-app.kube 파일이 있는 경우 다음을 수행합니다.

[Kube]
ConfigMap=my-app-config.yml
Yaml=my-app.yml
...

그런 다음 my-app-config.ymlmy-app.yml: 앞에 my-app-config.yml을 지정해야 합니다.

podman_quadlet_specs:
  - file_src: my-app-config.yml
  - file_src: my-app.yml
  - file_src: my-app.kube

각 Quadlet 사양에 대한 대부분의 매개변수는 kube 매개변수가 지원되지 않는 점을 제외하고 위의 podman_ kube _spec 과 동일합니다. 지원되는 매개변수는 다음과 같습니다.

  • name - 단위의 이름입니다. 이름을 지정하지 않으면 파일 , file _src 또는 template_src 에서 파생됩니다.

    • 예를 들어 file_src: /path/to/my-container.container 를 지정하면 이름은 my-container 입니다.
  • 유형 - 단위 유형은 container,kube,network,volume 등일 수 있습니다. 이름을 지정하지 않으면 파일 , file _src 또는 template_src 에서 파생됩니다.

    • 예를 들어 file_src: /path/to/my-container.container 를 지정하면 유형은 컨테이너 입니다.

      참고

      이 파일이 Quadlet 단위 형식이고 유효한 Quadlet 장치 접미사가 있는 경우 Quadlet 단위로 사용됩니다. 그렇지 않으면 방금 복사됩니다.

  • file_src - Quadlet 장치의 소스로 사용할 관리 노드에 복사할 제어 노드의 파일 이름입니다.

    참고

    이 파일이 Quadlet 단위 형식이고 유효한 Quadlet 장치 접미사가 있는 경우 Quadlet 단위로 사용됩니다. 그렇지 않으면 방금 복사됩니다.

  • file - Quadlet 장치의 소스로 사용할 관리 노드의 파일 이름입니다.

    참고

    이 파일이 Quadlet 단위 형식이고 유효한 Quadlet 장치 접미사가 있는 경우 Quadlet 단위로 사용됩니다. 그렇지 않으면 방금 복사됩니다.

  • file_content - 관리 노드에 복사할 파일의 콘텐츠(문자열 형식)입니다. 이 기능은 인라인으로 쉽게 지정할 수 있는 짧은 파일을 전달하는 데 유용합니다. nametype 을 지정해야 합니다.
  • template_src - Jinja * 템플릿 파일로 처리할 제어 노드의 파일 이름입니다. 그런 다음 Quadlet 단위 소스로 사용할 관리 노드에 복사됩니다.

    참고

    이 파일이 Quadlet 단위 형식이고 유효한 Quadlet 장치 접미사가 있는 경우 Quadlet 단위로 사용됩니다. 그렇지 않으면 방금 복사됩니다. 파일에 .j2 접미사가 있는 경우 해당 접미사가 제거되어 사각형 파일 유형을 결정합니다.

    • 예를 들어 다음을 지정하는 경우 다음을 수행합니다.

      podman_quadlet_specs:
        - template_src: my-app.container.j2

      그런 다음 로컬 파일 templates/my-app.container.j2 가 Jinja 템플릿 파일로 처리된 다음 관리 노드의 Quadlet 컨테이너 장치 사양으로 /etc/containers/systemd/my-app.container 에 복사됩니다.

podman_secrets

podman_secret 에서 사용하는 것과 동일한 형식의 시크릿 사양 목록입니다. 단, 지정된 사용자 계정에 보안을 생성하는 데 사용되는 추가 필드 run_as_user 가 있습니다. 이 값을 지정하지 않으면 podman_run_as_user 에서 지정한 계정에 보안이 생성되고, 기본값은 "root"인 경우 Ansible Vault를 사용하여 data 필드의 값을 암호화합니다.

podman_create_host_directories

true인 경우 역할은 podman_kube_specs 에 지정된 Kubernetes YAML의 volume .hostPath 사양에 지정된 호스트 디렉터리를 확인합니다. 기본값은 false입니다.

참고

역할이 디렉터리를 관리하도록 하려면 루트 컨테이너의 절대 경로로 디렉터리를 지정하거나 루트가 아닌 컨테이너의 경우 홈 디렉터리와 관련된 경로를 지정해야 합니다.

이 역할은 기본 소유권 또는 권한을 디렉터리에 적용합니다. 소유권 또는 권한을 설정해야 하는 경우 podman_host_directories 를 참조하십시오.

podman_host_directories

이는 dict입니다. podman_create_host_directories 를 사용하여 볼륨 마운트를 위한 호스트 디렉터리를 생성하도록 역할에 알리고 생성된 호스트 디렉터리에 적용되는 권한 또는 소유권을 지정해야 하는 경우 podman_host_directories 를 사용하십시오. 각 키는 관리할 호스트 디렉터리의 절대 경로입니다. 값은 file 모듈에 대한 매개변수 형식입니다. 값을 지정하지 않으면 역할은 기본 제공 기본값을 사용합니다. 모든 호스트 디렉터리에 사용할 값을 지정하려면 특수 키 DEFAULT 를 사용합니다.

podman_firewall

이 목록은 dict 목록입니다. 방화벽에서 역할을 관리할 포트를 지정합니다. 방화벽 RHEL 시스템 역할에서 사용하는 것과 동일한 형식을 사용합니다.

podman_selinux_ports

이 목록은 dict 목록입니다. 역할에서 사용하는 포트에 대한 SELinux 정책을 관리할 포트를 지정합니다. 이 명령은 selinux RHEL 시스템 역할에서 사용하는 것과 동일한 형식을 사용합니다.

podman_run_as_user

모든 rootless 컨테이너에 사용할 사용자의 이름을 지정합니다. podman_kube_specs,podman_quadlet_specs 또는 podman_secrets 에서 run_as_user 를 사용하여 컨테이너별/unit/secret 사용자 이름을 지정할 수도 있습니다.

참고

사용자가 이미 있어야 합니다.

podman_run_as_group

모든 rootless 컨테이너에 사용할 그룹의 이름을 지정합니다. podman_kube_specs 또는 podman_quadlet_specs 에서 run_as_group 을 사용하여 컨테이너별 또는 단위 그룹 이름을 지정할 수도 있습니다.

참고

그룹이 이미 있어야 합니다.

podman_systemd_unit_scope

모든 systemd 장치에 기본적으로 사용할 systemd 범위를 정의합니다. podman_kube_specspodman_quadlet_specs 에서 systemd_unit_scope 를 사용하여 컨테이너별 또는 단위 범위를 지정할 수도 있습니다. 기본적으로 rootless 컨테이너는 사용자 및 root 컨테이너를 사용합니다.

podman_containers_conf

containers.conf(5) 설정을 dict로 정의합니다. 설정은 containers.conf.d 디렉터리의 드롭인 파일에 제공됩니다. root 로 실행하면 시스템 설정이 관리됩니다. podman_run_as_user. otherwise, 사용자 설정이 관리됨을 참조하십시오. 디렉터리 위치는 containers.conf man 페이지를 참조하십시오.

podman_registries_conf

containers-registries.conf(5) 설정을 dict로 정의합니다. 설정은 registries.conf.d 디렉터리의 드롭인 파일에 제공됩니다. root 로 실행하면 시스템 설정이 관리됩니다. podman_run_as_user 를 참조하십시오. 그렇지 않으면 사용자 설정이 관리됩니다. 디렉터리 위치는 registries.conf man 페이지를 참조하십시오.

podman_storage_conf

containers-storage.conf(5) 설정을 dict로 정의합니다. root 로 실행하면 시스템 설정이 관리됩니다. podman_run_as_user 를 참조하십시오. 그렇지 않으면 사용자 설정이 관리됩니다. 디렉터리 위치는 storage.conf man 페이지를 참조하십시오.

podman_policy_json

containers-policy.conf(5) 설정을 dict로 정의합니다. root로 실행하는 경우( podman_run_as_user참조) 시스템 설정이 관리됩니다. 그렇지 않으면 사용자 설정이 관리됩니다. 디렉터리 위치는 policy.json man 페이지를 참조하십시오.

추가 리소스

  • /usr/share/ansible/roles/rhel-system-roles.podman/README.md 파일
  • /usr/share/doc/rhel-system-roles/podman/ 디렉터리
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.