Kubernetes

[ Kubernets ] 컨테이너에 환경 변수(Node IP/ Pod IP) 정보 넣기

블루빔 2023. 11. 27. 17:00

일반적으로 pod를 배포하게 되면 컨테이너 환경 변수에는 아래와 같은 정보들이 기재됩니다. 

[ AS - IS ]

>> 여기서 기재된 HOSTNAMEpod네임입니다. 

해당 ⬅️ 글에서 확인 할 수 있듯이 Node IP 정보Pod IP 정보는 쿠버네티스가 추가해주는 정보이므로 컨테이너가 생성 된 이후에 확인이 가능합니다.
하지만 작업을 하다 보면 컨테이너가 Node IP 또는 Pod IP 정보를 필요로 할 때가 있으므로 컨테이너 환경 변수에 해당 정보들을 업데이트해야 합니다. 

하여 이번 글에서는  Pod yaml 파일 컨테이너 생성 시 컨테이너 환경 변수에 Node IP 정보와 Pod IP 정보도 함께 추가되는 코드에 대해 작성해 보려고 합니다. 

예시)

spec:
  containers:
    - name: test-app
      image: nginx:1.14.2
      ports:
        - containerPort: 8080
      env:
	- name: POD_IP
          valueFrom:
	    fieldRef:
              fieldPath: status.podIP

컨테이너 설정 시 env 필드에 추가하려는값의 필드 경로를 지정하여 컨테이너 환경 변수에 값을 넣을 수 있습니다.  


Node IP의 필드 경로는  status.hostIP 이며
Pod IP의 필드 경로는  status.podIP 입니다. 


완성본

apiVersion: v1
kind: Pod
metadata:
  name: test-app
spec:
  containers:
    - name: test-app-cn
      image: nginx:1.14.2
      ports:
        - containerPort: 8080
      env:
        - name: POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: NODE_IP
          valueFrom:
            fieldRef:
              fieldPath: status.hostIP
      resources:
        limits:
          cpu: "100m"
          memory: "120Mi"

[ TO - BE ]