docker exec
๊ฐ kubectl exec
์ ๋ฐฑ์๋๋ก ์ฌ์ฉ๋๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. docker exec
์๋ --user
ํ๋๊ทธ๊ฐ ์์ด ํน์ ์ฌ์ฉ์๋ก ๋ช
๋ น์ ์คํํ ์ ์์ต๋๋ค. Kubernetes์๋ ์ด์ ๋์ผํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก๋ ํฌ๋๋ฅผ ํ์ ์ํค๊ณ ํฌ๋์์ ์ ๋ขฐํ ์ ์๋ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํฌ๋๋ฅผ ์์ฑํ ํ ๋ฃจํธ ์ก์ธ์ค๊ฐ ํ์ํ ํ๋ก๊ทธ๋จ์ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค(ํน๊ถ ํฌํธ ๋ฑ์ ์ก์ธ์คํด์ผ ํจ).
์ฐ๋ฆฌ๋ ์ปจํ ์ด๋์์ ๋ฃจํธ๋ก ์ ๋ขฐํ ์ ์๋ ์ฝ๋๋ฅผ ์คํํ๊ณ ์ถ์ง ์์ต๋๋ค. ์ด๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๋ํ ๊ถํ ์์น์ ๋ง์ต๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฒ์ํ์ง๋ง ์๋ ์ ์ด StackOverflow ๋ต๋ณ๋ง ์ฐพ์์ต๋๋ค -- http://stackoverflow.com/questions/33293265/execute-command-into-kubernetes-pod-as-other-user .
์ด์ ๋ํ ๋ช ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ช ๋ น์ ๋ฐ๋ ์ปจํ ์ด๋์ ์๋ฒ๋ฅผ ์ค์ ํ๊ฑฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฃจํธ๋ก ์ค์ ํ์ง๋ง ์ ๋ขฐํ ์ ์๋ ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ์ญ์ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํ๋ฅญํ Kubernetes/Docker ์ถ์ํ๋ฅผ ๊นจ๊ณ ๋ณด์ ํ์ ์ ๋์ ํฉ๋๋ค.
SGTM. @kubernetes/kubectl ์ด์ ๋ํ ์๊ฐ์ด ์์ต๋๊น?
๋ถํฉ๋ฆฌํ์ง๋ ์์ง๋ง ์ฌ์ฉ์ ์ ๋ ฅ์ ์ ์ดํ๋ ค๋ฉด ํฌ๋ ๋ณด์ ์ ์ฑ ์ด ํ์ํ๊ณ ์ด๋ฆ์ผ๋ก ์ฌ์ฉ์๋ฅผ ํ์ฉํ์ง ์์์ผ ํ ๊ฒ์ ๋๋ค(์ปจํ ์ด๋์ ๋ํด ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ UID๋ฅผ ์ง์ ํด์ผ ํจ).
@sttts ๋ฐ @ncdc re exec
ํฉ๋ฒ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
๋ด ์ฑ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ ๋น๋ํฉ์ ์ฌ์ฉํ์ฌ ๋น๋๋ฉ๋๋ค. ์์ ์ด๊ณ ์ถ์ต๋๋ค. ๋ด๊ฐ ํ ๋ ๋๋ ๋ฃจํธ์ด๊ณ ๋ชจ๋ ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋น๋ํฉ ์์ฑ ํ๊ฒฝ์ ์กด์ฌํ์ง ์์ต๋๋ค. ์ฑ ์ฌ์ฉ์( su -l u22055
)์ ๋ํ ๋ก๊ทธ์ธ ์
ธ์ ์ด๋ฉด ๋ด ์ฑ ํ๊ฒฝ์ด ์์ง๋ง ์ด์ kubernetes ํ๊ฒฝ ๋ณ์๊ฐ ์์ต๋๋ค.
su -l
์ด env vars๋ฅผ ๋ณต์ฌํ์ง ์์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ช
์์ ์ผ๋ก ๋ณต์ฌํด์ผ ํฉ๋๋ค.
๋๋ ๋ค๋ฅธ ๋ช
๋ น์ ์ฌ์ฉํ์ญ์์ค.
2016๋ 10์ 11์ผ ํ์์ผ ์คํ 5์ 26๋ถ, Michael Elsdรถrfer < [email protected]
์ผ๋ค:
๋ด ์ฑ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ ๋น๋ํฉ์ ์ฌ์ฉํ์ฌ ๋น๋๋ฉ๋๋ค. ๋๋ ์ด๊ณ ์ถ๋ค
๊ป๋ฐ๊ธฐ. ๋ด๊ฐ ํ ๋ ๋๋ ๋ฃจํธ์ด๊ณ ๋ชจ๋ ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋ฉ๋๋ค. ํ์ง๋ง
buildpack ์์ฑ ํ๊ฒฝ์ด ์์ต๋๋ค. ๋ก๊ทธ์ธ ์ ธ์ ์ด๋ฉด
์ฑ ์ฌ์ฉ์(su -l u22055) ๋ด ์ฑ ํ๊ฒฝ์ด ์์ง๋ง ์ง๊ธ์
Kubernetes ํ๊ฒฝ ๋ณ์๊ฐ ์์ต๋๋ค.โ
์ธ๊ธ๋ ํ์ ์ํด ์๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/kubernetes/kubernetes/issues/30656#issuecomment -253085398,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABG_p7sIu20xnja2HsbPUUgD1m4gXqVAks5qzCksgaJpZM4Jk3n0
.
@miracle2k - su -m -l u22055
ํด๋ณด์
จ๋์? -m
๋ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ณด์กดํด์ผ ํฉ๋๋ค.
@adarshaj @smarterclayton ์กฐ์ธ ๊ฐ์ฌํฉ๋๋ค. su -m
์์ฒด ๋ฌธ์ ๊ฐ ์์ง๋ง(ํ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ชป๋จ) ๊ทธ ๋์ ์๋ํ๊ฒ ํ์ต๋๋ค. ํ์ง๋ง ์์ ์ - ๊ทธ๊ฒ์ด ๋ด๊ฐ ์ฌ๊ธฐ์ ๊ฒ์ํ ์ด์ ์
๋๋ค - "kubectl exec"์ด ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๋ ๊ฒ์ ๋ณด๊ณ ์ถ๋ค๋ ๊ฒ์
๋๋ค. ๋์ปค ํ์ผ์ด ์ ์ํ ์ฌ์ฉ์๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
๋ค์์ ์ด ๊ธฐ๋ฅ์ด ํ์ํ ์์ ๋๋ค.
๊ณต์ Jenkins ์ด๋ฏธ์ง๋ ์ฌ์ฉ์ Jenkins๋ก ์คํ๋ฉ๋๋ค. ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด์ผ ํ๋ ์๊ตฌ ๋์คํฌ๊ฐ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. kubectl์ --user๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฃจํธ ๋ฐ ํฌ๊ธฐ ์กฐ์ 2fs๋ก bashํ ์ ์์ต๋๋ค. ๋ถํํ๋ ๊ทธ๊ฒ ์์ด๋ ๊ทน์ฌํ ๊ณ ํต์ ๋๋ค.
์ถ๊ฐ ์ฌ์ฉ ์ฌ๋ก - ๋ณด์์ ์์ํ๊ณ ์์ผ๋ฏ๋ก ์ปจํ ์ด๋ ๋ด๋ถ์์ ์คํ๋๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ๊ถํ์ด ๋ถ์ฌ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ์๊ธฐ์น ์๊ฒ ์๋ํ์ง ์๊ณ ๋ฃจํธ๋ก ๋ก๊ทธ์ธํ์ฌ ์๋ฅผ ๋ค์ด ๋๋ฒ๊ทธ ์ ํธ๋ฆฌํฐ๋ฅผ ์ค์นํ๊ณ ๋ผ์ด๋ธ ์์คํ ์ ๋ฌธ์ ๋ฅผ ํ์ ํ๋ ค๊ณ ํฉ๋๋ค.
๋๋ฒ๊น
๋ชฉ์ ์ผ๋ก ๋ฌผ๊ฑด์ ์ค์นํ๋ ๊ฒ๋ ์ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค. ํ์ฌ ๋๋ kubernetes๋ฅผ ์คํํ๋ ๋
ธ๋์ ssh
๋ฅผ ๋ฃ๊ณ docker exec
๋ฅผ ์ง์ ์ฌ์ฉํฉ๋๋ค.
์ด์ ๋ํ ์ํ๋ ์ด๋ป์ต๋๊น? ์ด ๊ธฐ๋ฅ์ ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค
ํ์ธํ์ง ์์์ง๋ง --as
๋ฐ --as-group
์ ์ญ ํ๋๊ทธ๊ฐ ์ฌ๊ธฐ์ ๋์์ด ๋๋์? exec
์์๋ ์๋ํฉ๋๊น? cc @liggitt
ํ์ธํ์ง ์์์ง๋ง --as ๋ฐ --as-group ์ ์ญ ํ๋๊ทธ๊ฐ ์ฌ๊ธฐ์ ๋์์ด ๋ฉ๋๊น? ๊ทธ๋ค์ ์ฌ์ง์ด ์์๊ณผ ํจ๊ป ์ผํฉ๋๊น? cc @liggitt
์๋์, ์ด๋ exec ํธ์ถ์ ๋ํด ์ ํํ uid๋ฅผ ์๋ฆฌ๊ธฐ ์ํด ์ ๋ฌํ์ง ์๊ณ kubernetes API์ ์์ ์ ์๋ณํ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
์ฌ์ฉ์ ํ๋๊ทธ๊ฐ ์๋ค๋ ๊ฒ์ ๋ฒ๊ฑฐ๋ก์ด ์ผ์
๋๋ค. ์ฌ์ฉ ์ฌ๋ก๋ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก ์คํ๋๋ ์ปจํ
์ด๋๊ฐ ์๊ณ ์ฌ๊ธฐ์ ๋ณผ๋ฅจ์ ํ์ฌํ์ง๋ง ๋ณผ๋ฅจ ํด๋๋ ์ฌ์ฉ์๊ฐ ์์ ํ์ง ์๋ ๊ฒ์
๋๋ค. ์ง์ ๋ ๊ถํ์ผ๋ก ๋ณผ๋ฅจ์ ๋ง์ดํธํ๋ ์ต์
์ด ์์ต๋๋ค. ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ ์ง์
์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ถํ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก๋ ์คํ๋๊ธฐ ๋๋ฌธ์ lifecycle.preStart ํํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. kubectl exec -u root
๋ '-u' ์ต์
์ด ์์ผ๋ฉด ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ฌ์ฉ์๊ฐ ์๋ 'exec'๋ฅผ ํ์ฉ/์ฐจ๋จํ๋ ค๋ฉด ์ถ๊ฐ RBAC ๊ถํ์ด ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์์ ์ผ๋ก๋ ๋ผ์ดํ์ฌ์ดํด ํํฌ๋ ์ปจํ ์ด๋๊ฐ ๋ฃจํธ๋ก ์คํ๋์ง ์๋ ๊ฒฝ์ฐ์๋ ์ปจํ ์ด๋์์ ๋ฃจํธ๋ก ์คํํ ์ ์์ด์ผ ํฉ๋๋ค. ํ์ฌ ๊ฐ์ฅ ์ข์ ๋์์ ๋์ผํ ๋ง์ดํธ์ ๋ํด ์ด๊ธฐํ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ค. ์ปจํ ์ด๋ ์์ ์ ๋ฃจํธ๋ก ํ ์ค ๋ช ๋ น๋ง ํ์ํ ๋ ๋ณ๋์ ์ปจํ ์ด๋๋ฅผ ์์ํ๊ณ ๋ณผ๋ฅจ์ ๋ง์ดํธํ๊ธฐ ์ํ ์ผ์ข ์ ์ค๋ฒํค๋์ ๋๋ค.
/์๊ทธ๋ ํด๋ฆฝ
์ด ๊ธฐ๋ฅ์ ๋ํด +1์ ๋๋ค. ์ด๊ฒ์ด ์์ผ๋ฉด ๋๋ฒ๊น ์ ํจ์ฌ ๋ ๊ณ ํต์ค๋ฝ๊ฒ ๋ง๋ญ๋๋ค.
์ด ๊ธฐ๋ฅ์ ๋ํด +1์ ๋๋ค. ๋ด ๋์ปค ์ปจํ ์ด๋๋ฅผ ๋ค์ ๋น๋ํ๊ณ ๋์ปค ํ์ผ์ ๋ง์ง๋ง ์ค์ USER ๋ฃจํธ๊ฐ ์๋์ง ํ์ธํ ๋ค์ ๋๋ฒ๊ทธํ๊ณ ์ด๋ฅผ ๋นํ์ฑํํด์ผ ํฉ๋๋ค.
docker ๋ช ๋ น์ค์ --user ํ๋๊ทธ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
johnjjung, ๋ ธ๋์ ๋ํ ssh ์ก์ธ์ค ๊ถํ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ํ๋๊ทธ์ ํจ๊ป docker๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฏ๋ก ์ฝ๊ฐ์ ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค.
ํ , ๊ต์ฅํฉ๋๋ค ์ด๊ฒ์ ์๋ํ๊ฒ ์ต๋๋ค
2017๋ 7์ 10์ผ 11:34 -0400, BenAbineriBubble [email protected] ์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
johnjjung, ๋ ธ๋์ ๋ํ ssh ์ก์ธ์ค ๊ถํ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ํ๋๊ทธ์ ํจ๊ป docker๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฏ๋ก ์ฝ๊ฐ์ ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค.
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ๋ณด๊ฑฐ๋ ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ธ์.
+1 ์ ๋ง ๋ฌธ์ ์ ๋๋ค. ssh๋ฅผ ์ํํ ๋ค์ docker exec๋ฅผ ์คํํด์ผ ํฉ๋๋ค.
/cc @frobware
+1 ๋ถํ๋๋ฆฝ๋๋ค. ๋ ์ด์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก docker exec -u๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ต๋๋ค.
+1 - kubectl exec์ docker exec์ ๋นํด ์๊ฐ์ ์์ฒญ๋๊ฒ ์ ์ฝํด ์ฃผ๋ฏ๋ก ์ฌ์ฉ์๋ฅผ ์ง์ ํ๊ธฐ ์ํด docker exec๋ก ๋๋์๊ฐ์ผ ํ ๋๋ง๋ค ๋๋ฌผ์ด ๋ฉ๋๋ค.
๊ณ ๋ ค ์ฌํญ:
์ด๊ฒ์ ๋ถํํ๋ ์ฐ๋ฆฌ๊ฐ ์ต๊ด์ ์ผ๋ก ๋ง๋ ์์ ํ์ง ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฐฉ์งํ๊ธฐ ๋๋ฌธ์ +1์ ๋๋ค(์ฆ, runAsUser๋ฅผ root๋ก ์ค์ ... ๊ทธ๋ฆฌ๊ณ public ๐ฎ์ ๋ฐฐํฌํ ๋ ๊ฐ์ ๋๋๋ฆฌ๋ ๊ฒ์ ์์).
+1
๋๋ฅผ ์ํด +1, ํฌ๋์ ๋ก๊ทธ์ธํ๊ณ ์คํ ์ฌ์ฉ์๋ก ๋ฃจํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์ฌ๋ฐฐํฌํ์ง ์๊ณ ๋ณ๊ฒฝํ๋ ค๋ฉด --user ํ๋๊ทธ๊ฐ ํ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ ๋งค์ฐ ๊ฐ๋ ฅํ ์ง์์ ๋ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ธฐ ์ํด ํ ์ ์๋ ์ผ์ด ์์ต๋๊น? (์, ์, ํจ์น๊ฐ ํ์ฉ๋ฉ๋๋ค :) )
+1 ์ ์๋ ์ฌ์ฉ์์ ํจ๊ป ์คํํ ์ ์๋ ์ด ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ํธ๋ฆฌํฉ๋๋ค.
๋ณด์ ๋ฌธ์ ๋ก ์ธํด ๊ตฌํ์ด ๊น๋ค๋ก์ธ ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น? ์๋ฅผ ๋ค์ด Dockerfile์ด ์ฒ์์ ๋ฃจํธ๊ฐ ์๋ ์ฌ์ฉ์๋ก ์ค์ ๋ ๊ฒฝ์ฐ ์ด์ ๋ฃจํธ ์ฌ์ฉ์๋ก ๋ช ๋ น์ ์คํํ๋๋ก ํ์ฉํด์ผ ํฉ๋๊น? -- docker์ ์ฌ์ฉ์ ํ๋๊ทธ๋ ์ด๊ฒ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ์ต๋๊น? ๊ทธ๋ค์ด ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ๋ค๋ฉด kubectl exec ๋ช ๋ น์ ํจ์นํ์ฌ ์ด๊ฒ์ ์ ๋ฌํ๊ธฐ๋ง ํ๋ฉด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ด ์ ์ ํ ์ ๋ต์ธ์ง ์๋ ค์ค ์ ์๋ ์ฌ๋์ด ์์ต๋๊น? ๊ทธ๋ฐ ๋ค์ PR์ ์์ํ ์ ์์ต๋๋ค.
@johnjjung ์, ์ฌ๊ธฐ ์ ๋ต์ docker --user ํ๋๊ทธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด kubectl exec๋ฅผ ํจ์นํ๋ ๊ฒ์ ๋๋ค.
๋ํ kubectl์์ ์ฐ๊ฒฐํ๊ธฐ ์ํด GCP์์ ์์์ ์ธ์ฆ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋ณด์ ๋ฌธ์ ๋ ๊ฒฝ๋ฏธํด ๋ณด์ ๋๋ค.
๋ํ kubectl์์ ์ฐ๊ฒฐํ๊ธฐ ์ํด GCP์์ ์์์ ์ธ์ฆ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋ณด์ ๋ฌธ์ ๋ ๊ฒฝ๋ฏธํด ๋ณด์ ๋๋ค.
์ด๋์? ํฌ๋ ์ฌ์์์ ํ์ฉ๋๋ ์ฌ์ฉ์์ ๋ํ ์ ์ด๊ฐ ์์ต๋๋ค. exec ํธ์ถ์ ์ง์ ๋ ๋ชจ๋ ์ฌ์ฉ์ ID์ ๋ํด ๋๋ฑํ ์ ์ด๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ์๋ ์ปจํ ์ด๋๊ฐ ์๋ ๊ฒฝ์ฐ exec๋ฅผ ๋ฃจํธ๋ก ์คํํ ์ ์๋์ง ์ฌ๋ถ์ ๋ํด ๋น์ทํ ์ง๋ฌธ์ด ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํฌ๋ ๋ณด์ ์ปจํ ์คํธ ๋ฐ ํฌ๋ ๋ณด์ ์ ์ฑ ์ ์ด๊ฐ ์ด ์๋ก์ด ์ต์ ์ ์ ์ฉ๋๋ ๋ฐฉ์์ ๋ํ ์๊ฐ ์์ด ์ด๋ฅผ ๋ ธ์ถํ ์ ์์ต๋๋ค.
@liggitt Dockerfile ์์ฒด์์ ์ฌ์ฉ์๋ฅผ ์ค์ ํ๋ ๊ฒ๊ณผ ๋ค๋ฅด์ง ์์ง๋ง Docker์ ์ฌ์ฉ์ ํ๋๊ทธ๋ก ์ฌ์ ํ ๋ฃจํธ๋ก ์คํํ ์ ์์ต๋๋ค.
Docker์ ์ฃผ์ ๊ด์ฌ์ฌ๋ _์คํ ์ค์ธ_ ์ปจํ ์ด๋ _๋ด์์ ๋ฃจํธ ์ก์ธ์ค๋ฅผ ๋ฐฉ์งํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์์ ์์ ์ฌ์ฉ์๊ฐ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ ํ ์ ์๋๋ก ์ค์ ๋ก ์ ๋ขฐ๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด Dockerfile์ด ์ฒ์์ ๋ฃจํธ๊ฐ ์๋ ์ฌ์ฉ์๋ก ์ค์ ๋ ๊ฒฝ์ฐ ์ด์ ๋ฃจํธ ์ฌ์ฉ์๋ก ๋ช ๋ น์ ์คํํ๋๋ก ํ์ฉํด์ผ ํฉ๋๊น? -- docker์ ์ฌ์ฉ์ ํ๋๊ทธ๋ ์ด๊ฒ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ์ต๋๊น?
@johnjjung @jordanwilson230 ์ด ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. docker ๋ฐํ์ ์ธ์๊ฐ Dockerfile ์ง์๋ฌธ์ ์ฌ์ ์ํฉ๋๋ค. ๋ด ๋จธ๋ฆฌ ๊ผญ๋๊ธฐ์์ ์ด๊ฒ์ ๋๋ถ๋ถ์ ๋ฐํ์ ์ธ์๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋๋ค(์: ํฌํธ ๋ฒํธ).
์๋ ์ปจํ ์ด๋๊ฐ ์๋ ๊ฒฝ์ฐ exec๋ฅผ ๋ฃจํธ๋ก ์คํํ ์ ์๋์ง ์ฌ๋ถ์ ๋ํด ๋น์ทํ ์ง๋ฌธ์ด ์์ต๋๋ค.
@liggitt ๋ช ํํ ํ์๋ฉด, Pod ์ฌ์์ ์ ์๋ ์ฌ์ฉ์ ID์ ์ญํ ์ ๋ณ๊ฒฝ๋์ง ์๊ณ ์๋ํ ํจ๊ณผ๋ฅผ ๊ณ์ ์ ์งํฉ๋๋ค. ์ปจํ ์ด๋(๋ฐ ํด๋น ํ๋ก์ธ์ค)๊ฐ ํด๋น ์ฌ์ฉ์๋ก ์์๋ฉ๋๋ค. ์ฌ๊ธฐ์ ์ ๊ธฐ๋ ๋ฌธ์ ๋ (์ด๋ฏธ) ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ๋ฃจํธ๋ก ์คํํ๊ฑฐ๋ ์ฃผ๋ก ๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ์คํํ ์ ์๋ ์๋ ์ต์ ์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ ์ ๊ธฐ๋ ๋ฌธ์ ๋ (์ด๋ฏธ) ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ๋ฃจํธ๋ก ์คํํ๊ฑฐ๋ ์ฃผ๋ก ๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ์คํํ ์ ์๋ ์๋ ์ต์ ์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์์ ์ ์ฌ์ฉ์๊ฐ ์ปจํ ์ด๋๋ฅผ ๋ฃจํธ๋ก ์คํํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ปจํธ๋กค์ด ๋ฃจํธ๋ก ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ๊ธฐ์๋ ์ ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
@liggitt ์ฃ์กํฉ๋๋ค. ๋ ๋ช ํํ๊ฒ ์ค๋ช ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์์ ์๊ฒฌ๊ณผ ๊ด๋ จํ์ฌ ๋ค์์ ์๋ํ์ญ์์ค.
jordan@gke-my-default-pool-dsioiaag-i9f3 ~ $ docker exec -it -u root myKafkaContainer bash
root@kafka-0:/# echo "I've exec'd into my container as $(whoami) despite defining the kafka user in pod.spec...."
I've exec'd into my container as root despite defining the kafka user in pod.spec....
root@kafka-0:/#
์ด๊ฒ์ด GKE ๊ด์ ์์ ์ด๋ฏธ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ํ์ธํ ํ(์ฌ๊ฐํ๊ฒ ์ฑ๊ฐ์ ๋ฐฉ์์ด์ง๋ง) ์ด๋ค ์๋ก์ด ๋ณด์ ๋ฌธ์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๊น?
๋ฌธ์ ๋ ํ์ฌ ์กด์ฌํ์ง ์๋ kubernetes API๋ฅผ ํตํด ๊ถํ์ ๋ ธ์ถํ๋ ๊ฒ์ ๋๋ค. ์ฌ์ฉ์๊ฐ API๋ฅผ ํตํด ์ํฌ๋ก๋๋ฅผ ์คํํ ์ ์๊ณ ๋ ธ๋์ ๋ํ ssh ์ก์ธ์ค๊ฐ ํ์ฉ๋์ง ์๋ ๊ฒ์ ์ ์์ ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ API๋ฅผ ํตํด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@liggitt ์ ๋์ ์ผ๋ก ๋ง์ต๋๋ค. ๋ฐ๋ผ์ ๋ณด์ ์ํฅ์ ๋ฒ์๋ฅผ _node_ ์ก์ธ์ค๋ก ์ขํ์ผ๋ฏ๋ก ์ฐ๋ฆฌ( @johnjjung ๋ฐ ๊ธฐํ)๋ ๋ง์นจ๋ด ์คํ ๊ฐ๋ฅํ ๋ด์ฉ์ ๋ํด ์ด ํ ๋ก ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. GKE ํ๋ซํผ์์ ๋ฃจํธ๋ก ์คํํ๊ธฐ ์ํด kubectl ํ๋ฌ๊ทธ์ธ์ ์์ํ์ต๋๋ค. AWS์ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ง๋๋ ค๋ฉด ์ฝ๊ฐ์ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค. @johnjjung ๊ทธ๋๋ ๋๋ผ ์ํฅ์ด ์๋์?
@liggitt ํธ์งํ ๋ด์ฉ์ ๋ฐฉ๊ธ ๋ณด์๋๋ฐ ์์ผ๋ก ์ ์ฉํ ๊ฒ์ ๋๋ค. ๊ฐ์ฌ ํด์.
๊ด๋ จ ํ ๋ก ์ ๋ณ๋๋ก ์ง์ ๋ ์ฌ์ฉ์ ID๋ฅผ ํฌํจํ์ฌ ๊ธฐ์กด ํฌ๋์์ ์์์ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๋๋ก ํ๋ ์ ์( https://github.com/kubernetes/community/pull/1269 )์ ์ฐธ์กฐํ์ญ์์ค.
์คํํ๋ ค๋ ๊ฒ์ ๋ณด์ ์ธก๋ฉด์ด ์๋ ์ปจํ ์ด๋์์ ๋ฉ์ด์ง์๋ก ์ ์ฒด ์ฌ์์ด ๊ธฐ์กด ์น์ธ ๋ฉ์ปค๋์ฆ์ ์ํด ์ผ๊ด๋ ์ปจํ ์ด๋๋ก ๊ฒ์ฆ๋ ์ ์๋ค๋ ๊ฒ์ด ๋ ์ค์ํฉ๋๋ค.
@jordanwilson230 ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฒํ ํ๋ค๊ฐ kubectl exec ๋ช ๋ น์ ๋ํ ํตํฉ ์ง์ ์ ์ฐพ์์ต๋๋ค. ์ด๋ ์ข์ ์ถ๋ฐ์ ์ ๋๋ค. docker๋ฅผ ํ์ฉํ ์ ์๋ ๋ค๋ฅธ kubernetes ์ฝ๋๋ฒ ์ด์ค์์ ์ด๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ ํ๋๊ทธ. ์ฆ, ์ด๋๊ฐ์์ ์์ํ์ฌ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์/ํฌ๋ ๋ณด์ ์ ์ฑ ๋ฑ์ผ๋ก ์ด ๋ฌธ์ ๋ก ๋ค์ ๋์๊ฐ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ ๋ฒ์ ํ ๋จ๊ณ์ฉ.
๋๊ตฌ๋ ์ง kubernetes๊ฐ docker --user
ํ๋๊ทธ๋ฅผ ์คํํ๋ ์์น๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์์น๋ฅผ ์๊ณ ์๋ค๋ฉด ๋์์ด ๋ ๊ฒ์
๋๋ค.
์๋
ํ์ธ์ @johnjjung์
๋๋ค. ์๋ ์์ ์(<1.6) Kubernetes kubelets
๋ Docker๋ฅผ ์ง์ ์ฌ์ฉํ์ผ๋ฉฐ ์ด์ ๊ฐ์ ์ต์
์ ์ ๋ฌํ ์ ์์์ต๋๋ค. ์ด์ ์ฌ๋ฌ ๋ฐํ์์ ์ง์ํ๋ ํ์ค ์ธํฐํ์ด์ค์ธ CRI๊ฐ ์์ต๋๋ค. Docker์ ๊ฐ์ ๋ฐํ์์ ์ ๋ฌํ ์ ์๋ ๋ช
๋ น์ ๊ฒฐ์ ํ๋ ๊ฒ์ CRI์ ๊ธฐ๋ฅ์
๋๋ค.
Kubernetes๋ ๋ค์ํ ์ปจํ
์ด๋ ๋ฐํ์( dockershim
+Docker+ containerd
, cri-containerd
+ containerd
, rkt, cri-o, lxd, Frakti ๋ฑ)์ ๋ฌด์์ ํด์ผ ํ๋์ง ์๋ ค์ค๋๋ค. CRI ์ธํฐํ์ด์ค ๋ฅผ ์ฌ์ฉํ์ญ์์ค. cri-o
๋ฐํ์ ๊ตฌํ์ ์ํด ์ง์ ๋๋ dockershim
๋๋ cri-containerd
์ ๊ฐ์ shim์ ํตํด. ๋ฐ๋ผ์ ์ฌ๊ธฐ์์ ์ํ๋ ์์
์ ์ํํ ์ ์์ผ๋ ค๋ฉด(์ปจํ
์ด๋๊ฐ ์์๋ ๊ฒ๊ณผ ๋ค๋ฅธ ์ฌ์ฉ์๋ก ์คํ ์ค์ธ ๊ธฐ์กด ์ปจํ
์ด๋์ ํ๋ก์ธ์ค ์ถ๊ฐ) ๋จผ์ ํด๋น ์ต์
์ ์ง์ํ๋๋ก CRI ์ฌ์ ์ ํ์ฅํด์ผ ํฉ๋๋ค(์: ExecSync
๋ uid ์ต์
์ด ํ์ํ๊ณ LinuxContainerSecurityContext
๋ ๊ธ์งํ์ง ์์์ผ ํฉ๋๋ค. @liggitt ๊ฐ ์์์ ๋ง์ด ๋งํ ๊ฒ ๊ฐ์ต๋๋ค).
๊ทธ๋ฐ ๋ค์ ๊ฐ ์ปจํ
์ด๋ ๋ฐํ์ ๋๋ ๋ฐํ์ shim์ ๊ณ์ ์งํํ์ฌ ์ด์ ๋ํ ์ง์์ ๊ตฌํํ ์ ์์ต๋๋ค. Docker์ ๊ฒฝ์ฐ ์ด๋ dockershim
๊ตฌํ์ ํ์ฅํ์ฌ CRI ์ฌ์/์ธํฐํ์ด์ค์ ๋ํ ์ถ๊ฐ๋ฅผ ์ง์ํจ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ dockershim
+Docker๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ cri-containerd
+ containerd
๊ฐ ์ถ๊ฐ ๋ฆด๋ฆฌ์ค๋ ๊ฒ์ผ๋ก ์์ํ๋ฏ๋ก cri-containerd
์ ์ง์คํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
http://blog.kubernetes.io/2017/11/containerd-container-runtime-options-kubernetes.html
https://github.com/kubernetes/community/blob/master/contributors/devel/container-runtime-interface.md
๋ํ ๋๋ฒ๊ทธ ์ปจํ
์ด๋ ์ ์ ์ผ๋ก ์ด ํ ๋ก ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ก์ด kubectl debug
๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋์ผํ Pod ๊ณต๊ฐ์์ ๋ ๋ฒ์งธ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ ์์ด์ผ ํฉ๋๋ค. ์ถ๊ฐ ์ปจํ
์ด๋๋ฅผ ๋ค๋ฅธ ์ฌ์ฉ์๋ก ์คํํ ์ ์์ต๋๊น?
@whereisaaron ๊ทํ์ ๊ฒ์๋ฌผ์ ํฐ ๋์์ด ๋ฉ๋๋ค. ์์ธํ ์ ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@whereisaaron ์์ธํ ๋ด์ฉ ๊ฐ์ฌํฉ๋๋ค. ๋ด๊ฐ ๋น์ ์ ์ดํดํ๋ค๋ฉด, ๋๋ฒ๊ทธ ์ ์(๋ง์ผ ๊ทธ๊ฒ์ด ํต๊ณผ๋๋ค๋ฉด)์ด ํ๋ฃจ๊ฐ ๋๋ ๋ ์ด๊ฒ์ ๋๋ ๊ฐ์ฅ ์ข์ ์ฅ์๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ ์น์ธ ์ฌ๋ถ๋ ํ์คํ์ง ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํํ ์ปจํ ์ด๋๋ฅผ ํด๋น ํฌ๋์ ์ฐ๊ฒฐํ์ฌ ํด๋น ํฌ๋๋ฅผ ๋๋ฒ๊ทธํ ์ ์์ง๋ง(๊ต์ฅํ ๋ค๋ฆฝ๋๋ค) ์๋ ์ปจํ ์ด๋ ๋ด์์ ์ฌ์ฉ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๊น? ๋ํ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ cri-containerd๋ฅผ ์ฌ์ฉํ์ฌ ํจ์น๋ฅผ ์งํํด์ผ ํฉ๋๊น?
์ด๊ฒ์ด ์์ง ๊ตฌํ๋์ง ์์ ์ด์ ์ค ํ๋๋ ๋ค๋ฅธ ์์ญ์์ ์์ ํ๋ ์ฌ๋ฌ ๊ทธ๋ฃน์ด ์๋ ์ฌ๋ฌ ์ ์ฅ์๊ฐ ์๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@johnjjung ๋๋ฒ๊ทธ ์ปจํ ์ด๋๊ฐ Kubernetes 1.9์์ '์ํ' ๊ธฐ๋ฅ์ผ๋ก ๊ตฌํ๋๋๋ก ์น์ธ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค(ํด๋น ๊ธฐ๋ฅ์ ๋ช ์์ ์ผ๋ก ํ์ฑํํ์ง ์๋ ํ ํด์ ๋จ). ๋๋ ๊ทธ๋ค์ด 1.9์ ๊ทธ๊ฒ์ ๋ง๋ค์๋ค๋ผ๊ณ ์๊ฐํ์ง ์๋๋ค. ๋ฐ๋ผ์ ์๋ง๋ 1.10 ๋๋ ๊ทธ ์ดํ๊น์ง๋ ์๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ์ดํดํ๋ ๊ฒ์ฒ๋ผ ๋๋ฒ๊ทธ ์ปจํ ์ด๋๋ '๋๋ฒ๊น ์ค์ธ' ๋์ ํฌ๋ ๋ด์์ ํ๋ก์ธ์ค๋ก ์คํ๋๋ฏ๋ก ํฌ๋์ ๋์ผํ ์ปค๋ ๋ณด์ ์ปจํ ์คํธ์ ์์ผ๋ฉฐ ์์ฒด ์ปจํ ์ด๋ ์ด๋ฏธ์ง/ํ์ผ ์์คํ ๋ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ๋๋ฒ๊ทธํ๊ณ Pod์ ์๋ ๋ชจ๋ ๋ณผ๋ฅจ์ ํ์ฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ๋ณด์ ์ปจํ ์คํธ์ ์์ผ๋ฏ๋ก Pod์์ ์ฌ์ฉํ ์ ์๋ uid์ ๋ํด ๋์ผํ ์ปค๋ ์ ํ ์ ํ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๊ฑฐ๊ธฐ์ ๋ํด ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์์ ์ค์ธ #sig-node ์ฌ๋๋ค์๊ฒ ๋ฌผ์ด๋ด์ผ ํฉ๋๋ค.
CRI ํ์ฅ๊ณผ ๊ด๋ จํ์ฌ ์ด๋ฅผ ์ํํ๋ ค๋ฉด #sig-node์ ๋ง์ ์ง์์ด ํ์ํ๊ณ cri-containerd
๋ฐ cri-o
์ ๊ฐ์ ๋ค์ํ ๋ฐํ์ ํ๋ก์ ํธ์ ๋ฐ๋๊ฐ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ง์์ ๊ตฌํํด์ผ ํฉ๋๋ค.
์ค๋ ์๊ฐ์ด ๋ง์ง ์์์ง๋ง GKE์์ ์คํ๋๋ ์ฌ์ฉ์๋ฅผ ์ํด ์ฌ์ฉ์ [-u] ํ๋๊ทธ๋ก ์คํํ๊ธฐ ์ํ ์์ kubectl ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค์์ต๋๋ค.
https://github.com/jordanwilson230/kubectl-plugins
์ค์น ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ํด๋น ํ๋ฌ๊ทธ์ธ ๋๋ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ์ ์์ ๋กญ๊ฒ ์์ /๋ณต์ฌํ์ญ์์ค. @johnjjung ๋ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ ๋ง์ ์์ ์ ์ํํ ์ ์์ ๋๊น์ง ์์ ์๋ฃจ์ ์ผ ๋ฟ์ ๋๋ค.
GCP์ ๊ด๋ จ์ด ์๋ ๋์ฒด ์๋ฃจ์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ SSH๋ฅผ ์ ํ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ kubectl ์์ ๋ง ํ์ํฉ๋๋ค.
kubectl-exec-user์ ํฌ๋๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ์ฌ๋์ด ์ ธ์ ์์ฒญํ๋ ์ปจํ ์ด๋์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํฉ๋๊น?
kubernetes API๊ฐ ํ์ฉํ๋ ์ก์ธ์ค๋ก ๋์ฒด๋ฉ๋๋ค. RBAC๊ฐ ์ปจํ ์ด๋๊ฐ ๋ ธ๋ ๋์ปค ์์ผ์ ๋ง์ดํธํ๋๋ก ํ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ์๋ํฉ๋๋ค.
SSH๋ฅผ ์๊ตฌํ์ง ์๊ณ ์ปจํ ์ด๋์์ ๋ ธ๋๋ก ๋๊ฐ๋ ์ฐฝ์์ ์ธ ๋ฐฉ๋ฒ์ ๋ด ์๋ฃจ์ ์ ๊ณ ๋ คํ์ญ์์ค. ๋ชจ๋ ๋์ผํ ๋ณด์ ์กฐ๊ฑด์ ๊ณ ๋ คํด์ผ ํ์ง๋ง ์ต์ํ kubernetes API ์๋ฒ ์ ํ ์ฌํญ์ ์ค์ํฉ๋๋ค.
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํ๋ ๊ฒ์ด ์์ ํ๋ค๋ฉด /close
๋ก ์ข
๋ฃํ์ญ์์ค.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta ์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
/remove-lifecycle ๋ถ์ค
์ด๊ฒ์ ๋งค์ฐ ํ์ํ ์ผ์ ๋๋ค. ๋ณด์ ์์์ด ์๊ณ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ๋ฃจํธ๊ฐ ์๋ ๊ฒ์ผ๋ก ์คํํ๋ ๊ฒ์ ๋ํด ๋ถ์ด์ต์ ๋ฐ๋ ๊ฒ์ ์ฟจํ์ง ์์ต๋๋ค. (https://github.com/kubernetes/kubernetes/issues/30656#issuecomment-272055993)
/ ์๋ช ๋ ธ๋
https://github.com/kubernetes/kubernetes/pull/59092์์ ์ด ๊ธฐ๋ฅ์ ๋ํด ๋ฆฌ๋ฒ ์ด์ค๊ฐ ํ์ํ ๋ฏธ์์ฑ PR์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ์ ์ง์ด๋ค๊ณ ๋ง๋ฌด๋ฆฌํ ์ ์๋ ์ฌ๋์ด ์์ต๋๊น? CC @louyihua
+1
( @SimenB ์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋๋ฒ๊น
๋ชฉ์ ์ผ๋ก ์ค์นํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ "๋์ปค๋ฅผ ์ง์ ์ฌ์ฉ" ํํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.)
์ด๊ฒ์ด ์ ๋๋ก ์ง์๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ค๊ฐ ์๋ฃจ์
์ su-exec
(Dockerfile ๋๋ K8s ๋งค๋ํ์คํธ์์)๋ก ๋์ปค CMD๋ฅผ ์คํํ๋ ๊ฒ์
๋๋ค. su-exec์ ๋ฌด๊ฒ๋ ๊ณ ์ 20k(์ํ์ธ์์)์ ๋ถ๊ณผํ๋ฉฐ kubectl exec์ ๋ฃจํธ๋ฅผ ์ ์งํ๋ฉด์ ์ฑ์ด ๊ถํ ์์ด ์คํ๋ฉ๋๋ค.
+1
๋๋ ๋ํ ๊ทธ๋ฌํ -u ํ๋๊ทธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. +1.
๊ทธ๋ฅ ์์ด๋์ด:
์๋ฅผ ๋ค์ด --conainer-type
์ ๊ฐ์ ๊ฒ์ ์ง์๋๋ ๋ชจ๋ ์ธ์๋ฅผ ๊ธฐ๋ณธ ์ปจํ
์ด๋ ๊ตฌํ์ ์ง์ ์ ๋ฌํ ์ ์๋๋ก ํ๋ ํฐ ์ฅ์ ์ด ๋ ๊ฒ์
๋๋ค.
kubectl exec --container-type=docker -it -u 0 NAME
์ด๋ ๊ฒ ํ๋ฉด kubectl์์ ์ปจํ ์ด๋ ๋ฐํ์์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ค ์ผ๋ถ๋ง ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ๋ํ ์ง์๋๋ ๋ชจ๋ ์ปจํ ์ด๋ ์ ํ์ ๋ํด kubelet ๊ณ์ธต์์ ์ปจํ ์ด๋๊น์ง ์ง์๋๋ ์ธ์๋ฅผ ๋งคํํ๊ณ ์ถ์ํํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ ธ๋ ฅ์ ์ ์ฝํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์์ฝํ์๋ฉด --container-type
ํ๋๊ทธ๊ฐ ์์ผ๋ฉด kubectl์์ ์ถ์ํ๋ ์ธ์๋ง ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ธฐ๋ณธ ์ปจํ
์ด๋ ์ ํ์ ์์ ํ ํฌ๋ช
ํฉ๋๋ค. ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ
์ด๋ ํน์ ์ธ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ปจํ
์ด๋ ์ ํ์ ๋ฐ์ธ๋ฉํ ์ง ์ฌ๋ถ๋ kubectl ์ฌ์ฉ์์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.
BTW: @SimenB ์๊ฒ ๋
ธ๋์ sshํ๊ณ Docker๋ฅผ ์ง์ ์ฌ์ฉํ๋ผ๋ ํํธ๋ฅผ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ ์ผ์์ ์ผ๋ก ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. Minikube๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ์ํํ์ฌ ๋ฃจํธ๋ก ๋ก๊ทธ์ธํ ์ ์์์ต๋๋ค.
minikube ssh "docker exec -it -u 0 <container-id> bash"
์ด์ฉ๋ฉด ์ด๊ฒ์ ๋๊ตฐ๊ฐ์๊ฒ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋ถ์พ๊ฐ์ ์๋ํํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ ์คํฌ๋ฆฝํธ. ๋ ธ๋์ ๋ํ SSH ์ก์ธ์ค๊ฐ ํ์ํฉ๋๋ค.
์ฉ๋ฒ:
```./shell-into-pod-as-root.sh
./shell-into-pod-as-root.sh ํฌ๋ ์ด๋ฆ
./shell-into-pod-as-root.sh ํฌ๋ ์ด๋ฆ sh
Enjoy!
์ค์ -xe
POD=$(kubectl ์ค๋ช
ํฌ๋ "$1")
NODE=$(์์ฝ "$POD" | grep -m1 ๋
ธ๋ | awk -F'/' '{ํ๋ฆฐํธ $2}')
CONTAINER=$(์์ฝ "$POD" | grep -m1 '์ปจํ
์ด๋ ID' | awk -F 'docker://' '{์ธ์ $2}')
CONTAINER_SHELL=${2:-bash}
์ธํธ +e
ssh -t "$NODE" sudo docker exec --user 0 -it "$CONTAINER" "$CONTAINER_SHELL"
๋ง์ฝ [ "$?" -gt 0 ]; ๊ทธ ๋ค์์
์ค์ +x
echo 'ํ๋์ SSH๋ก ์ฐ๊ฒฐํ์ง ๋ชปํ์ต๋๋ค. "$PATH์์ ์คํ ํ์ผ์ ์ฐพ์ ์ ์์"๊ณผ ์ ์ฌํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด ๋ค์์ ์๋ํ์ญ์์ค.'
echo "$0 $1 ์ฌ"
ํ์ด
```
@Nowaker ์ด๋ป๊ฒ ๋ค์์คํ์ด์ค๋ฅผ ์ฒ๋ฆฌํฉ๋๊น?
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํ๋ ๊ฒ์ด ์์ ํ๋ค๋ฉด /close
๋ก ์ข
๋ฃํ์ญ์์ค.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta ์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
/remove-lifecycle ๋ถ์ค
๋๋ ๋ํ ๊ทธ๋ฌํ -u ํ๋๊ทธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. +1.
๊ทธ๋ฅ ์์ด๋์ด:
์๋ฅผ ๋ค์ด
--conainer-type
์ ๊ฐ์ ๊ฒ์ ์ง์๋๋ ๋ชจ๋ ์ธ์๋ฅผ ๊ธฐ๋ณธ ์ปจํ ์ด๋ ๊ตฌํ์ ์ง์ ์ ๋ฌํ ์ ์๋๋ก ํ๋ ํฐ ์ฅ์ ์ด ๋ ๊ฒ์ ๋๋ค.
kubectl exec --container-type=docker -it -u 0 NAME
์ด๋ ๊ฒ ํ๋ฉด kubectl์์ ์ปจํ ์ด๋ ๋ฐํ์์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ค ์ผ๋ถ๋ง ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ๋ํ ์ง์๋๋ ๋ชจ๋ ์ปจํ ์ด๋ ์ ํ์ ๋ํด kubelet ๊ณ์ธต์์ ์ปจํ ์ด๋๊น์ง ์ง์๋๋ ์ธ์๋ฅผ ๋งคํํ๊ณ ์ถ์ํํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ ธ๋ ฅ์ ์ ์ฝํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์์ฝํ์๋ฉด
--container-type
ํ๋๊ทธ๊ฐ ์์ผ๋ฉด kubectl์์ ์ถ์ํ๋ ์ธ์๋ง ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ธฐ๋ณธ ์ปจํ ์ด๋ ์ ํ์ ์์ ํ ํฌ๋ช ํฉ๋๋ค. ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ ์ด๋ ํน์ ์ธ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ปจํ ์ด๋ ์ ํ์ ๋ฐ์ธ๋ฉํ ์ง ์ฌ๋ถ๋ kubectl ์ฌ์ฉ์์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.BTW: @SimenB ์๊ฒ ๋ ธ๋์ sshํ๊ณ Docker๋ฅผ ์ง์ ์ฌ์ฉํ๋ผ๋ ํํธ๋ฅผ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ ์ผ์์ ์ผ๋ก ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. Minikube๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ์ํํ์ฌ ๋ฃจํธ๋ก ๋ก๊ทธ์ธํ ์ ์์์ต๋๋ค.
minikube ssh "docker exec -it -u 0 <container-id> bash"
์ด์ฉ๋ฉด ์ด๊ฒ์ ๋๊ตฐ๊ฐ์๊ฒ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ - docker exec๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ํํ๋ ๊ฒ์ ์ฌ์ํ ์ผ์ ๋๋ค. ๋๋ถ๋ถ ์ผ๊ด์ฑ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋ค์ค ์ฌ์ฉ์ ๋์ปค ์ปจํ ์ด๋๋ ์ค์ ๋ก ์ฝ๊ฐ์ ๋๋ด์ ๋๋ค. VM์ ์ปจํ ์ด๋๋ก ๋ณํํ๋ ๊ฒ์ ์ ์ฐ์ ๋๋ค.
ํ์ฌ grafana๋ก ์ด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค. ์ด ์์ ์ ์๊ฐ์ด ์ง๋๋ฉด ์ง๋ ๊ฒ์ ๋๋ค.
@bryanhuntesl ๋ ธ๋์ ์๋ ssh'ing์ด ํ์ํ์ง ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ๋ ผ์๊ฐ ์์ต๋๋ค. ์ด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํด ๋ณผ ์๋ ์์ต๋๋ค -- https://github.com/jordanwilson230/kubectl-plugins
์ฌ์ฉ์๊ฐ ๋
ธ๋์ sshํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์ฌ์ฉ์์๊ฒ ๋
ธ๋์ ๋ํ ssh ์ก์ธ์ค๋ฅผ ํ์ฉํ๊ณ ๋์ปค์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๋ณด์ ์ํ์ด ๋ ์ ์์ต๋๋ค. Docker๋ ๋ค์์คํ์ด์ค ๋๋ k8s ๊ถํ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฆ
๋๋ค. ์ฌ์ฉ์๊ฐ docker exec
๋ฅผ ์คํํ ์ ์์ผ๋ฉด _any_ ๋ค์์คํ์ด์ค์ ํฌ๋๋ก ์คํํ ์ ์์ต๋๋ค.
SSH๋ ์ ์ ํ ์๋ฃจ์ ์ด ์๋๋๋ค. IMHO.
์ฌ์ฉ์๊ฐ ๋ ธ๋์ sshํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์ฌ์ฉ์์๊ฒ ๋ ธ๋์ ๋ํ ssh ์ก์ธ์ค๋ฅผ ํ์ฉํ๊ณ ๋์ปค์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๋ณด์ ์ํ์ด ๋ ์ ์์ต๋๋ค. Docker๋ ๋ค์์คํ์ด์ค ๋๋ k8s ๊ถํ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฆ ๋๋ค. ์ฌ์ฉ์๊ฐ
docker exec
๋ฅผ ์คํํ ์ ์์ผ๋ฉด _any_ ๋ค์์คํ์ด์ค์ ํฌ๋๋ก ์คํํ ์ ์์ต๋๋ค.SSH๋ ์ ์ ํ ์๋ฃจ์ ์ด ์๋๋๋ค. IMHO.
๋๋ ๋ ๋ฒ์งธ๋ก, ๋์ญ ์ธ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ง์ ์ก์ธ์ค ๊ถํ์ ์ป๋ ๊ฒ์ ์ ์ฌ์ ์ธ ๊ณต๊ฒฉ ์์ญ์ ์ฆ๊ฐ์ํจ๋ค๋ ์๊ฒฌ์ ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ ธ๋์ sshํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์ฌ์ฉ์์๊ฒ ๋ ธ๋์ ๋ํ ssh ์ก์ธ์ค๋ฅผ ํ์ฉํ๊ณ ๋์ปค์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๋ณด์ ์ํ์ด ๋ ์ ์์ต๋๋ค. Docker๋ ๋ค์์คํ์ด์ค ๋๋ k8s ๊ถํ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฆ ๋๋ค. ์ฌ์ฉ์๊ฐ
docker exec
๋ฅผ ์คํํ ์ ์์ผ๋ฉด _any_ ๋ค์์คํ์ด์ค์ ํฌ๋๋ก ์คํํ ์ ์์ต๋๋ค.SSH๋ ์ ์ ํ ์๋ฃจ์ ์ด ์๋๋๋ค. IMHO.
SSH @gjcarneiro๊ฐ ํ์ํ์ง ์์ ์๋ฃจ์ ์ด ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์๋ ๋จผ์ Compute Metadata์ ๊ณต๊ฐ SSH ํค๋ฅผ ์ถ๊ฐํด์ผ ๋ ธ๋(GCP์ ๊ฒฝ์ฐ) @bryanhuntesl์ ๋ํ SSH ์ก์ธ์ค๊ฐ ํ์ฉ๋ฉ๋๋ค.
@liggitt ์ด ์ฃผ์ ๊ฐ ์์๋์ง 3๋ ์ด ์ง๋ฌ๋๋ฐ ๊ฒฐ๋ก ์?
์ด ์๋ฃจ์ ์ด ์ด์ ์ ์ธ๊ธ๋์๋์ง ํ์คํ์ง ์์ง๋ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ํํ ๊ฒ์ ๋ชจ๋ ์ปจํ ์ด๋์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ์๋ก ๋ก๊ทธ์ธํ๋ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ํ๋ฌ์ค ๋ชจ๋:
๋์ปค ํ์ผ:
USER root
RUN echo "su -s /bin/bash www-data" >> /root/.bashrc
# this exit statement here is needed in order to exit from the new shell directly or else you need to type exit twice
RUN echo "exit" >> /root/.bashrc
# /var/www is www-data's home directory
COPY motd.sh /var/www/.bashrc
motd.sh:
RED='\033[0;31m'
YELLOW='\033[0;33m'
echo -e "${RED}"
echo "##################################################################"
echo "# You've been automatically logged in as www-data. #"
echo "##################################################################"
echo -e "${YELLOW} "
echo "If you want to login as root instead:"
echo -e "$(if [ "$KUBERNETES_PORT" ]; then echo 'kubectl'; else echo 'docker'; fi) exec -ti $(hostname) -- bash --noprofile -norc"
TEXT_RESET='\033[0m'
echo -e "${TEXT_RESET} "
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํ๋ ๊ฒ์ด ์์ ํ๋ค๋ฉด /close
๋ก ์ข
๋ฃํ์ญ์์ค.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta ์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
/remove-lifecycle ๋ถ์ค
[exec-as] kubectl ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ:
kubectl krew install exec-as
์์์ ์ธ๊ธํ๋ฏ์ด ์ด๊ฒ์ ๋ณด์ ์ํฅ์ ๋ํ KEP์ ๋ ผ์๊ฐ ์ ๋ง๋ก ํ์ํฉ๋๋ค. ๊ทธ๊ฒ์ด ๋ฐ๋์ ๋์ ์๊ฐ์ ์๋๋๋ค. ๋จ์ง ์์คํ ์ ์๋นํ ์ํฅ์ ๋ฏธ์น๊ณ ์ฝ๋ฉ์ ์์ํ๊ธฐ ์ ์ ์ค๊ณ๊ฐ ํ์ํฉ๋๋ค.
์ด๋ฅผ ์ํด KEP๋ฅผ ๊ฒํ ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ ๋๋ฆฌ๊ณ ์ถ์ง๋ง ํ์คํ ๋ฌธ์ ๊ฐ ์๊ณ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
@miracle2k -
su -m -l u22055
ํด๋ณด์ จ๋์?-m
๋ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ณด์กดํด์ผ ํฉ๋๋ค.
@miracle2k (trying to exec as root user)
์๋ํ์ง๋ง No passwd entry for user '0'
์ป์์ต๋๋ค.
$ su -m -l 0
No passwd entry for user '0'
์ฌ๋ณด์ธ์. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด "kpexec" CLI๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค.
ํผ๋๋ฐฑ์ ์ฃผ์ธ์.
ํฌ๋๋ฅผ ์คํํ๋ ๋ ธ๋์์:
docker exec -u 0 -it \
`kubectl -n NAMESPACE get pod \
-l label=value \
-o jsonpath='{range .items[*].status.containerStatuses[*]}{.containerID}{"\n"}{end}' | cut -d/ -f3` \
sh
@cristichiru ๋ด๊ฐ ์ด์ํ ๋๋ถ๋ถ์ ํด๋ฌ์คํฐ์๋ ๊ธฐ๋ณธ ๋ ธ๋์ ๋ํ ์ง์ ์ ธ ์ก์ธ์ค๊ฐ ์์ต๋๋ค. ๋๋ ์ข ์ข ๋ค๋ฅธ ์ฌ๋๋ค๋ ๋ง์ฐฌ๊ฐ์ง๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ kubectl ํ๋ฌ๊ทธ์ธ๊ณผ ๊ฐ์ ์ฌ๊ธฐ์ ์ ์๋ ๋ค๋ฅธ ์ต์ ์ด ์ ์ผํ ๋ฐฉ๋ฒ์ผ ์ ์์ต๋๋ค. ๋์ปค ๋ฐ๋ชฌ์ ๋ํ ์ก์ธ์ค๋ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
+1
KEP ํ ํ๋ฆฟ์ https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template ์ ์์ต๋๋ค.
ํ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ผ๋ง๋ ๋ง์ ์์
์ธ์ง ์ ์ ์์ ๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ... ๋ค ์ ๋ ์ด ๊ธ์ ์ฐ๋ ์ฌ๋์ด ์๋๋๋ค. ํ
ํ๋ฆฟ์ ์ฒดํฌ๋ฆฌ์คํธ ํญ๋ชฉ 1์์ ์ ๋ฅผ ์์ด๋ฒ๋ ธ์ต๋๋ค **Pick a hosting SIG.**
ํ๋ก์ธ์ค์ ๋ ์ต์ํ ์ฌ๋์ ์ํฉ๋๋ค ์ด์์ ์์ํ๋ ค๋ฉด? ๋๋ ๋จ์ง ํ์ฑ Kubernetes ์ฌ์ฉ์๋ก์ ์ ์์ ์ง์ํ๊ธฐ ์ํด ๋ด ๐๋ฅผ ๋ถ์ผ ์๋ฆฌ๋ฅผ ์ํฉ๋๋ค.
์ด๊ฒ์ ๊ฒฝ์ํ๊ฒ ๋ค๋ฆด์ง ๋ชจ๋ฅด์ง๋ง ์ด ๋ฌธ์ ์ ๋ํด ์ฝ 6๊ฐ์ ์ ์ฝ๋ฉ/์คํฌ๋ฆฝํธ/๋ฌธ์ํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ณด์์ผ๋ฏ๋ก ๋๋ณด๋ค ์ ์๋ ๊ธฐ์ ์๋ฃจ์ ์ ์ด์์ ์์ฑํ๋ ๋ฐ ๋ ๋์ ์์น์ ์๋ ์ฌ๋๋ค์ด _์์ต๋๋ค_ ์์ต๋๋ค.
๋๋ Kubernetes๊ฐ PROCESS ๋๋ฌธ์ ํฉ๋ฆฌ์ ์ธ ์๊ฐ ์์ ์๋ฌด๊ฒ๋ ๋ฌ์ฑํ ์ ์๋ ์๋ก์ด OpenStack์ด ๋ ๊ฒ์ฒ๋ผ ๋๋๋๋ค.
@VikParuchuri ์ ์๋ ์ฌ์ฉ ์ฌ๋ก๋ ์ปจํ ์ด๋ ์์ฒด๊ฐ ์ ๋ขฐํ ์ ์๋ ์ฌ์ฉ์๋ก ์คํ ์ค์ด๋๋ผ๋ ๋ฃจํธ๋ก ์ปจํ ์ด๋๋ฅผ ๋๋ฒ๊ทธ/๋ฌธ์ ํด๊ฒฐํ๋ ๊ฒ์ ๋๋ค. ์ข์ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค. ํด๊ฒฐ๋๋ฉด ๋ฃจํธ๊ฐ ์๋ ์ฌ์ฉ์๋ก ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๐
docker exec
์ ๋ํ KEP๋ฅผ ์ค๋นํ๊ธฐ ์ ์ k8s ์์ ๋๋ฒ๊ทธ ์ปจํ
์ด๋ ๊ฐ ์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ์ง ์๋์ง ๋น ๋ฅด๊ฒ ํ์ธํ์ญ์์ค.
docker exec --user
๋ ํด๋น ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํด๊ฒฐํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ ๋ฟ์ด๋ฉฐ ์ฌ์ฉ ์ค์ธ ๋์ปค ๋ฐํ์์ ์์กดํฉ๋๋ค. k8s๊ฐ containerd
๋ก ์ด๋ํจ์ ๋ฐ๋ผ dockerd
๋ฐ ์น๊ตฌ๋ ์ ํ ์ฌํญ์ด๊ฑฐ๋ ๋ ์ด์ ์ค์น๋์ง ์์์ผ๋ฏ๋ก ๋ฏธ๋ ์งํฅ์ ์ธ ์ต์
์ด ์๋ ์ ์์ต๋๊น?
์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํด๊ฒฐํ๋ ๋ ๋ค๋ฅธ k8s ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ์์ ๋๋ฒ๊ทธ ์ปจํ
์ด๋์
๋๋ค. ์ ๋ขฐํ ์ ์๋ ์ฌ์ฉ์๋ก ์คํ ์ค์ธ ์ปจํ
์ด๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋๋ฒ๊ทธ ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ ์ปจํ
์ด๋ ์ ๋์ผํ ํ๋ก์ธ์ค ๊ณต๊ฐ์์ ์์ ์ปจํ
์ด๋๋ฅผ ์์ํ ์ ์์ง๋ง ๋ฃจํธ(๋๋ ๋๊ตฌ๋ ์ง)๋ก ์คํ๋ฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ exec ์ ๊ทผ ๋ฐฉ์์ ๋นํด ๋ช ๊ฐ์ง ์ค์ํ ์ด์ ์ด ์์ต๋๋ค. ํนํ ๋๋ฒ๊ทธ ์ปจํ
์ด๋์ ์ด๋ฏธ์ง์ ํ์ํ ๋ชจ๋ ๋๋ฒ๊ทธ ๋๊ตฌ ๋ฐ ์ ํธ๋ฆฌํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ (๐ .., ์ ์ฃ!) ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋นํ์ฌ ์ ํธ๋ฆฌํฐ ๋ฐ ํธ์ง๊ธฐ ๋ฑ์ผ๋ก ๋์ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ถํ๋ฆฌ๋ ๋์ , ๋์ ๋ฉ์ง ํฐ ์ค์์ค ๊ตฐ์ฉ ์นผ ๋๋ฒ๊ทธ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ๊ณ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฏธ์ง๋ฅผ ๊นจ๋ํ๊ฒ ์ ์งํ ์ ์์ต๋๋ค. . ๋์์ sh
๋ง ์๋ ๊ฒฝ์ฐ ๋๋ฒ๊ทธ ์ปจํ
์ด๋์์ bash
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋จ์ผ ๋ฐ์ด๋๋ฆฌ ์ปจํ
์ด๋ ๋๋ ๋ฐฐํฌ ์๋ ์ปจํ
์ด๋ ์ ๊ฐ์ด ์คํํ ์
ธ์ด ์ ํ ์๋ ์ปจํ
์ด๋๋ ๋๋ฒ๊ทธํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด busybox
๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ
์ด๋๋ฅผ ๋ฃจํธ๋ก ๋๋ฒ๊ทธํฉ๋๋ค.
kubectl alpha debug -it ephemeral-demo --image=busybox --target=ephemeral-demo
๋๋ ์ด๊ฒ์ด ์ปจํ
์ด๋๋ฅผ ๊ฒฉ๋ฆฌ๋ ํ๋ก์ธ์ค๋ก ์ทจ๊ธํ๊ณ , ์
ธ์ ๋ค์ด๊ฐ๋ ๋ฏธ๋ VM์ด ์๋๋ผ ๋๋ฒ๊น
์ ์ํด '์ฐ๊ฒฐ'ํ๋ค๋ ์ ์์ ํ๋ฆผ์์ด ๋ ๋์ ๋ชจ๋ธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋จ์ ์ ์ธ๋ถ ๋ง์ดํธ ๋๋ '๋น' ๋ง์ดํธ๋ฅผ ๊ณต์ ํ ์ ์๋ค๋ฉด ๋์์ ํ์ผ ์์คํ
์ ๊ฒ์ฌํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋ก์ธ์ค ๋ค์์คํ์ด์ค๋ฅผ ๋์๊ณผ ๊ณต์ ํ๋ฏ๋ก /proc/$pid/root
๋ฅผ ํตํด ๋์ ์ปจํ
์ด๋์ ํ์ผ ์์คํ
์ ์ก์ธ์คํ ์๋ ์์ต๋๋ค.
์์ ๋๋ฒ๊ทธ ์ปจํ
์ด๋๋ ์ด๋ฏธ PROCESS :-)๋ฅผ ํ์ํ๊ณ ๊ตฌํ๋์์ต๋๋ค. ์ด ์ปจํ
์ด๋๋ ~1.16 ๋ฐ 1.18 kubectl
์ alpha debug
๋ช
๋ น์ด ํฌํจ๋ ์ํ ๋ฒ์ ์
๋๋ค. ์ถ๊ฐ ์ ๋ณด:
์ฐธ์กฐ:
์ฌ๋ ค๊น์ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค @whereisaaron :) ๋๋ ๊ทธ๊ฒ์ด ๋ฌผ๊ฑด์ ๊ฝค ์ ํฌ์ฐฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ํ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ผ๋ง๋ ๋ง์ ์์ ์ ํ๋์ง ์ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ... ์, ๋๋ ์ด๊ฒ์ ์์ฑํ๋ ์ฌ๋์ด ์๋๋๋ค. ํ ํ๋ฆฟ์ ์ฒดํฌ๋ฆฌ์คํธ ํญ๋ชฉ 1์์ ์ ๋ฅผ ์์ด๋ฒ๋ ธ์ต๋๋ค . ํธ์คํ SIG๋ฅผ ์ ํํ์ญ์์ค. ํ๋ก์ธ์ค์ ๋ํด ๋ ์ ์๊ณ ์๋ ์ฌ๋์ด ์ด์์ ์์ํ๊ณ ์ถ์ต๋๊น? ๋๋ ๋จ์ง ํ์ฑ Kubernetes ์ฌ์ฉ์๋ก์ ์ ์์ ์ง์ํ๊ธฐ ์ํด ๋ด ๐๋ฅผ ๋ถ์ผ ์๋ฆฌ๋ฅผ ์ํฉ๋๋ค.
KEP ๋ ์๋นํ ์ด๋ ค์ธ ์ ์์ง๋ง ์ด์ ๋ํ ์ฝ๊ฐ์ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๊ณ ์ ํฉ๋๋ค. Kubernetes ์์ฒด๋ ๋งค์ฐ ํฝ๋๋ค. ์ ์ฌ์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๊ณ ์ ๊ธฐ๋ฐ๊ณผ ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ๋งค์ฐ ํฐ ํญ๋ฐ ๋ฐ๊ฒฝ์ ๊ฐ์ต๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ฌ์ ๋ณด์ด์ง๋ง ๋ ๊ทธ๋ฃน์ ๊ด๋ฒ์ํ๊ฒ ์ํฅ์ ๋ฏธ์น ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฝ๋ ๋ฒ ์ด์ค์ ์ผ๋ถ๋ฅผ SIG์ ์์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ ์ด์์ SIG๊ฐ ๊ธฐ๋ฅ์ ๋ํด ํฉ์ํ ์ ์๋ ๊ฒ์ KEP๋ฅผ ํตํด์์ ๋๋ค. ๊ธฐ๋ฅ์ด ์ํํ๋ ์์ ์ ๋ฐ๋ผ API ๊ฒํ ๋ฅผ ๊ฑฐ์ณ ํ์ฅ์ฑ ๋ฌธ์ ๋ฑ์ ํ๊ฐํ ์ ์์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ ์์ฐ๋ ์ ํ์ด ์ฑ๊ณตํ ๊ฐ๋ฅ์ฑ์ด ๊ฐ์ฅ ๋๊ณ SIG๊ฐ ๊ธฐ๊บผ์ด ์ง์ํ ์ ์๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ๋๋๋ก ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ์์ ์(๋ค)๊ฐ ์๋ฆฌ๋ฅผ ๋น์ธ ๊ฒฝ์ฐ, ์ด๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ์ฑ ์์ SIG์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ๋ฅ์ด ์์ ์ ์ธ ๊ฒ์ผ๋ก ์น๊ฒฉ๋ ๋ค์ ์ฌ์ฉ ์ค๋จ ํ๋๊ทธ๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ ์ฌ์ฉ ์ค๋จ ์ ์ฑ ์ ๋ฐ๋ผ ์ ๊ฑฐ๋๊ธฐ๊น์ง ์ต์ 1๋ ์ด ๊ฑธ๋ฆฝ๋๋ค.
๊ธฐ๋ฅ์ ๋ํ ์์๊ฐ ์ถฉ๋ถํ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก KEP ํ๋ก์ธ์ค์ ๋ ์ต์ํ ์ฌ๋์ด ์ด๋ฅผ ์งํํ๊ณ ์งํํ๋ ๋ฐ ๋์์ ์ฃผ๊ฒ ๋ค๊ณ ์ ์ํ์ง๋ง ์ฌ์ ํ ์ด๋ฅผ ์ฃผ๋ํ ์ฌ๋์ด ํ์ํฉ๋๋ค.
์ด๋ค ๊ฒฝ์ฐ๋ ๊ธฐ๋ฅ์ ๋ณํฉํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ํ๋ก์ธ์ค๊ฐ ์๋ ์ด์ ์ ๋ํ ์ต์ํ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. :+1: ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง ์ง์ ๋ฌธ์ํ์ธ์.
๋จ์ ์ ์ธ๋ถ ๋ง์ดํธ ๋๋ '๋น' ๋ง์ดํธ๋ฅผ ๊ณต์ ํ ์ ์๋ค๋ฉด ๋์์ ํ์ผ ์์คํ ์ ๊ฒ์ฌํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋์๊ฒ ๋ฃจํธ๋ก ํ์ผ ์์คํ ์ ๊ฒ์ฌํ๊ณ ๋ฃจํธ๋ก ํ์ผ ์์คํ ๊ณผ ์ํธ ์์ฉํ ์ ์๋ ์ ํธ๋ฆฌํฐ๋ฅผ ์คํํ๋ ๊ฒ์ ์์ฒญ๋ ๊ธฐ๋ฅ์ ๋ํ ์ง์์ ์ํ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ ๋๋ค. ์์ปจ๋, ์ด ์ ์์ ๋ด ๋ฌธ์ ๋ฅผ ์ ํ ํด๊ฒฐํ์ง ๋ชปํฉ๋๋ค.
๋จ์ ์ ๋์์ ํ์ผ ์์คํ ์ ๊ฒ์ฌํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฃผ์ ๋ ๋๋ฒ๊ทธ ์ปจํ ์ด๋๊ฐ ๋์ ์ปจํ ์ด๋์ ํ๋ก์ธ์ค ๋ค์์คํ์ด์ค๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊ทธ ์ปจํ ์ด๋์์ ๋์ ์ปจํ ์ด๋์ ์๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ํ์ผ ์์คํ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ์ปจํ ์ด๋ ํ์ผ ์์คํ ๊ณผ ํด๋น ์ปจํ ์ด๋์ ๋ง์ดํธ๋ ๋ชจ๋ ํ์ผ ์์คํ ์ด ๋ชจ๋ ํฌํจ๋ฉ๋๋ค.
์ปจํ ์ด๋ ํ์ผ ์์คํ ์ /proc/$pid/root ๋งํฌ๋ฅผ ํตํด ํฌ๋์ ๋ค๋ฅธ ์ปจํ ์ด๋์์ ๋ณผ ์ ์์ต๋๋ค.
https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/#understanding -process-namespace-sharing
90์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ต์ ์ผ๋ก ํ์ํฉ๋๋ค.
๋ถ์ค ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ๋ซํ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํ๋ ๊ฒ์ด ์์ ํ๋ค๋ฉด /close
๋ก ์ข
๋ฃํ์ญ์์ค.
sig-testing, kubernetes/test-infra ๋ฐ/๋๋ fejta ์ ํผ๋๋ฐฑ์ ๋ณด๋ด์ญ์์ค.
/์๋ช
์ฃผ๊ธฐ ๋ถ์ค
/remove-lifecycle ๋ถ์ค
kubectl ์ํ ๋๋ฒ๊ทธ -it ephemeral-demo --image=busybox --target=ephemeral-demo
error: ephemeral containers are disabled for this cluster
@whereisaaron ๋๋ถ๋ถ์ ํด๋ผ์ฐ๋ ์ ๊ณต์
์ฒด๊ฐ ์ด๋ฅผ ์ง์ํ์ง ์๋ ๊ฒ ๊ฐ์ผ๋ฉฐ ์จํ๋ ๋ฏธ์ค์ ๊ฒฝ์ฐ ๋
ธ๋๋ก ์ด๋ํ์ฌ ์ปจํ
์ด๋์ docker exec
๋ฅผ ๋ฃ์ ์ ์์ต๋๋ค. ๋ค์ ๋งํ์ง๋ง ์ ์ฉ์ฑ์ ์๋นํ ์ ํ์ ์
๋๋ค.
๋ํ /proc/$pid/root
๋ฅผ ํตํ ์ก์ธ์ค๋ ๋ด๊ฐ ์ํ๋ ๊ฒ์ด ์๋๋๋ค. "์ฌ์ด๋ ์๋์ฐ"๊ฐ ์๋ ์ง์ ์ก์ธ์ค๋ฅผ ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด apt/apk _in continer_ ์ ๊ฐ์ ์ ํธ๋ฆฌํฐ๋ฅผ ์คํํ๋ ๊ฒ์ ๋ฃจํธ ํ์ผ ์์คํ
์ด ์ํ๋ ์์น์ ์์ ๋ ์ฝ์ง ์์ต๋๋ค.
๋น์ทํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๊ณต์ helm ์ฐจํธ(jenkins)์์ ๋ฐฐํฌํ ๊ณต์ ์ด๋ฏธ์ง์ ์ผ๋ถ ๋๋ ํ ๋ฆฌ, ๋งํฌ ๋ฐ ๊ถํ์ ์ถ๊ฐํด์ผ ํ์ต๋๋ค.
exec-as ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
๊ณํ๋ Docker ์ง์ ์ค๋จ ๋ฐ ํ์ ์ ๊ฑฐ์ ํจ๊ป ์ธ์ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๊น? ์์ ์ปจํ ์ด๋๋ ์์ง ์ํ ๋ฒ์ ์ ๋๋ค. Docker๋ฅผ CRI๋ก ์ฌ์ฉํ์ง ์๊ณ ์์ ์ ์ธ ๋์์ ๋ฌด์์ ๋๊น?
์ํ๊ฐ ๋๋ ๊ฒ ์ธ์๋ ์์ ์ปจํ
์ด๋๋ ๋จ์ํ kubectl exec --user
๋ณด๋ค ์ฌ์ฉํ๊ธฐ๊ฐ ํจ์ฌ ๋ ๋ณต์กํฉ๋๋ค.
์ด์ ๋ํ ๋ ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๋ ์ปจํ
์ด๋์์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์คํํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด NextCloud์ occ
์ ์ง ๊ด๋ฆฌ ์คํฌ๋ฆฝํธ๋ www-data๋ก ์คํํด์ผ ํฉ๋๋ค. ์ด๋ฏธ์ง์ sudo
๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์์ผ๋ฉฐ ๋ฌธ์์์๋ Docker ํ๊ฒฝ์์ docker exec -u 33
๋ฅผ ์ฌ์ฉํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
๋ค์์ ์คํํ์ฌ nextcloud์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
su -s /bin/bash www-data
๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ด์์ ์ด์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ถ๊ฐ ์ฌ์ฉ ์ฌ๋ก - ๋ณด์์ ์์ํ๊ณ ์์ผ๋ฏ๋ก ์ปจํ ์ด๋ ๋ด๋ถ์์ ์คํ๋๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ๊ถํ์ด ๋ถ์ฌ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ์๊ธฐ์น ์๊ฒ ์๋ํ์ง ์๊ณ ๋ฃจํธ๋ก ๋ก๊ทธ์ธํ์ฌ ์๋ฅผ ๋ค์ด ๋๋ฒ๊ทธ ์ ํธ๋ฆฌํฐ๋ฅผ ์ค์นํ๊ณ ๋ผ์ด๋ธ ์์คํ ์ ๋ฌธ์ ๋ฅผ ํ์ ํ๋ ค๊ณ ํฉ๋๋ค.