systemd-nspawn에 대해 읽는 동안,누군가 언급함프로덕션 환경에서는 사용하면 안 됩니다. 그 이유는 관리 및 배포 인프라가 부족하기 때문인 것으로 보입니다. 실용성이 유일한 이유입니까, 아니면 잠재적인 안전/기능적 이유도 있습니까?
답변1
Lennart Poettering은 2013년 연설에서 이를 언급했지만 2015년에는 다음과 같이 말한 것으로 인용되었습니다.
systemd에는 systemd-nspawn 컨테이너 관리자도 포함되어 있습니다. 이는 상대적으로 작지만 강력한 컨테이너 관리자 구현입니다. 처음에는 테스트 목적으로 작성했지만오늘날 우리는 다양한 생산 목적으로 사용될 수 있다고 생각합니다.. 실제로 CoreOS의 rkt 컨테이너 도구는 이를 하위 수준 컨테이너 백엔드로 사용합니다.
답변2
귀하의 소스는 시스템 개발자 Lennart Poettering의 데모를 설명합니다. Lennart는 Red Hat 직원입니다. Red Hat Enterprise Linux와 Fedora Linux 커뮤니티 배포판 모두 SELinux를 사용합니다.
systemd-nspawn과 SELinux 간의 통합이 손상된 것 같습니다. 예를 참조하세요.rhbz1416540. 또한 Fedora Linux(사용 시 기본값 [email protected]
) 의 개인 네트워크 네임스페이스에서 시작된 컨테이너에서 네트워크에 액세스하려고 하면방화벽에 의해 차단됨.
내 결론은 systemd-nspawn이 컨테이너를 서버로 실행하는 것을 지원하지 않는다는 것입니다. Red Hat이 아닌 시스템에서 실행될 수도 있지만 어떤 이점도 얻을 수 없습니다.LSM기반 보호. 스스로 몇 가지 문제를 해결할 수 없다면 말이죠.
다른 잘 알려진 컨테이너 관리자에는 LSM 기반 보호가 포함되어 있습니다. 특히 Docker이지만 LXC에는 AppArmor에 대한 몇 가지 전략도 포함되어 있습니다.
프로덕션 준비가 완료되었다는 것은 사람들이 systemd-nspawn을 안전하게 사용하는 방법을 검토하고, 문서화하고, 심지어 마케팅까지 하고 있음을 의미합니다. 나는 systemd 개발자들이 적어도 아직은 실제로 그렇게 하지 않는다는 것을 인정할 만큼 정직하다고 생각합니다.