ํ•ด๋‹น ๋ฌธ์„œ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฒ„์ „: v1.31

Kubernetes v1.31 ๋ฌธ์„œ๋Š” ๋” ์ด์ƒ ์ ๊ทน์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Œ. ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ๋ฌธ์„œ๋Š” ์ •์  ์Šค๋ƒ…์ƒท์ž„. ์ตœ์‹  ๋ฌธ์„œ๋ฅผ ์œ„ํ•ด์„œ๋Š”, ๋‹ค์Œ์„ ์ฐธ๊ณ . ์ตœ์‹  ๋ฒ„์ „.

๋™์ž‘์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ์…ธ์— ์ ‘๊ทผํ•˜๊ธฐ

์ด ํŽ˜์ด์ง€๋Š” ๋™์ž‘์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด kubectl exec์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๊ณ , kubectl ์ปค๋งจ๋“œ-๋ผ์ธ ํˆด์ด ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ๊ฐ€ ์ ์–ด๋„ 2๊ฐœ ํฌํ•จ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ๋งŒ์•ฝ, ์•„์ง ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด, minikube๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์˜ ์…ธ์— ์ ‘๊ทผํ•˜๊ธฐ

์ด ์˜ˆ์‹œ์—์„œ๋Š” ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง„ ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋‹ค. ์ด ์ปจํ…Œ์ด๋„ˆ๋Š” nginx ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ํ•ด๋‹น ํŒŒ๋“œ์— ๋Œ€ํ•œ ์„ค์ • ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

apiVersion: v1
kind: Pod
metadata:
  name: shell-demo
spec:
  volumes:
  - name: shared-data
    emptyDir: {}
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - name: shared-data
      mountPath: /usr/share/nginx/html
  hostNetwork: true
  dnsPolicy: Default

ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

kubectl apply -f https://k8s.io/examples/application/shell-demo.yaml

๋‹ค์Œ์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl get pod shell-demo

๋™์ž‘์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ์…ธ์— ์ ‘๊ทผํ•œ๋‹ค.

kubectl exec --stdin --tty shell-demo -- /bin/bash

์…ธ์— ์ ‘๊ทผํ•ด์„œ ๋‹ค์Œ์ฒ˜๋Ÿผ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

# Run this inside the container
ls /

์ ‘๊ทผํ•œ ์…ธ์—์„œ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋„ ํ•œ๋ฒˆ ์‹คํ–‰ํ•ด ๋ณด์•„๋ผ. ๋‹ค์Œ์€ ์‹คํ–‰ํ•ด ๋ณผ ๋ช…๋ น์˜ ์˜ˆ์‹œ์ด๋‹ค.

# You can run these example commands inside the container
ls /
cat /proc/mounts
cat /proc/1/maps
apt-get update
apt-get install -y tcpdump
tcpdump
apt-get install -y lsof
lsof
apt-get install -y procps
ps aux
ps aux | grep nginx

nginx์˜ ์ตœ์ƒ๋‹จ ํŽ˜์ด์ง€ ์ž‘์„ฑํ•˜๊ธฐ

์•ž์—์„œ ์ƒ์„ฑํ•œ ํŒŒ๋“œ์— ๋Œ€ํ•œ ์„ค์ •์„ ์‚ดํŽด๋ณด์•„๋ผ. ํŒŒ๋“œ์—๋Š” emptyDir ๋ณผ๋ฅจ์ด ์‚ฌ์šฉ๋˜์—ˆ๊ณ , ์ด ์ปจํ…Œ์ด๋„ˆ๋Š” ํ•ด๋‹น ๋ณผ๋ฅจ์„ /usr/share/nginx/html ๊ฒฝ๋กœ์— ๋งˆ์šดํŠธํ•˜์˜€๋‹ค.

์ ‘๊ทผํ•œ ์…ธ ํ™˜๊ฒฝ์—์„œ /usr/share/nginx/html ๋””๋ ‰ํ„ฐ๋ฆฌ์— index.html ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ๋ณด์•„๋ผ.

# Run this inside the container
echo 'Hello shell demo' > /usr/share/nginx/html/index.html

์…ธ ํ™˜๊ฒฝ์—์„œ nginx ์„œ๋ฒ„์— GET ์š”์ฒญ์„ ์‹œ๋„ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

# Run this in the shell inside your container
apt-get update
apt-get install curl
curl http://localhost/

์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด index.html ํŒŒ์ผ์— ์ž‘์„ฑํ•œ ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋‹ค.

Hello shell demo

์…ธ ์‚ฌ์šฉ์ด ๋ชจ๋‘ ๋๋‚ฌ๋‹ค๋ฉด exit์„ ์ž…๋ ฅํ•ด ์ข…๋ฃŒํ•˜๋ผ.

exit # To quit the shell in the container

์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ฐœ๋ณ„ ๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ธฐ

์…ธ์ด ์•„๋‹Œ ์ผ๋ฐ˜์ ์ธ ์ปค๋งจ๋“œ ํ™˜๊ฒฝ์—์„œ ๋‹ค์Œ์ฒ˜๋Ÿผ ๋™์ž‘์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl exec shell-demo env

๋‹ค๋ฅธ ๋ช…๋ น์–ด๋„ ํ•œ๋ฒˆ ์‹คํ–‰ํ•ด ๋ณด์•„๋ผ. ๋‹ค์Œ์€ ์‹คํ–‰ํ•ด ๋ณผ ๋ช…๋ น์˜ ์˜ˆ์‹œ์ด๋‹ค.

kubectl exec shell-demo -- ps aux
kubectl exec shell-demo -- ls /
kubectl exec shell-demo -- cat /proc/1/mounts

ํŒŒ๋“œ์— ํ•œ ๊ฐœ ์ด์ƒ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์…ธ์— ์ ‘๊ทผํ•˜๊ธฐ

๋งŒ์ผ ํŒŒ๋“œ์— ํ•œ ๊ฐœ ์ด์ƒ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, kubectl exec ๋ช…๋ น์–ด์— --container ํ˜น์€ -c ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง€์ •ํ•˜๋ผ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๋Ÿฌ๋ถ„์ด my-pod๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ์ด ํŒŒ๋“œ์—๋Š” main-app ๊ณผ helper-app ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋‘ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์žˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์–ด๋Š” main-app ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ์…ธ์— ์ ‘๊ทผํ•  ๊ฒƒ์ด๋‹ค.

kubectl exec -i -t my-pod --container main-app -- /bin/bash

๋‹ค์Œ ๋‚ด์šฉ

์ตœ์ข… ์ˆ˜์ • August 12, 2022 at 1:44 PM PST: [ko] sync the documents using comment (40bc0a1513)