웹사이트 검색

Kubernetes 포드에서 명령 및 인수 사용


안녕하세요, 독자 여러분! 이 기사에서는 더 나은 이해를 위해 다양한 시나리오로 Kubernetes 포드에서 명령 및 인수 사용에 대해 설명합니다.

그럼 시작하겠습니다!! :)

명령 및 인수 사용 - 프로세스 실행

애플리케이션이 Kubernetes 포드 내에서 실행된다고 말할 때 실제로는 컨테이너가 래핑되어 포드로 표시된다는 의미입니다.

컨테이너는 프로세스를 함께 실행하는 데 필요한 모든 종속성과 명령을 래핑하고 Pod 내에 있습니다. 포드를 생성하는 동안 컨테이너 내에서 실행될 명령과 인수를 모두 정의할 수 있습니다.

일반적으로 사용자 지정 양식에서 정의하는 명령 및 인수는 기본 컨테이너 이미지의 기본 명령 및 인수를 재정의합니다.

이 항목의 맥락에서 우리는 애플리케이션 Pod로 실행되는 컨테이너에 대한 명령 및 인수를 만들고 정의하는 방법을 다룰 것입니다.

Kubernetes 포드에 대한 명령 및 인수 정의

컨테이너 내에서 인수를 정의하기 위해 명령 필드를 사용할 수 있습니다. 명령을 정의하는 순간 전달될 인수가 필요합니다. args 필드를 사용하여 이러한 인수를 명령에 전달할 수 있습니다.

아래 예제에서는 환경 변수 KUBECONFIG의 값을 인수로 인쇄하기 위해 printenv 명령을 컨테이너에 전달했습니다.

예: pod.YAML

apiVersion: v1
kind: Pod
metadata:
  name: demo-cmd
spec:
  containers:
  - name: cmd-arg-demo
    image: debian
    command: ["printenv"]
    args: ["KUBECONFIG"]
  restartPolicy: OnFailure

이제 위의 파일을 적용하고 포드를 생성해 보겠습니다.

kubectl apply -f pod.yaml

Pod를 생성하면 Pod의 로그와 특정 컨테이너를 가져와 명령 실행 결과를 찾을 수 있습니다.

kubectl logs -f demo-cmd

산출:

출력은 명령 실행에 대한 값을 반환합니다. 즉, KUBECONFIG 파일의 경로를 값으로 표시합니다.

/home/.kube

1. env 변수를 사용하여 인수 정의

변형으로 환경 변수를 사용하여 인수 값을 명령에 전달할 수 있습니다. 아래 코드 섹션을 살펴 보겠습니다.

예: 샘플 코드

env:
- name: data
  value: "002234-welcome-message"
command: ["/bin/data"]
args: ["$(data)"]

위의 코드 블록을 사용하여 환경 변수를 사용하여 인수 값을 전달할 수 있습니다. 여기에서 인수의 값을 환경 변수로 지정된 데이터라는 변수의 형태로 명령에 전달합니다.

환경 변수와 별도로 유사한 방식으로 Secret 형식의 값을 구문 분석할 수도 있습니다.

2. 쉘 내에서 명령 실행

때때로 여러 명령을 함께 실행하려는 경우 실행을 위해 컨테이너 내에서 실행되는 셸이 필요합니다.

이는 런타임에 가상 쉘을 실행하여 달성할 수 있습니다.

이를 위해 아래와 같이 셸의 Pod 내에서 지정된 모든 명령을 실행하는 명령을 정의합니다.

command: ["/bin/sh"]
args: ["-c", "while true; do echo Welcome to JournalDev; sleep 100;done"]

여기 이 예에서는 Pod에 쉘을 사용하여 while 루프 실행과 같은 여러 명령을 함께 실행하는 BASH 스크립트를 실행하도록 지시했습니다.

결론

이것으로 우리는 이 주제의 끝에 접근했습니다. 궁금한 점이 있으면 아래에 의견을 남겨주세요.

Docker 및 Kubernetes와 관련된 추가 질문은 계속 지켜봐 주시기 바랍니다.

그때까지, 행복한 학습! :)