๋ด๊ฐ https://github.com/cgwalters/coretoolbox ๋ฅผ ๋ง๋ ์ด์ ๋ฅผ ์ค๋ช ํ๋ https://github.com/debarshiray/toolbox/pull/100 ์์ ์ด๊ฒ์ ์ด๋ํฉ๋๋ค.
ํฉ์๋ ์ํคํ
์ฒ์ ๊ณํ์ ์ค๋๋ก ๋
ธ๋ ฅํฉ์๋ค. ์ ๋ ๋
ธ๋ ฅ์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์ฌ๊ธฐ์ ์ต์ข
๋ชฉํ๋ FCOS/Silverblue ์์คํ
์ ๋จ ํ๋์ toolbox
๋ง ์๋ค๋ ๊ฒ์
๋๋ค. (ํด๊ฒฐํ ์ ์๋ ๊ฒฝ์ฐ FCOS์์ ๋ค๋ฅธ ์ ํ์ ๋ฐฐ์กํ๊ฑฐ๋ Silverblue์ ๋ํ ์ต์
์ ์ถ๊ฐํ๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.)
์ ์คํฌ๋ฆฝํธ๊ฐ ๋๋ฌด ์ค์ํ ํ๋ก์ ํธ์ ์ ํฉํ์ง ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ coretoolbox๋ฅผ ๋ง๋ค์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ์ฐ๋ฆฌ๋ ์งํ ๋ฐฉ๋ฒ์ ๋ํด ๋์ํ์ง ์์ต๋๋ค. podman
๋ฅผ ํ์ ํ๋ก์ธ์ค๋ก ๊ณ์ ์คํํ๋ ๊ฒ์ด ๊ฝค ์คํ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. JSON์ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ต๋๋ค. ๋๋ ๋ํ varlink ๋ฅผ ์คํํ๊ณ ์์ต๋๋ค . ๊ทธ๋ฌ๋ ์
์คํธ๋ฆผ podman์๋ varlink ํ
์คํธ๊ฐ ๋ง์ง ์์ต๋๋ค. ๋ฐ๋ฉด์ Cockpit์์๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค. varlink๊ฐ ์๋ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ "option subprocess+varlink"๋ผ๊ณ ๋ถ๋ฅด์.
๋๋ ๋น์ ์ ์ ์ฅ์ด libpod๋ฅผ ๊ณต๊ธํ๊ณ Go๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋๊ตฌ ์์๊ฐ ์ค๋๋ crio๊ฐ ์๋ํ๋ ๋ฐฉ์์ผ๋ก ๋ ์ ์๋ํ๊ฒ ๋ฉ๋๋ค. ํจ๊ณผ๊ฐ ์๋ ๊ฒ์ด ์ฅ์ ์ ๋๋ค. ์์์ ์ธ๊ธํ๋ฏ์ด ๋์ผํ ์ ์ฅ์์์ ์๋ํ๋ ๋ ๊ฐ์ libpod ๋ฒ์ ์ ์์์ผ๋ก ์ ์คํธ๋ฆผ์์ ์ ํ ํ ์คํธ๋์ง ์์ ๊ฒ๊ณผ ๊ฐ์ด ์์ฒญ๋ ์์ ๋จ์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. podman์ ๋ง์ด๊ทธ๋ ์ด์ ์ด ํ์ํ ๋ฐฉ์์ผ๋ก ํ์์ ๊ณ์ ๋ณ๊ฒฝํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ค๋ Fedora CoreOS ํ์ ์์ ์ด์ ๋ํด ๋ ผ์ํ์ต๋๋ค.
* AGREED: regarding golang vs rust that is up to the author of
toolbox. we do care about size and exploding the number of
container-runtime implementations. If Golang is chosen we prefer
that we don't vendor libpod, but rather either shell out or use the
varlink API to manage containers. (dustymabe, 17:33:38)
๊ทธ๋์ @debarshiray @cgwalters ๋ ์กฐ์ฌํ ์ฃผ์ ๋ฅผ ๋งํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
1๋ฒ ํญ๋ชฉ์ ๋ํ ํฉ์๋ฅผ ์ป์ ์ ์๋ค๋ฉด @cgwalters ๋ rust ๋๋ golang์ด ์ถฉ๋ถํ ๋๊ตฌ๋ผ๋ ๋ฐ ๋์ํฉ๋๊น(๊ฐ์ธ "์ ํธ๋" ๋ฌด์)
๋ค, ๋ฌผ๋ก ์ ๋๋ค.
1. will the debarshiray/toolbox project be ok with not vendoring libpod
(์ฆ, ์ ์์ํ๊ฑฐ๋ varlink๋ฅผ ์ฌ์ฉํ์ฌ) ๋๊ตฌ ์์์ ํฌ๊ธฐ๋ฅผ ๋ถํ๋ฆฌ์ง ์๋๋ก ํ์๊ฒ ์ต๋๊น?
libpod
์ ๋ฒค๋๋ง์์ ๋ถํ๋ ค์ง ํฌ๊ธฐ๊ฐ CoreOS์ ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ์ด๊ธฐ ๋๋ฌธ์ ๋ํผ Go ๋ฐ์ด๋๋ฆฌ์์ Podman์ผ๋ก ์ ์์ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
libpod์ ๋ฒค๋๋ง์์ ๋ถํ๋ ค์ง ํฌ๊ธฐ๊ฐ CoreOS์ ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ์ด๊ธฐ ๋๋ฌธ์ ๋ํผ Go ๋ฐ์ด๋๋ฆฌ์์ Podman์ผ๋ก ์ ์์ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๋ค์ ์์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ์กด Rust ๊ตฌํ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ด ์ค์ํ ์ ์ ๋๋ค. ์ ๋ ์ด๋ฏธ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ๋ ์์ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Rust BTW์ ์ข์ ์ ์ ์ ์คํธ๋ฆผ varlink ํญ๋ชฉ์ ํ๋ฅญํ Rust ์ฝ๋๊ฐ ๋ง์ด ์๋ค๋ ๊ฒ์ ๋๋ค. varlink-go๋ ์กด์ฌํฉ๋๋ค.
๋ค์ ์์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ์กด Rust ๊ตฌํ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ด ์ค์ํ ์ ์ ๋๋ค. ์ ๋ ์ด๋ฏธ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ๋ ์์ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด๊ฒ์ ๋ ๊ตฌ์ฒดํํ๊ธฐ ์ํด ์ ์์ด ์์ต๋๋ค. debarshiray/toolbox๋ฅผ coreos/toolbox๋ก ์ด๋ํ ๋ค์ ๋๋ถ๋ถ์ ์ฝ๋๋ฅผ cgwalters/coretoolbox๋ก ๋ฐ๊พธ๋ ์ปค๋ฐ์ ๊ฐ์ง๋๋ค. @debarshiray ๋ CoreOS ๊ทธ๋ฃน์ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ํจ๊ป ๊ณต๋ ์ ์ง ๊ด๋ฆฌ์๊ฐ ๋ฉ๋๋ค. (๋๋ fedora-silverblue/ GH org๋ก ์ด๋ํ ์ ์์ต๋๋ค. ํ์ฌ ๋ ๋ง์ด ์ฐ๊ด๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ coreos/์ธ ํธ์คํธ ๋ฃจํธ ์ฌ๋ก๋ ์บก์ฒํ๊ณ ์ถ์ต๋๋ค.)
๋๋ coretoolbox ๋ฅผ ์ฌ๋ฐฉ์ ๋ฐ์ด๋ถ์ด๋ ค๋ ์ด ๋์์๋ ์๋์ ๊ณต๊ฒฉ์ ์ด์กฐ์ ์ด ํ๋ก์ ํธ๋ฅผ ์ธ์ํ๋ ค๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ํ๋์ ์ง์ณค์ต๋๋ค.
์ค์งํ์ญ์์ค!
์ฐ๋ฆฌ๊ฐ ์ต๊ทผ์ ์ด๊ฒ์ ๋ํด ๋ช ๋ฒ์ด๋ ์ด์ผ๊ธฐํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ์ด์ํ๊ฒ ํํผ์ ์ด๊ณ ๊ณต๊ฒฉ์ ์ธ ํ๋์ ๊ณ ๋ คํ ๋ ๋ ์ด์ ์ ์ถ์ธกํ ์ ์์ต๋๋ค.
Toolbox ํ๋ก์ ํธ๊ฐ ์กด์ฌํ๋ ์ด์ ๋ Silverblue๊ฐ ๊ฐ๋ฐ์์๊ฒ ์์ฒด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๋์ ์ผ๋ก ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. Silverblue์์ ์์ ํ๋ ์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ Podman ํ์ ๋ง์ ๋์์ ๋ฐ์ ์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฒ์ ์ ๊ณตํ๋ ๋ฃจํธ ์๋ Podman์ ์ฌ์ฉํ์ฌ ๋ฌด์ธ๊ฐ๋ฅผ ํดํนํ์ต๋๋ค. ์ด ๋ ธ๋ ฅ์ ํฐ ๋ถ๋ถ์ ๋ฃจํธ๊ฐ ์๋ Podman์ด ์๋ํ๋๋ก ํ๋ ๊ฒ์ด์์ต๋๋ค. Silverblue ์ฌ์ฉ์์๊ฒ ์ด์ ์์ ์ป์ผ๋ ค๋ฉด ๊ฐ์๊ธฐ ๋ฃจํธ๊ฐ ๋์ด์ผ ํ๋ค๊ณ ๋งํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
coretoolbox ๊ฐ 2019๋ 4์์์ผ ๋ํ๋ฌ๊ธฐ ๋๋ฌธ์ ๋น์ ์ ์๋ง ํ์ค์ ์์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๊ทธ๋๊น์ง ๋ง์ ์ฃผ์ ๋๊ธฐ๋ฅ๊ฐ ๊ฐ๋ผ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฟ๋ฆฌ ์๋ Podman์ด ๊ฑฐ์ ์กด์ฌํ์ง ์์๋ 2018๋ ์ฌ๋ฆ, ์ํฉ์ ๋งค์ฐ ํญํ์ฐ์์ต๋๋ค.
์ ์คํฌ๋ฆฝํธ์ ๋ํด ์ํ๋ ๊ฒ์ ๋งํ์ญ์์ค. ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต์ ํ๊ณ ์๋๋ฐฉ์ด ์ด๋ฅผ ์กฐ์ ํ๊ณ ์คํํ ์ ์๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ ์ํฌํ๋ก๊ฐ ์ฃผ๋ก ์์์ Podman ์ฃผ๋ฌธ์ ๋์ง๊ณ ๋ฌด์์ด ๋ถ๊ณ ๋ฌด์์ด ๋ถ์ง ์๋์ง, ์ ๊ทธ๋ ์ง ์์์ง ํ์ธํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋์ด ์์ ๋ ์ด๋ฌํ ์ฉ์ดํจ์ ์งํ์ ์ํด ์ ๋์ ์ผ๋ก ์ค์ํฉ๋๋ค. ์์์ ์ฌ๋์๊ฒ Rust๋ Go ๋๋ ๊ธฐํ ์ฝ๋๋ฅผ ๊ฐ์ ธ์์ ๋ช ๋ถ ์์ ์๋ํด ๋ณผ ์ ์๋๋ก ์์ฒญํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๋น๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๋ ๊ฒ์ ์ฃผ์ ํ ๊ฒ์ด๊ณ ์ฌ๋ฐ๋ฅธ Podman ๋น๋๋ ์ผ๋ถ ๊ตฌ์ฑ ์์ ๋ฑ์ ํตํด ์์ ์ก๊ณ ์๋ ์ง์ ์ ๋๋ฌํ๋ ๊ฒ์ ์์ด๋ฒ๋ฆด ์ ์์ต๋๋ค.
๋ํ CoreOS ํ์์ ์ค์ ํผ๋๋ฐฑ์ ๋ณธ ์ ์ด ์์์ ์ง์ ํฉ๋๋ค. ์ ๋.
์ง๋ 1๋ ๋์ ์ ๋ ์ฌ๋ฌ IRC ํ์์ ์ฐธ์ํ๊ณ ์ค์ํ์์ ๋ค์ํ ์ฌ๋๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด์ต๋๋ค. ์ ๊ฐ ๋ค์ ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์, ๊ทธ๋ ์ต๋๋ค. ์ฐ๋ฆฌ๋ Toolbox๋ฅผ ์ฌ๋ํ๊ณ CoreOS์์ ์๋ํ๋๋ก ํจ์น๋ฅผ ๋ณด๋ผ ๊ฒ ์ ๋๋ค. ๊ทธ ์ธ์๋ ํจ์น๋ฅผ ํ ๋ฒ๋ ๋ณธ ์ ์ด ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์ค์ ํผ๋๋ฐฑ์ ์ฌํด 7์ 8์ผ์ ๋๊ตฌ ์์ RPM์ ์ํด ๋์ด์จ ๋ถํ๋ ค์ง ์ข ์์ฑ ์ ๋ํ ๊ฒ์ด์์ต๋๋ค. ์ ๊ฐ ์ถ์ ํ์ฌ ์์ ํ์ต๋๋ค.
ํํธ Silverblue ํ์ Podman ๊ฐ๋ฐ์ ์ง์์ ์ผ๋ก ์ถ์ ํ๊ณ , ์ง์๋๋ ๋ชจ๋ ๋ถ๊ธฐ์์ Podman ๋ฆด๋ฆฌ์ค๋ฅผ ํ ์คํธํ๊ณ , ์๋ํ๋ ํ ์คํธ๋ฅผ ๊ฐ์ ํ๊ณ , ์ด๋ ค์ด ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฐจ๋ก๋ก ํต๊ณผํ๋ ์์ ์ผ๋ก ๋ฐ๋นด์ต๋๋ค. ๋ชฉ๋ก์ ๊ณ์๋ฉ๋๋ค.
์๋ํ๋ ์ฝ๋๊ฐ ์๋ค๊ณ ์๊ฐํ์ญ๋๊น? ๋ฌธ์๊ฐ ์์ต๋๊น? ์ํ ์ด ์์ต๋๊น?
์, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๊ฐ ๋ช ๋ช ์ ๋๊น? ์ผ๋ถ ์ค๋๋ ์ปจํ ์ด๋๊ฐ ๋ ์ด์ ์ ๋๊ตฌ์ ํจ๊ป ์๋ํ์ง ์๋ ์ด์ ๋ฅผ ์์๋ณด๊ธฐ ์ํด ์ผ๋ง๋ ๋ง์ ์ฌ์ฉ์๊ฐ ์ผ์์์ ์์ ์ก๊ณ ์์ต๋๊น? GNOME์์ OCI ๋ฐํ์๊น์ง ์คํ์ ์์๋๋ก ์ผ๋ง๋ ๋ง์ ํ๊ท๋ฅผ ์ถ์ ํ์ต๋๊น?
์ค์ ๋ก Toolbox๋ฅผ ์ฌ์ฉํ๋ ๋ง์ ์ค์ ์ต์ข ์ฌ์ฉ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฅ ์ผ์ด๋์ ๊ฐ์๊ธฐ ๋ชจ๋ ๊ฒ์ ๋ฐ๊ฟ ์๋ ์์ต๋๋ค. Fedora 31 ์์ ์ ๋์ ์ผ๋ก ๊ทธ๋ฆฌ๊ณ ์๊ธํ๊ฒ ํด๊ฒฐํด์ผ ํ๋ Cgroups v2 ๋ฒ๊ทธ๊ฐ ๋ง์ด ์์ต๋๋ค.
Toolbox๊ฐ ์ฌ์ ํ POSIX ์ ธ๋ก ์์ฑ๋ ์ด์ ๊ฐ ๊ถ๊ธํ์ญ๋๊น? ๋น์ ์ ๋๋ต์ด ์์ต๋๋ค - ์ฐ๋ฆฌ๋ ๋ฐ๋นด์ต๋๋ค.
Silverblue ์ฌ์ฉ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ด์ ์ฒด์ ์ ์๋ ๋ฐฉ์์ด๋ ์ปจํ
์ด๋ ๊ธฐ์ ์ ๋ด๋ถ ๋ฐ ์ธ๋ถ๋ฅผ ์์์ผ ํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ค์ toolbox enter
๋ฅผ ์คํํ๊ณ ์์ ์ป์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ค์ ๊ป์ง์ ์ป์ง ๋ชปํ๊ณ ์์ ๋ค๊ณ ๋ถํํฉ๋๋ค.
๋ ๊ฑฐ์ Workstation๊ณผ ๋น๊ตํ์ฌ Silverblue๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ์์ด ๋ชจ๋ ์์์ ์ฅ์ ๋ฌผ์ ์ฑํ์ ์ฅ์ ๋ฌผ์ ๋๋ค.
Toolbox๊ฐ ์ผ๋ง๋ ์ค์ํ์ง ์์ญ๋๊น? ๋ ๋ฏฟ์ด, ์ฐ๋ฆฌ๋ ์๊ณ ์๋ค. Silverblue์ ๊ฒฝ์ฐ Toolbox๋ Bash๋งํผ ์ค์ํฉ๋๋ค.
๋ํ CoreOS์ ๊ตฌ์ฒด์ ์ธ ์ฌ์ ๋ชฉ๋ก๋ ๋ณธ ์ ์ด ์์ต๋๋ค. https://github.com/coreos/fedora-coreos-tracker/issues/38 ์ด ์ด๋ ค์ด ์๊ตฌ ์ฌํญ์ ์ง์ ํ์ง ์๊ณ ํ ์ธ๋ถ ์ฌํญ์์ ๋ค๋ฅธ ์ธ๋ถ ์ฌํญ์ผ๋ก ๊ตฌ๋ถ๊ตฌ๋ถํ ๊ฒ์ ๋น์ฐํฉ๋๋ค.
https://fedoraproject.org/wiki/Workstation/Desktop_Containers ์ ๋น๊ตํ์ญ์์ค.
Toolbox๊ฐ Silverblue์ ์ผ๋ง๋ ์ค์ํ์ง, ์๋ง๋ CoreOS๋ณด๋ค ํจ์ฌ ๋ ์ค์ํ ์ ์๋ค๋ ๊ฒ์ ๊ฝค ๋ถ๋ช ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
libpod
๊ณต๊ธ์
์ฒด์ ํจ๊ป Go์์ ์์ฑํ๋ ๊ฒ๊ณผ ๊ฐ์ด CoreOS์ ๊ทผ๋ณธ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ์๋ ๋ฐฉํฅ์ผ๋ก Toolbox๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์์ง๋ง ๊ทธ๋ ๊ฒ ํ์ง ์์์ต๋๊น? ๋น์ ์ด ํ ์ ์๋ ๋ชจ๋ ๊ฒ์ด ๋น์ ์ ์ค์ ํ์๊ฐ ๋ฌด์์ธ์ง ์ง์ ํ์ง ์๊ณ Rust ํฌ๋ณด์ด์ฆ์ผ ๋์กฐ์ฐจ๋.
์ฐ๋ฆฌ๋ ๋ํ ํ ์๊ฐ๋ฝ์ ๋ผ์ง ์๊ณ ๋ ์์ ํ ์ดํธ๋ฆฌ๋ทฐ์ ์ ์ ๊ณตํ๋ coretoolbox์์ ๋ง์ ํฅ๋ฏธ๋ก์ด ์์ด๋์ด๋ฅผ ํก์ ํ์ต๋๋ค.
๋จผ์ ๊ฐ์ฌ ์ ๋ง์์ ์ ํ๋ ๋ฒ์ ๋ฐฐ์๋ณด๋ ๊ฑด ์ด๋จ๊น์?
ํด๋ฐ์ค์ ํฅํ ๋ฐฉํฅ์...
Toolbox๋ Go์์ ๋ค์ ์์ฑ๋ฉ๋๋ค. Podman์ ํฌํจํ OCI ์ํ๊ณ์ ๋๋จธ์ง ๋ถ๋ถ์ด ์์ฑ๋ ์ธ์ด์ ๋๋ค. Podman ์คํ์ ๊ฑด๋๋ฆฌ์ง ์๊ณ Toolbox์์ ์์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒ์ ์์ต๋๋ค. ๊ฐ๋ฅํ ํ ์ผ์น ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ฐ๋ฆฌ์ ์ต์ ์ ์ด์ต์ ๋๋ค. ๊ธฐ์ฌ์๋ค์๊ฒ Toolbox์์ ์์ ํ๋ ค๋ฉด Rust์ Go์ ๋ํ ์ง์์ด ์์ด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋ถํ์ํ ์ฅ์ ๋ฌผ์ด ๋ ๊ฒ์ ๋๋ค.
ํผํ ์๋ง ์๋ค๋ฉด Varlink๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํ์ฌ Silverblue์์ ์ ํ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด์ง๋ง, Podman ํ์ ๊ทธ๊ฒ์ ๋ํด ๋ณ๋ก ๋ง์กฑํ์ง ์์ผ๋ฉฐ, ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๊ทผ๋ณธ์ ์ผ๋ก ์๋ก์ด ๊ธฐ์ ์ ๋งค์ฐ ์ค์ํ ๊ฒ์ ํ๊ฐ์ด๋ฐ์ ๋๋ ๊ฒ์ ์ํํ ๊ฒ์ ๋๋ค. Podman์ ๊ฐ๋ฅํ ํ ๊ฐ๋ ฅํ๊ฒ ๋ง๋๋ ๋ฐ ๋ ธ๋ ฅ์ ์ง์คํ๊ณ ์ถ์ต๋๋ค.
libpod
๋ podman
์ ๊ดํด์ ๋ CoreOS ํ์ ์์ ๋
ผ์ํ ๊ฒ์ฒ๋ผ /usr/bin/toolbox
๋ฅผ ๊ฐ๋ฅํ ํ ์๊ฒ ์ ์งํ๊ธฐ ์ํด ํ์๋ฅผ ๊ณ ์ํ ๊ฒ์
๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก CoreOS๊ฐ Toolbox๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๊ณ์ํด์ CoreOS์ ์๊ตฌ ์ฌํญ์ ์ต๋ํ ๊ท๋ฅผ ๊ธฐ์ธ์ด๊ณ ์์ฉํ ๊ฒ์ ๋๋ค. ๋ฌผ๋ก ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค. CoreOS๊ฐ ์ด๋ค ์ด์ ๋ก๋ Toolbox๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ์๋ ๋๋ ๋น์ ์ ์๋งํ์ง ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ์ด ํ๋ก์ ํธ๋ฅผ ๋ง์ฐํ๊ณ ๋ง์ฐํ ์ด์ ๋ก ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฎ๊ธฐ์ง ์์ ๊ฒ์ ๋๋ค. ๋๋ ์ธํฐ๋ท์ ๋๊ตฐ๊ฐ๊ฐ ๋ฟ๋ฆฌ ์๋ Podman์ด ๋ฌผ๊ฑด์ด๋ผ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ชจ๋ ์ง๋ฃจํ ์ด๋ ค์์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋งค์ผ ๋ํ๋๋ ์ฌ๋๋ค์ด ๊ฒฐ์ ํฉ๋๋ค.
ํ์.
๋จผ์ ๊ฐ์ฌ์ ๋ง์์ ์ ํ๋ ๋ฒ์ ๋ฐฐ์๋ณด๋ ๊ฑด ์ด๋จ๊น์?
๊ฐ์ฌํฉ๋๋ค!
์ฐ๋ฆฌ๊ฐ ์ต๊ทผ์ ์ด๊ฒ์ ๋ํด ๋ช ๋ฒ์ด๋ ์ด์ผ๊ธฐํ๊ณ , ๋น์ ์ ์ด์ํ๊ฒ ํํผ์ ์ด๊ณ ๊ณต๊ฒฉ์ ์ธ ํ๋์ ๊ฐ์ํ ๋ ๋ ์ด์ ์ ์ถ์ธกํ ์ ์์ต๋๋ค.
ํ , ๋ฐ๊พธ์! ํํผํ์ด ๋ญ์ง ๋ชจ๋ฅด๊ฒ ๋ค์. ๋น์ ์ด ๊ณต๊ฒฉ์ฑ์ ์ธ์ํด์ ์ ๊ฐ์ ๋๋ค. ๋๋ ํ์คํ ์ข ์ข ๊ธฐ์ ์ ์ธ ๊ฒฌํด๋ฅผ ๊ฐํ๊ฒ ์ฃผ์ฅํ์ง๋ง, ์๋ฌด ๊ฒ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฐ์๋ค์ด์ง ๋ง์ญ์์ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์; ๊ณ์ ์ด๋ฐ ๋ํ๋ฅผ ๋๋๋ ์ด์ ๋ ํจ๊ป ์ผํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๋๋ค!
๋๋ coretoolbox๋ฅผ ์ฌ๋ฐฉ์ผ๋ก ๋ฐ์ด๋ถ์ด๋ ค๋ ์ด ๋์์๋ ์๋์ ๊ณต๊ฒฉ์ ์ธ ์ด์กฐ์ ์ด ํ๋ก์ ํธ๋ฅผ ์ธ์ํ๋ ค๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ํ๋์ ์ง์ณค์ต๋๋ค.
์, ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๊ฝค ์ค์ํ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๋๋ ๋น์ ์ด ํ ๋ชจ๋ ์ผ์ ์ ๋์ ์ผ๋ก ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๊ธฐ์ ์ ์ธ ๋ถ์ผ์น๊ฐ ์์ต๋๋ค.
๋ถ๋ช ํ ๋งํ๊ฒ ์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด ํ๋ก์ ํธ์ ๋ฏธ๋ ๋ฐฉํฅ์ ๋ํด ๋ ๋ง์ ํต์ ๊ถ์ ๊ฐ๊ณ ์ถ์ต๋๋ค. ๊ทธ๊ฒ์ ์์ ํ ํต์ ์ ๋์ผํ์ง ์์ต๋๋ค. ๋๋ "๊ฑฐ์น ํฉ์์ ์์ ์ฝ๋"๋ฅผ ๋ฏฟ์ต๋๋ค. ํจ๊ป ํ ์ ์์ ๊ฒ ๊ฐ์์! ๋น์ ๊ณผ ๋๋ ์๋ก๋ฅผ ์๊ณ ์์ต๋๋ค. ๋น์ ์ด ๋์ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์์๋ค์ํผ coretoolbox๋ ํจ์น๋ฅผ ์ ๊ณตํ๋ ค๊ณ ํ์ง๋ง ๋ณํฉ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์์๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ช ์ฌํ์! ๋จผ์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ํดํน ํด ๋ณด์์ต๋๋ค.
์, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๊ฐ ๋ช ๋ช ์ ๋๊น?
์, ๋ง์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฅผ ๋ค์ด ์ด ๋๊ธ์ด ์์ต๋๋ค.
๋น์ ์ด ํ ์ ์๋ ๋ชจ๋ ๊ฒ์ด ๋น์ ์ ์ค์ ํ์๊ฐ ๋ฌด์์ธ์ง ์ง์ ํ์ง ์๊ณ Rust ํฌ๋ณด์ด์ฆ์ผ ๋์กฐ์ฐจ๋.
ํ , ์ด์ ๋ ๋ถํ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ต์ ํ์ฑ, ์ค์ ํ์ผ, ์ ์์ ์ธ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ ์ค์ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ ๊ฐ ๋ํ Rust๋ฅผ ์ข์ํ๋ค๋ ๊ฒ์ ์ฌ์ค์ ๋๋ค :wink:
๊ทธ๋ฌ๋ ๋๋ ์ด ํ๋ก์ ํธ๋ฅผ ๋ง์ฐํ๊ณ ๋ง์ฐํ ์ด์ ๋ก ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฎ๊ธฐ์ง ์์ ๊ฒ์ ๋๋ค. ๋๋ ์ธํฐ๋ท์ ๋๊ตฐ๊ฐ๊ฐ ๋ฟ๋ฆฌ ์๋ Podman์ด ๋ฌผ๊ฑด์ด๋ผ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ชจ๋ ์ง๋ฃจํ ์ด๋ ค์์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋งค์ผ ๋ํ๋๋ ์ฌ๋๋ค์ด ๊ฒฐ์ ํฉ๋๋ค.
์ฌ๊ธฐ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ค์ ํ ๋ฒ, ์ค์๋๋ฅผ ๊ณ ๋ คํ ๋ ํ๋ก์ ํธ๋ ๊ทํ์ ๊ทํ์ github ๊ฐ์ธ ๋๋ฉ์ธ์ด ์๋ ์ ์ง ๊ด๋ฆฌ๋ก ์ฎ๊ฒจ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ ๋์ ์ผ๋ก ๊ทธ๋ฌํ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค.
Toolbox๋ Go์์ ๋ค์ ์์ฑ๋ฉ๋๋ค. Podman์ ํฌํจํ OCI ์ํ๊ณ์ ๋๋จธ์ง ๋ถ๋ถ์ด ์์ฑ๋ ์ธ์ด์ ๋๋ค. Podman ์คํ์ ๊ฑด๋๋ฆฌ์ง ์๊ณ Toolbox์์ ์์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒ์ ์์ต๋๋ค. ๊ฐ๋ฅํ ํ ์ผ์น ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ฐ๋ฆฌ์ ์ต์ ์ ์ด์ต์ ๋๋ค. ๊ธฐ์ฌ์๋ค์๊ฒ Toolbox์์ ์์ ํ๋ ค๋ฉด Rust์ Go์ ๋ํ ์ง์์ด ์์ด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋ถํ์ํ ์ฅ์ ๋ฌผ์ด ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ ๋ถ๋ช ํ ์ฐ๋ฆฌ๊ฐ ๊ณ์ ๋งํ๊ฒ ๋ ๋ถ๋ถ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ธ์ด ๋ฌธ์ ๋ ์ ์ง ๊ด๋ฆฌ ์ดํ์ ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ํ๋ก์ ํธ๊ฐ ๊ทํ์ ๊ฐ์ธ GH์ ๋จ์ ์๋ค๊ณ ๋ณด์ญ๋๊น, ์๋๋ฉด coreos/GH org ๋๋ fedora-silverblue/GH org๋ก ์ด๋ํ๊ณ ์ฌ๋ฌ ๊ด๋ฆฌ์๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ณด์ญ๋๊น?
FCOS aws ami(v31.20200223.3.0)์์ ๋๊ตฌ ์์๋ฅผ ์คํํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
๋๊ตฌ ์์๋ฅผ ์คํํ๋ ค๊ณ ํ์ง๋ง ์๋ํ์ง ์์ต๋๋ค
toolbox create
toolbox: TOOLBOX_PATH not set
TOOLBOX_PATH=/usr/bin/toolbox toolbox create
toolbox: this is not a toolbox container
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฐ๋ฆฌ๋ ์ค๋ Fedora CoreOS ํ์ ์์ ์ด์ ๋ํด ๋ ผ์ํ์ต๋๋ค.