main

Compose host       ≈ Kubernetes Node
Compose replica    ≈ Kubernetes Pod replica
Compose container  ≈ Kubernetes Pod 내부 Container

단, Compose에서는 하나의 service replica가 보통 컨테이너 하나지만, Kubernetes에서는 Pod 하나 안에 컨테이너가 여러 개 들어갈 수 있다.

Docker ComposeKubernetes
Compose projectNamespace
Compose serviceDeployment/StatefulSet + Service
이미지와 컨테이너 실행 정의DeploymentPod template
컨테이너 개수replicas
재시작 및 교체ReplicaSet
내부 DNS 이름Service
내부 고정 가상 IP
Pod 선택 및 부하분산Service selector
호스트 외부 포트 노출NodePort, LoadBalancer, Ingress
영구 볼륨PVC, PV
설정과 시크릿ConfigMap, Secret
ContainerPod 또는 Pod 내부 Container
Compose service DNSKubernetes Service DNS
postgres:5432postgres:5432
redis:6379redis:6379
airflow3-postgres-1보통 직접 사용하지 않음
postgres-7b8489fd64-dkl8p보통 직접 사용하지 않음

Deployment / StatefulSet / DaemonSet

컨테이너 접근

Docker ComposeKubernetes
Compose Service 이름으로 접근Kubernetes Service 이름으로 접근
Container 이름으로도 접근 가능한 경우가 있음일반적으로 Pod 이름이 아니라 Service 이름으로 접근
project 네트워크 안에서 이름 해석Namespace와 클러스터 DNS를 기준으로 이름 해석
Container 가 비교적 직접적인 네트워크 대상Service가 Pod 집합을 추상화


# 컨테이너명
airflow3-airflow-dag-processor-1

airflow3 # compose project 이름
airflow3-airflow-dag-processor # service 이름
airflow3-airflow-dag-processor-1 # replica 번호




# DNS 명
# 기본 클러스터 도메인 `cluster.local` 라고 가정한다
# k3s 에서는 접근해야할 대상이 FQDN 으로 주어진다
# docker compose 에서는 compose service 별로 FQDN 개념이 없다, 단일 레이블 alias 로 접근함
postgres.airflow3.svc.cluster.local

postgres.airflow3.svc.cluster.local # 전체 FQDN
postgres.airflow3.svc # 특정 namespace 의 service 엔드포인트, service 레코드 영역
postgres.airflow3 # namespace
postgres # service












kustomization

kubectl kustomize .
 
kubectl apply -k .
kubectl delete -k .
 
 
kubectl create token headlamp-admin -n headlamp
 
 
apiVersion: apps/v1
kind: Deployment
 
metadata:
  name: nginx
 
spec:
  replicas: 3
개념Docker ComposeKustomize
여러 파일 묶기include, 여러 -f 파일resources:
공통 정의 재사용extends, YAML anchorbase 디렉터리
환경별 일부 변경override compose 파일overlay + patches:
이미지 태그 교체override 파일에서 image: 변경images:
공통 이름/라벨 적용직접 반복하거나 anchor 사용namePrefix, labels
최종 결과 생성Compose가 설정 병합Kustomize가 최종 Kubernetes YAML 생성