Kubernetes는 1.28부터 Native Sidecar 컨테이너 개념을 정식 지원하기 시작했다.
기존에는 Sidecar가 단순히 컨테이너 하나였지만, 이제는 lifecycle, 종료 순서, 재시작 정책 등을 분리하여 컨트롤할 수 있는 구조로 발전했다.
이번 실습에서는 Istio Proxy(Envoy) 를 Native Sidecar 컨테이너로 구성할 수 있는지 실험해보았고, 아직은 실무적용이 어렵지만 기본 개념과 기대 효과를 확인해보는 데 의의가 있었다.
기존 Kubernetes에서는 Pod 내의 모든 컨테이너가 동일한 restart 정책과 lifecycle을 공유했다.
하지만 Native Sidecar는 다음과 같은 차별점을 가진다.
restartPolicy: Always와 별개로 종료 순서를 따로 지정 가능sidecarContainers를 명시적으로 인식Istio에서는 istio-injection=enabled 라벨을 통해 Sidecar(Envoy Proxy)를 자동 주입했다.
이 구조는 다음과 같다:
아직 Istio는 Native Sidecar를 공식 지원하지 않지만, 실험적으로 다음과 같은 구성을 시도했다.
Pod의 spec에 다음과 같은 형태로 Sidecar를 정의
containers:
- name: envoy
image: envoyproxy/envoy:v1.25-latest
args: [ "envoy", "-c", "/etc/envoy/envoy.yaml" ]
resources:
limits:
memory: "128Mi"
cpu: "250m"
lifecycle:
type: Sidecar
주의할 점:
테스트 환경에서는 kubelet이 type: Sidecar 속성을 인식하지 못해 적용되지 않았다.
현재 Native Sidecar 기능은 일부 GKE 알파 기능 또는 K3s 커스터마이징에서만 실험 가능하다.
Istio가 이 구조를 정식 지원하려면 다음이 선행되어야 한다
sidecarContainers를 생성하도록 수정