LXC 컨테이너 시작 충돌 후 네트워크 인터페이스를 정리하는 방법

LXC 컨테이너 시작 충돌 후 네트워크 인터페이스를 정리하는 방법

오늘 저는 추가 "바인드 마운트"를 추가하기 위해 LXC 컨테이너를 수정했지만 컨테이너의 루트 파일 시스템에 마운트 디렉터리를 생성하는 것을 잊어버렸습니다.

결과적으로 컨테이너가 시작되지 않고 시스템이 이상한 상태가 됩니다.

시작 시 컨테이너에 대한 "veth" 인터페이스가 생성되었으며 시스템 "예측 가능한 인터페이스 이름" 이름 ensXfY의 "phys" 메서드를 사용하여 컨테이너에 바인딩한 다른 인터페이스의 이름을 컨테이너 이름 eth1로 변경했습니다.

하지만 사고 이후 문제는 해결되지 않았다.

따라서 근본적인 문제가 해결되었음에도 불구하고 호스트 네트워크가 혼란스러워 컨테이너가 여전히 시작되지 않습니다.

이 문제는 LXC 패키지 2.0.11-0ubuntu1~16.04.3을 실행하는 Ubuntu 16.04에서 발생했지만 다른 Linux 배포판의 다른 LXC 버전에도 영향을 미칠 수 있습니다.

답변1

이로 인해 오래된 "veth" 쌍과 물리적 인터페이스의 이름이 올바르게 지정되지 않는 두 가지 별도의 문제가 발생합니다.

나는 이 기사의 일부 내용을 결합하여 이 문제를 해결했습니다.

https://stackoverflow.com/questions/31989426/how-to-identify-orphaned-veth-interfaces-and-how-to-delete-them

"veth" 질문과 이 기사의 경우:

CentOS 7 - 재부팅 없이 네트워크 인터페이스 이름 바꾸기

네트워크 인터페이스의 이름을 바꾸는 데 사용됩니다.

내가 사용한 두 명령은 다음과 같습니다.

ip link delete vethXYZ
ip link set eth1 name ensXfY

실제 원래 문제를 해결하고(마운트 지점 디렉터리를 생성하여) 이러한 명령을 실행한 후 컨테이너를 올바르게 시작할 수 있었습니다.

관련 정보