내 잡다한 노트

쿠버네티스에서 ~From 이라는 키워드란? 본문

DevOps/쿠버네티스

쿠버네티스에서 ~From 이라는 키워드란?

peanutwalnut 2024. 11. 17. 12:40

Kubernetes에서 **~From**이라는 키워드는 보통 여러 데이터를 한꺼번에 가져와 리소스에 적용할 때 사용됩니다. 이런 키워드는 선언적 방식으로 매니페스트 파일을 작성할 때 유용하며, 대표적으로 envFrom과 같은 키워드가 있습니다. 아래는 Kubernetes 매니페스트에서 자주 사용되는 ~From 유형을 정리한 목록입니다.

1. envFrom

  • Pod의 환경 변수를 ConfigMap 또는 Secret에서 한꺼번에 가져올 때 사용됩니다.
  • 대상 리소스에서 정의된 모든 키를 환경 변수로 자동으로 추가합니다.

예시

apiVersion: v1
kind: Pod
metadata:
  name: app-pod
spec:
  containers:
  - name: app-container
    image: nginx
    envFrom:
    - configMapRef:
        name: app-config    # ConfigMap에서 환경 변수 가져오기
    - secretRef:
        name: app-secret    # Secret에서 환경 변수 가져오기

  • configMapRef: ConfigMap의 키-값 쌍을 환경 변수로 설정.
  • secretRef: Secret의 키-값 쌍을 환경 변수로 설정.

 

2. volumeFrom (간접적으로 대체 가능)

  • Kubernetes에서 명시적으로 volumeFrom이라는 키는 존재하지 않지만, 비슷한 동작은 Volumes를 정의할 때 구현됩니다.
  • 볼륨 정보를 ConfigMap, Secret, 또는 PersistentVolumeClaim에서 가져와 사용.

apiVersion: v1
kind: Pod
metadata:
  name: app-pod
spec:
  containers:
  - name: app-container
    image: nginx
    volumeMounts:
    - name: secret-volume
      mountPath: /etc/secrets
  volumes:
  - name: secret-volume
    secret:
      secretName: app-secret

 

Secret의 데이터를 /etc/secrets 경로에 파일 형태로 마운트.

 

3. dataFrom

  • ConfigMap 또는 Secret을 사용하여 Deployment나 StatefulSet 등의 매니페스트에서 데이터를 가져오는 명령은 없습니다. 그러나 기존의 데이터를 가져와 복사하거나 활용하는 비슷한 동작은 Helm이나 ArgoCD 템플릿으로 확장 가능합니다.

4. 관련 예시: Helm에서의 ~From 활용

Helm 차트를 활용하면 Kubernetes 매니페스트를 더 동적으로 생성할 수 있습니다. 예를 들어, envFrom 키워드처럼 여러 값을 자동으로 가져오는 템플릿을 활용할 수 있습니다.

'DevOps > 쿠버네티스' 카테고리의 다른 글

쿠버네티스 노드 관리  (0) 2024.11.17
[K8S] Multi container pods design patterns  (1) 2024.11.17
쿠버네티스 Secrets  (0) 2024.11.17
쿠버네티스 ConfigMap  (0) 2024.11.16
쿠버네티스 업데이트 및 배포 전략  (0) 2024.11.16