lxc 및 sched_setscheduler

lxc 및 sched_setscheduler

Centos 컨테이너 내에서 애플리케이션을 실행하려고 하는데 실시간으로 실행해야 합니다. 나는 그것을 봤고 lxc.cap.keep=sys_nice를 추가하라는 제안을 받았습니다.

이 작업을 수행한 후 lxc-start에서는 lxc.cap.keep과 lxc.keep.drop만 나란히 사용할 수 없다고 불평했습니다. 실제로 전역 lxc 구성 파일에는 여러 개의 lxc.cap.drop이 있습니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

화이트리스트와 블랙리스트로 생각 lxc.cap.keep하고 행동 하면 됩니다 . lxc.cap.drop둘 다 사용할 수 없는 경우 해당 항목을 화이트리스트에 추가하지 말고 블랙리스트에서 해당 항목을 제거하십시오. 실제로 화이트리스트를 사용할 수 없다면 블랙리스트가 사용 중이라는 의미입니다. 해당 능력이 제거되면 블랙리스트에 있다는 뜻입니다. 그래서 재정의해야 합니다 lxc.cap.drop.

이러한 구성은 모두 포함되어 있지만 /usr/share/lxc/config(호스트) 배포판이나 패키지 버전에 따라 약간 다를 수 있습니다. 프로필에 다른 프로필이 포함되어 있는 경우도 있습니다. 항목은 누적되므로 파일을 직접 편집하거나(업그레이드 시 주의...) 모든 항목을 찾아서 교체해야 합니다.

  • 가장 간단하게 전역 교체를 위해 파일에는 다음 /usr/share/lxc/config/centos.common.conf과 유사한 줄이 포함됩니다.

    lxc.cap.drop = sys_module sys_nice sys_pacct
    

    필요하지 않은 항목을 제거하고 다음으로 바꾸십시오.

    lxc.cap.drop = sys_module sys_pacct
    
  • 하나의 컨테이너에서만 구성을 교체하려면 제거된 모든 기능(일부 lxc 자세한 로그 또는 기타 방법)을 열거하는 방법을 찾으십시오.수동값이 없는 항목을 사용하여 블랙리스트를 해제하고 "다시 작성"하십시오. 호스트도 CentOS인 경우 삭제 후 sys_nice컨테이너 구성에 추가하고 ,포함 후:

    lxc.cap.drop = 
    lxc.cap.drop = mac_admin mac_override setfcap
    lxc.cap.drop = sys_module sys_pacct
    lxc.cap.drop = sys_rawio sys_time
    

관련 정보