본문 바로가기

Cloud

(Kubernetes) - application에 data 주입 1

반응형

🍳머리말

container 위한 command, 인자 정의하는 방법. k8s cluster가 필요합니다. 또한 node가 control plane포함 3개인 cluster에서 실행하는 것이 좋습니다.


📕Pod 생성시 command, 인자 정의

📔 설명

 pod를 생성할 때, pod 안에서 동작하는 container를 위한 command와 인자를 정의할 수 있습니다. command를 정의하기 위해선 pod 안에서 실행되는 container에 command filed를 포함시킵니다. command에 대한 인자를 정의하기 위해 구성 file에 args field를 포함시킵니다. 정의한 command와 인자들은 pod가 생성되고 난 이후에 변경될 수 없습니다.

 구성 file 안에서 정의하는 command와 인자들은 container image가 제공하는 기본 command와 인자들보다 우선시 됩니다. 만약 인자들을 정의하고 command를 정의하지 않는다면, 기본 command가 새로운 인자와 함께 사용됩니다.

📔 예시

한 개의 컨테이너를 실행하는 파드를 생성

 

commands.yaml file 생성 후 아래 spec 입력

apiVersion: v1
kind: Pod
metadata:
  name: command-demo
  labels:e
    purpose: demonstrate-command
spec:
  containers:
  - name: command-demo-container
    image: debian
    command: ["printenv"]
    args: ["HOSTNAME", "KUBERNETES_PORT"]
  restartPolicy: OnFailure

apply

kubectl apply -f commands.yaml

또는(yaml file 없이)

kubectl apply -f https://k8s.io/examples/pods/commands.yaml

이후 pod 생성 확인

kubectl get pods

명령어 실행 여부 확인

kubectl logs command-demo

📕참조

https://kubernetes.io/ko/docs/tasks/inject-data-application/define-command-argument-container/

 

컨테이너를 위한 커맨드와 인자 정의하기

본 페이지는 파드 안에서 컨테이너를 실행할 때 커맨드와 인자를 정의하는 방법에 대해 설명한다. 시작하기 전에 쿠버네티스 클러스터가 필요하고, kubectl 커맨드-라인 툴이 클러스터와 통신할

kubernetes.io

 

'Cloud' 카테고리의 다른 글

(Kubernetes) - application에 data 주입 3  (0) 2021.12.06
(Kubernetes) - application에 data 주입 2  (0) 2021.12.06
(Kubernetes) - Custom Resource  (0) 2021.12.01
(Kubernetes) - operator pattern  (0) 2021.11.17
(Kubernetes) - init container  (0) 2021.11.15