1
1
Fork 0

octopus-inside 설명 추가

This commit is contained in:
Sangbum Kim 2017-04-06 19:56:27 +09:00
parent be460d01bf
commit 4011b4ea7f
1 changed files with 13 additions and 0 deletions

View File

@ -116,6 +116,8 @@ LinkLocalAddressing=no
`octopus-outside`는 해당 컨테이너이름을 기반으로 설정되어있는 DNS서버의 A레코드를 컨테이너의 IP로 인식한다. `octopus-outside`는 해당 컨테이너이름을 기반으로 설정되어있는 DNS서버의 A레코드를 컨테이너의 IP로 인식한다.
또한 서브넷, 게이트웨이는 현재 호스트의 기본서브넷, 기본게이트웨이를 인식하여 컨테이너내부(PID1의 environment variable로 지정)로 전달하며 이 정보를 토대로 `octopus-inside`가 실행시 네트워크 구성을 수행한다. 또한 서브넷, 게이트웨이는 현재 호스트의 기본서브넷, 기본게이트웨이를 인식하여 컨테이너내부(PID1의 environment variable로 지정)로 전달하며 이 정보를 토대로 `octopus-inside`가 실행시 네트워크 구성을 수행한다.
이 설정을 바탕으로 `systemd-nspawn``execve(2)`콜을 수행하며 `octopus-outside`자신은 시스템에서 사라진다.
* 주의 * 주의
DNS서버는 설정하지 않으므로 미리 `/etc/resolv.conf`를 설정해놓아야한다(TODO?) DNS서버는 설정하지 않으므로 미리 `/etc/resolv.conf`를 설정해놓아야한다(TODO?)
@ -144,6 +146,16 @@ Args:
`bindInterface`: ipvlan으로 연결할 nic이름을 지정한다. `bindInterface`: ipvlan으로 연결할 nic이름을 지정한다.
## `octopus-inside` 설정
`octopus-inside`는 컨테이너 내부에서 `PID 1`프로세스의 environment variable을 인식하고 다음 3가지 작업을 하고 사라집니다.
1. `ipvlan`인터페이스를 찾아 `eth0`으로 리네임
2. 건내받은 정보를 토대로 IP주소, 서브넷주소, 게이트웨이주소를 eth0에 설정
3. eth0을 UP상태로 지정
이후 해당컨테이너는 외부와 통신이 가능하게됩니다.
## 참고 ## 참고
[octopus-inside systemd서비스 파일](services/octopus-inside.service) [octopus-inside systemd서비스 파일](services/octopus-inside.service)
@ -152,3 +164,4 @@ Args:
## Licensing ## Licensing
별다른 언급이 없는 한 이 프로그램은 [GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)로 배포됩니다. 별다른 언급이 없는 한 이 프로그램은 [GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)로 배포됩니다.