Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Define a Command and Arguments for a Container

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์œ„ํ•œ ์ปค๋งจ๋“œ์™€ ์ธ์ž ์ •์˜ํ•˜๊ธฐ

๋ณธ ํŽ˜์ด์ง€๋Š” ํŒŒ๋“œ ์•ˆ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ปค๋งจ๋“œ์™€ ์ธ์ž๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.

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

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

๋ฒ„์ „ ํ™•์ธ์„ ์œ„ํ•ด์„œ, ๋‹ค์Œ ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ kubectl version.

ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ปค๋งจ๋“œ์™€ ์ธ์ž๋ฅผ ์ •์˜ํ•˜๊ธฐ

ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ํŒŒ๋“œ ์•ˆ์—์„œ ๋™์ž‘ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์œ„ํ•œ ์ปค๋งจ๋“œ์™€ ์ธ์ž๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปค๋งจ๋“œ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ํŒŒ๋“œ ์•ˆ์—์„œ ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์— command ํ•„๋“œ๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค. ์ปค๋งจ๋“œ์— ๋Œ€ํ•œ ์ธ์ž๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๊ตฌ์„ฑ ํŒŒ์ผ์— args ํ•„๋“œ๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค. ์ •์˜ํ•œ ์ปค๋งจ๋“œ์™€ ์ธ์ž๋“ค์€ ํŒŒ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋‚œ ์ดํ›„์—๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ ์•ˆ์—์„œ ์ •์˜ํ•˜๋Š” ์ปค๋งจ๋“œ์™€ ์ธ์ž๋“ค์€ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ์ปค๋งจ๋“œ์™€ ์ธ์ž๋“ค๋ณด๋‹ค ์šฐ์„ ์‹œ ๋œ๋‹ค. ๋งŒ์•ฝ ์ธ์ž๋“ค์„ ์ •์˜ํ•˜๊ณ  ์ปค๋งจ๋“œ๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๊ธฐ๋ณธ ์ปค๋งจ๋“œ๊ฐ€ ์ƒˆ๋กœ์šด ์ธ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋œ๋‹ค.

์ด ์˜ˆ์ œ์—์„œ๋Š” ํ•œ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ํŒŒ๋“œ๋ฅผ ์œ„ํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์ปค๋งจ๋“œ์™€ ๋‘ ๊ฐœ์˜ ์ธ์ž๋ฅผ ์ •์˜ํ•œ๋‹ค.

apiVersion: v1
kind: Pod
metadata:
  name: command-demo
  labels:
    purpose: demonstrate-command
spec:
  containers:
  - name: command-demo-container
    image: debian
    command: ["printenv"]
    args: ["HOSTNAME", "KUBERNETES_PORT"]
  restartPolicy: OnFailure
  1. YAML ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ™œ์šฉํ•ด ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

    kubectl apply -f https://k8s.io/examples/pods/commands.yaml
    
  2. ์‹คํ–‰ ์ค‘์ธ ํŒŒ๋“œ๋“ค์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•œ๋‹ค.

    kubectl get pods
    

    command-demo๋ผ๋Š” ํŒŒ๋“œ ์•ˆ์—์„œ ์‹คํ–‰๋œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค.

  3. ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ์‹คํ–‰๋œ ์ปค๋งจ๋“œ์˜ ์ถœ๋ ฅ์„ ๋ณด๊ธฐ ์œ„ํ•ด, ํŒŒ๋“œ์˜ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•œ๋‹ค.

    kubectl logs command-demo
    

    HOSTNAME๊ณผ KUBERNETES_PORT ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์˜ ๊ฐ’๋“ค์ด ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค.

    command-demo
    tcp://10.3.240.1:443
    

์ธ์ž๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ

์ด์ „ ์˜ˆ์ œ์—์„œ๋Š”, ๋ฌธ์ž์—ด์„ ์ œ๊ณตํ•˜๋ฉด์„œ ์ง์ ‘ ์ธ์ž๋ฅผ ์ •์˜ํ•ด๋ณด์•˜๋‹ค. ๋ฌธ์ž์—ด์„ ์ง์ ‘ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋Œ€์•ˆ์œผ๋กœ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ž๋“ค์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

env:
- name: MESSAGE
  value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]

์ด๊ฒƒ์€ ์ปจํ”ผ๊ทธ ๋งต๊ณผ ์‹œํฌ๋ฆฟ์„ ํฌํ•จํ•ด, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•๋“ค์„ ํ™œ์šฉํ•ด์„œ ํŒŒ๋“œ๋ฅผ ์œ„ํ•œ ์ธ์ž๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์…ธ ์•ˆ์—์„œ ์ปค๋งจ๋“œ ์‹คํ–‰ํ•˜๊ธฐ

์ผ๋ถ€ ๊ฒฝ์šฐ๋“ค์—์„œ๋Š” ์ปค๋งจ๋“œ๋ฅผ ์…ธ ์•ˆ์—์„œ ์‹คํ–‰ํ•ด์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‹คํ–‰ํ•  ์ปค๋งจ๋“œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปค๋งจ๋“œ๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ฑฐ๋‚˜, ์…ธ ์Šคํฌ๋ฆฝํŠธ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ์…ธ ์•ˆ์—์„œ ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๊ฐ์‹ธ์ฃผ๋ฉด ๋œ๋‹ค.

command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]

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

์ตœ์ข… ์ˆ˜์ • September 23, 2022 at 11:12 AM PST: [ko] Update outdate files in dev-1.25-ko.1 (M74-M89) (2aafb85f6d)