CKA 취득 후 놓친 쿠버네티스 변화들 (2022년 11월 ~ 2025년)

목차

CKA(Certified Kubernetes Administrator) 자격증을 2022년 11월에 취득한 뒤, 그동안 쿠버네티스가 어떻게 발전했는지 궁금해서 깊이 조사해 봤습니다. 이 글에서는 실무에서 놓치기 쉬운 주요 변경사항을 정리해 보겠습니다.

📑 목차

  1. 📊 버전 현황 한눈에 보기
  2. 🚨 놓치면 안 되는 Breaking Changes
  3. 🎯 보안 강화 기능들
  4. 🔧 운영 편의성 개선
  5. 🚀 새로운 기능들
  6. 📈 성능 및 스케일링 개선
  7. ⭐ 2025년 최신 업데이트
  8. 🔄 마이그레이션 가이드
  9. 💡 실무에서 체크해야 할 포인트
  10. 🎯 결론

📊 버전 현황 한눈에 보기

현재 지원되는 버전 (2025년 6월 기준)

EOL된 주요 버전들

🚨 놓치면 안 되는 Breaking Changes

1. 컨테이너 이미지 레지스트리 변경 (v1.26)

가장 중요한 변화 중 하나입니다.

bash
# ❌ 기존 (2022년 이전)
k8s.gcr.io/pause:3.8

# ✅ 새로운 방식 (2023년부터)
registry.k8s.io/pause:3.9

영향범위:

대응방법:

yaml
# 기존 매니페스트 업데이트 필요
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: my-app
    image: registry.k8s.io/my-app:latest  # k8s.gcr.io에서 변경

2. CRI v1alpha2 제거 (v1.26)

containerd 1.6.0 이상 필수가 되었습니다.

bash
# containerd 버전 확인
containerd --version

# 1.6.0 미만이면 업그레이드 필요
sudo apt update && sudo apt upgrade containerd

🎯 보안 강화 기능들

1. SeccompDefault 정식 출시 (v1.27)

Pod에 대한 기본 seccomp 프로필이 자동 적용됩니다.

yaml
# 더 이상 명시적으로 설정할 필요 없음
apiVersion: v1
kind: Pod
metadata:
  annotations:
    # seccomp.security.alpha.kubernetes.io/pod: runtime/default  # 불필요
spec:
  securityContext:
    # seccompProfile 자동 적용됨

2. KMS v2 암호화 GA (v1.29)

etcd 데이터 암호화가 더욱 강화되었습니다.

yaml
# /etc/kubernetes/encryption-config.yaml
apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
- resources:
  - secrets
  providers:
  - kms:
      name: myKmsPlugin
      endpoint: unix:///tmp/socketfile.sock
      apiVersion: v2  # v2가 기본값

🔧 운영 편의성 개선

1. 비정상적인 노드 종료 복구 GA (v1.28)

노드가 예기치 않게 종료되었을 때 Pod 복구가 빨라졌습니다.

yaml
# kube-controller-manager 설정에 자동 포함
apiVersion: v1
kind: Pod
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"  # 즉시 복구

2. ReadWriteOncePod 액세스 모드 GA (v1.29)

단일 Pod에서만 볼륨을 사용할 수 있게 보장합니다.

yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: single-pod-pvc
spec:
  accessModes:
  - ReadWriteOncePod  # 새로운 액세스 모드
  resources:
    requests:
      storage: 1Gi

사용 사례:

3. 버전 스큐 지원 확장 (v1.28)

n-3 버전까지 지원하게 되어 업그레이드 유연성이 증가했습니다.

bash
# 예: 컨트롤 플레인이 1.31이면
# 노드는 1.28까지 지원 (이전엔 1.29까지만)

# 업그레이드 시나리오 예시
Control Plane: 1.31.x
Worker Nodes: 1.28.x  # ✅ 지원됨

🚀 새로운 기능들

1. ValidatingAdmissionPolicies Beta (v1.28)

OPA 없이도 복잡한 정책을 정의할 수 있습니다.

yaml
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: resource-limits-policy
spec:
  failurePolicy: Fail
  matchConstraints:
    resourceRules:
    - operations: ["CREATE", "UPDATE"]
      apiGroups: [""]
      apiVersions: ["v1"]
      resources: ["pods"]
  validations:
  # CPU 제한 검증
  - expression: |
      object.spec.containers.all(container, 
        has(container.resources.limits.cpu) && 
        int(container.resources.limits.cpu.replace('m', '')) <= 2000
      )
    message: "Container CPU limit must not exceed 2000m"
  # 메모리 제한 검증  
  - expression: |
      object.spec.containers.all(container,
        has(container.resources.limits.memory) &&
        int(container.resources.limits.memory.replace('Gi', '')) <= 8
      )
    message: "Container memory limit must not exceed 8Gi"

실용적 활용 사례:

2. 사이드카 컨테이너 Alpha (v1.28)

Istio나 Dapr 없이도 사이드카 패턴을 네이티브로 지원합니다.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: app-with-sidecar
spec:
  initContainers:
  # 로그 수집 사이드카
  - name: log-collector
    image: fluent/fluent-bit:latest
    restartPolicy: Always  # 🔑 사이드카 핵심 특성
    volumeMounts:
    - name: logs
      mountPath: /var/log
  # 메트릭 수집 사이드카  
  - name: metrics-exporter
    image: prom/node-exporter:latest
    restartPolicy: Always
    ports:
    - containerPort: 9100
  containers:
  - name: main-app
    image: my-app:latest
    volumeMounts:
    - name: logs
      mountPath: /app/logs
  volumes:
  - name: logs
    emptyDir: {}

기존 initContainer와의 차이점:

3. Job Pod 교체 정책 (v1.28)

Job 실패 시 즉시 재시작 vs 대기 후 재시작 선택이 가능합니다.

yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: data-processing-job
spec:
  # 🆕 새로운 Pod 교체 정책
  podReplacementPolicy: Failed  # Failed | TerminatingOrFailed
  completions: 5
  parallelism: 2
  backoffLimit: 3
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: processor
        image: data-processor:latest
        resources:
          limits:
            memory: "4Gi"
            cpu: "2"

정책 옵션:

4. 노드 로그 액세스 API (v1.27)

kubectl로 직접 노드 로그를 조회할 수 있습니다.

bash
# 노드 시스템 로그 확인
kubectl get --raw "/api/v1/nodes/worker-node-1/proxy/logs/journal" | tail -n 100

# kubelet 로그 확인
kubectl get --raw "/api/v1/nodes/worker-node-1/proxy/logs/kubelet.log" | grep ERROR

# 특정 서비스 로그
kubectl get --raw "/api/v1/nodes/worker-node-1/proxy/logs/journal?query=_SYSTEMD_UNIT=docker.service"

활용 시나리오:

5. Linux 스왑 메모리 지원 Beta (v1.28)

메모리 부족 상황에서 Pod 강제 종료 대신 스왑 사용이 가능합니다.

bash
# kubelet 설정 업데이트
--feature-gates=NodeSwap=true
--memoryswap.behavior=LimitedSwap

# 스왑 활성화 확인
swapon --show
yaml
# Pod에서 스왑 사용량 제한
apiVersion: v1
kind: Pod
metadata:
  name: memory-intensive-app
spec:
  containers:
  - name: app
    image: memory-app:latest
    resources:
      limits:
        memory: "2Gi"
      requests:
        memory: "1Gi"
    # 스왑 사용량 = 메모리 limit와 동일하게 설정됨

주의사항:

6. Windows 특권 컨테이너 지원 GA (v1.26)

Windows 노드에서도 특권 컨테이너 실행이 가능해졌습니다.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: windows-privileged-pod
spec:
  nodeSelector:
    kubernetes.io/os: windows
  containers:
  - name: windows-app
    image: mcr.microsoft.com/windows/servercore:ltsc2022
    securityContext:
      windowsOptions:
        hostProcess: true  # Windows 특권 모드
        runAsUserName: "NT AUTHORITY\\SYSTEM"
    command: ["powershell.exe", "-c", "Get-Service"]

7. Service IP 주소 범위 관리 API Alpha (v1.29)

Service CIDR을 동적으로 관리할 수 있습니다.

yaml
apiVersion: networking.k8s.io/v1alpha1
kind: ServiceCIDR
metadata:
  name: service-cidr-1
spec:
  cidrs:
  - "10.96.0.0/16"   # 기본 Service CIDR
  - "10.97.0.0/16"   # 추가 Service CIDR

활용 사례:

8. CEL 기반 Admission Control Alpha (v1.26)

Common Expression Language로 더 유연한 검증이 가능합니다.

yaml
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: cel-security-policy
spec:
  validations:
  # 복잡한 조건식 예시
  - expression: |
      !(object.spec.securityContext.runAsUser == 0) || 
      (object.metadata.namespace == 'kube-system')
    message: "Root user only allowed in kube-system namespace"
  
  # 리소스 간 의존성 검증
  - expression: |
      object.spec.containers.all(container,
        has(container.resources.requests) ? 
        int(container.resources.requests.cpu.replace('m', '')) >= 100 : false
      )
    message: "All containers must request at least 100m CPU"

📈 성능 및 스케일링 개선

1. nftables 백엔드 Alpha (v1.29)

iptables 성능 한계를 극복하기 위한 새 백엔드입니다.

bash
# kube-proxy nftables 모드 활성화
--proxy-mode=nftables
--feature-gates=NFTablesProxyMode=true

# 성능 확인
nft list tables
nft list table ip kube-proxy

성능 향상 포인트:

적용 전후 비교 (10,000개 Service 기준):

2. 동적 리소스 할당 (DRA) Alpha (v1.26)

GPU, FPGA 등 특수 하드웨어를 Pod별로 세밀하게 할당할 수 있습니다.

yaml
# ResourceClass 정의
apiVersion: resource.k8s.io/v1alpha2
kind: ResourceClass
metadata:
  name: gpu-class
driverName: gpu.example.com
parameters:
  apiVersion: gpu.example.com/v1
  kind: GPUConfig
  memory: "16Gi"
  computeCapability: "8.0"
---
# Pod에서 동적 리소스 사용
apiVersion: v1
kind: Pod
metadata:
  name: ml-training-pod
spec:
  resourceClaims:
  - name: gpu-claim
    source:
      resourceClaimTemplateName: gpu-template
  containers:
  - name: trainer
    image: tensorflow/tensorflow:latest-gpu
    resources:
      claims:
      - name: gpu-claim

기존 방식과의 차이점:

3. 강력한 VolumeManager 재구성 Beta (v1.27)

볼륨 마운트/언마운트 성능이 대폭 개선되었습니다.

bash
# kubelet 설정에서 활성화
--feature-gates=NewVolumeManagerReconstruction=true

개선 사항:

4. 이미지 풀 성능 개선 (v1.27)

컨테이너 이미지 다운로드가 더 효율적으로 변경되었습니다.

yaml
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: app
    image: my-large-image:latest
    imagePullPolicy: IfNotPresent
  # 병렬 이미지 풀 지원
  initContainers:
  - name: init1
    image: init-image-1:latest
  - name: init2  
    image: init-image-2:latest  # 동시에 다운로드

5. 큰 파일 시스템 지원 개선 (v1.28)

PetaByte 급 스토리지도 효율적으로 처리할 수 있게 되었습니다.

yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: large-storage
spec:
  capacity:
    storage: 100Ti  # 대용량 스토리지 지원 개선
  accessModes:
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: large-storage.csi.driver
    volumeHandle: "large-volume-id"

6. 스케줄러 성능 최적화 (v1.29)

대규모 클러스터에서 스케줄링 성능이 향상되었습니다.

bash
# 스케줄러 프로파일링 확인
kubectl get componentstatuses
kubectl logs -n kube-system deployment/kube-scheduler | grep "duration"

개선 포인트:

7. etcd 압축 개선 (v1.28)

etcd 데이터 압축이 더 효율적으로 변경되었습니다.

bash
# etcd 압축 상태 확인
etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  endpoint status --write-out=table

성능 향상:

⭐ 2025년 최신 업데이트

Kubernetes 1.33 "Octarine" (2025년 4월)

2025년에 가장 주목할 1.33 릴리즈는 쿠버네티스의 두 번째 10년을 여는 릴리즈입니다.

1. 사이드카 컨테이너 정식 출시 (GA)

가장 기다렸던 기능이 드디어 안정 버전으로 출시되었습니다.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: myapp-with-sidecar
spec:
  initContainers:
  - name: network-sidecar
    image: nginx:1.25
    restartPolicy: Always  # 이것이 핵심!
    lifecycle:
      preStop:
        exec:
          command: ["/bin/sh", "-c", "sleep 5"]
  containers:
  - name: main-app
    image: myapp:latest
    ports:
    - containerPort: 8080

기존 Istio/Dapr와 차이점:

2. In-Place Pod 리소스 크기 조정 (Beta)

다운타임 없이 Pod의 CPU/메모리를 조정할 수 있습니다.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: resizable-pod
spec:
  containers:
  - name: app
    image: nginx
    resources:
      requests:
        memory: "1Gi"
        cpu: "500m"
      limits:
        memory: "2Gi"
        cpu: "1000m"
  # 이후 kubectl patch로 실시간 변경 가능
bash
# 실시간 리소스 변경 (재시작 없음!)
kubectl patch pod resizable-pod --type='merge' -p='
{
  "spec": {
    "containers": [
      {
        "name": "app",
        "resources": {
          "requests": {
            "memory": "2Gi",
            "cpu": "1000m"
          },
          "limits": {
            "memory": "4Gi", 
            "cpu": "2000m"
          }
        }
      }
    ]
  }
}'

활용 사례:

3. Streaming List 응답으로 메모리 효율성 개선

대규모 클러스터에서 kubectl get pods --all-namespaces 같은 명령이 20배 빨라졌습니다.

bash
# 1.33 이전: 70-80GB 메모리 사용
# 1.33 이후: 3GB로 대폭 감소

# 대규모 리스트 조회 테스트
time kubectl get pods --all-namespaces -o wide

4. 사용자 네임스페이스 기본 활성화 (Beta)

컨테이너 보안이 크게 강화되었습니다.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: secure-pod
spec:
  hostUsers: false  # 사용자 네임스페이스 활성화
  containers:
  - name: app
    image: ubuntu:22.04
    securityContext:
      runAsNonRoot: true
      runAsUser: 1000

5. 볼륨 Populators GA

데이터 소스에서 볼륨을 자동으로 채울 수 있습니다.

yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data-from-git
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  dataSourceRef:  # 새로운 필드
    kind: GitVolumePopulator
    apiGroup: example.com
    name: my-git-repo

6. Multiple Service CIDRs GA

IP 주소 부족 문제를 해결하기 위한 기능입니다.

yaml
apiVersion: networking.k8s.io/v1alpha1
kind: ServiceCIDR
metadata:
  name: additional-service-cidr
spec:
  cidrs:
  - "10.96.0.0/12"
  - "172.16.0.0/16"  # 추가 CIDR 블록
bash
# Service IP 사용량 확인
kubectl get servicecidr
kubectl get ipaddress

7. nftables 백엔드 GA

kube-proxy의 성능이 크게 개선되었습니다.

bash
# nftables 백엔드 활성화
kubectl get configmap kube-proxy -n kube-system -o yaml
yaml
# kube-proxy ConfigMap 업데이트
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-proxy
  namespace: kube-system
data:
  config.conf: |
    mode: "nftables"  # iptables 대신 nftables 사용

성능 향상:

Kubernetes 1.32 "Penelope" (2024년 12월)

1. Memory Manager GA

메모리 관리가 더욱 정교해졌습니다.

yaml
# kubelet 설정
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
memoryManagerPolicy: Static
reservedMemory:
- numaNode: 0
  limits:
    memory: "1Gi"
- numaNode: 1  
  limits:
    memory: "1Gi"

2. PVC Auto-Cleanup for StatefulSets

스토리지 누수 방지를 위한 자동 정리 기능입니다.

yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: database
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Delete    # StatefulSet 삭제 시 PVC도 삭제
    whenScaled: Retain     # 스케일 다운 시에는 유지

2025년 현재 활용도 분석

즉시 적용 권장 (High Priority):

  1. Sidecar Containers GA: Istio 대체 검토
  2. Multiple Service CIDRs: IP 부족 클러스터 필수
  3. nftables Backend: 대규모 환경 성능 개선

점진적 도입 (Medium Priority):

  1. In-Place Pod Resize: 스테이트풀 워크로드부터
  2. User Namespaces: 보안이 중요한 워크로드부터
  3. Volume Populators: 데이터 초기화가 필요한 애플리케이션

테스트 환경 검토 (Low Priority):

  1. Streaming Lists: 대규모 클러스터에서 효과 확인
  2. Memory Manager: NUMA 시스템에서 성능 측정

2025년 하반기 로드맵 (Kubernetes 1.34+)

예정된 주요 기능:

🔄 마이그레이션 가이드

vSphere 환경

bash
# CSI 마이그레이션 확인
kubectl get csidriver vsphere.csi.vmware.com

Azure File 환경

bash
# CSI 마이그레이션 상태 확인
kubectl get storageclass

💡 실무에서 체크해야 할 포인트

1. 즉시 확인이 필요한 것

bash
# 1. 이미지 레지스트리 확인 (가장 중요!)
kubectl get pods --all-namespaces -o jsonpath='{.items[*].spec.containers[*].image}' | tr ' ' '\n' | grep k8s.gcr.io | sort -u

# 결과가 있다면 즉시 수정 필요!
# registry.k8s.io로 변경해야 함

# 2. containerd 버전 확인
sudo containerd --version
# v1.6.0 미만이면 업그레이드 필수

# 3. 현재 쿠버네티스 버전 확인
kubectl version --short
# Client와 Server 버전 차이 확인

# 4. SeccompDefault 영향 확인
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.spec.securityContext.seccompProfile}{"\n"}{end}' | grep -v "null"

# 5. 폐기된 API 사용 확인
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found

2. 새로운 기능 활용 체크리스트

ValidatingAdmissionPolicies 도입 검토:

bash
# 현재 OPA/Gatekeeper 사용 중인지 확인
kubectl get constrainttemplates
kubectl get configs.config.gatekeeper.sh

# 새로운 ValidatingAdmissionPolicy 테스트
kubectl apply -f - <<EOF
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ValidatingAdmissionPolicy
metadata:
  name: test-policy
spec:
  failurePolicy: Warn  # 테스트 시에는 Warn 사용
  matchConstraints:
    resourceRules:
    - operations: ["CREATE"]
      apiGroups: [""]
      apiVersions: ["v1"]
      resources: ["pods"]
  validations:
  - expression: "has(object.metadata.labels['app'])"
    message: "Pod must have 'app' label"
EOF

사이드카 컨테이너 적용 검토:

bash
# 현재 사이드카 패턴 사용 중인 Pod 확인
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{len(.spec.containers)}{"\n"}{end}' | awk '$3 > 1'

# Istio 사용 여부 확인
kubectl get pods -n istio-system 2>/dev/null || echo "Istio not installed"

리소스 사용량 분석:

bash
# GPU 사용 Pod 확인
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.spec.containers[*].resources.limits.nvidia\.com/gpu}{"\n"}{end}' | grep -v "^.*\t$"

# 메모리 집약적 Pod 확인 (스왑 메모리 활용 후보)
kubectl top pods --all-namespaces | sort -k4 -h | tail -10

3. 업그레이드 계획 시 고려사항

사전 준비 체크리스트:

필수 확인 사항

  1. 컨테이너 런타임 containerd 1.6.0+ 확인
  2. 이미지 레지스트리 k8s.gcr.io → registry.k8s.io 변경
  3. 보안 정책 SeccompDefault 자동 적용 영향 검토
  4. 스토리지 CSI 마이그레이션 완료 확인

성능 최적화 기회

bash
# 1. nftables 백엔드 도입 검토
kubectl get daemonset kube-proxy -n kube-system -o yaml | grep -A5 -B5 "proxy-mode"

# 2. 스케줄러 성능 모니터링
kubectl logs -n kube-system deployment/kube-scheduler | grep "scheduling_duration_seconds" | tail -5

# 3. etcd 상태 확인
sudo etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  endpoint health

새로운 기능 활용 계획

4. 마이그레이션 우선순위

High Priority (즉시 적용)

  1. 이미지 레지스트리 변경 (k8s.gcr.io → registry.k8s.io)
  2. containerd 업그레이드 (< 1.6.0인 경우)
  3. SeccompDefault 영향 분석

Medium Priority (3-6개월 내)

  1. ValidatingAdmissionPolicies 도입
  2. 사이드카 컨테이너 적용
  3. nftables 백엔드 테스트

Low Priority (장기 계획)

  1. 동적 리소스 할당 적용
  2. 스왑 메모리 활용 검토
  3. Windows 노드 환경 개선

5. 성능 모니터링 포인트

bash
# 업그레이드 후 성능 비교를 위한 기준선 수집
echo "=== 현재 성능 기준선 수집 ==="

# 1. 스케줄링 지연 측정
kubectl logs -n kube-system deployment/kube-scheduler | grep "scheduling_duration_seconds" | tail -10

# 2. Pod 시작 시간 측정
kubectl get events --sort-by='.metadata.creationTimestamp' | grep "Started container" | tail -5

# 3. 이미지 풀 시간 측정  
kubectl get events --sort-by='.metadata.creationTimestamp' | grep "Pulling image" | tail -5

# 4. etcd 응답 시간 확인
time kubectl get nodes >/dev/null

# 5. API 서버 응답 시간
time kubectl get pods --all-namespaces >/dev/null

🎯 결론

2022년 11월 이후 쿠버네티스 발전 방향

2022년 11월 이후 쿠버네티스가 발전한 방향을 정리하면 이렇습니다.

  1. 보안 강화: SeccompDefault GA, KMS v2 암호화, User Namespaces 기본 활성화
  2. 성능 개선: nftables 백엔드 GA, Streaming List 응답, 스케줄러 최적화
  3. 새로운 기능: Sidecar Containers GA, ValidatingAdmissionPolicies, In-Place Pod Resize
  4. 운영 편의성: Multiple Service CIDRs, Volume Populators GA, Memory Manager GA
  5. 플랫폼 확장: Windows 특권 컨테이너, Linux 스왑 지원, AI/ML 워크로드 최적화

즉시 행동이 필요한 것

Critical (지금 당장 확인):

bash
# 1. 이미지 레지스트리 체크 (Breaking Change!)
kubectl get pods --all-namespaces -o jsonpath='{.items[*].spec.containers[*].image}' | grep k8s.gcr.io

가장 중요한 것은 이미지 레지스트리 변경입니다. 기존 클러스터를 운영 중이라면 반드시 k8s.gcr.io에서 registry.k8s.io로 변경해야 합니다.

Important (3개월 내 적용):

CKA 취득자로서의 소감

2년 반 전 CKA를 취득했을 때와 비교해 보면, 쿠버네티스는 "컨테이너 오케스트레이션"에서 "엔터프라이즈 클라우드 네이티브 플랫폼"으로 진화했습니다.

2025년 현재 가장 인상 깊은 변화:

다음 단계 실행 계획

이 글을 읽으신 분들께 추천하는 단계별 실행 계획입니다.

이번 주 (Week 1)

  1. 현재 클러스터 상태 진단 실행
  2. k8s.gcr.io 사용 현황 파악
  3. containerd 버전 확인

이번 달 (Month 1)

  1. 이미지 레지스트리 마이그레이션 계획 수립
  2. ValidatingAdmissionPolicies 테스트 환경 구축
  3. 성능 모니터링 기준선 수집

분기별 (Quarterly)

  1. 새로운 기능 프로덕션 적용
  2. 성능 최적화 결과 측정
  3. 팀 교육 및 문서화

지속적인 학습을 위한 팁

실무에서 활용할 수 있는 학습 방법:

  1. 실험 클러스터 구축: 새로운 기능을 안전하게 테스트
  2. 공식 문서 정기 확인: Kubernetes CHANGELOG 구독
  3. 커뮤니티 참여: CNCF 이벤트, Kubernetes SIG 미팅 참석
  4. 베스트 프랙티스 공유: 팀 내 지식 공유 세션 운영

참고 자료

공식 문서 및 릴리즈 노트:

2025년 주요 기능 가이드:

보안 및 정책 관련:

성능 최적화:

다음 글 예고:

  1. Sidecar Containers GA 가이드 - Istio에서 네이티브 사이드카로 마이그레이션
  2. In-Place Pod Resize 활용법 - 다운타임 없는 리소스 조정
  3. 대규모 클러스터 2025 최적화 - Streaming List, nftables, Multiple Service CIDRs 적용

이 글에서 다룬 범위

조사한 자료 규모:

실무 적용 가능도:

도식

100%

끌어서 이동, 두 손가락이나 휠로 확대·축소. 키보드: 화살표 이동, + − 확대·축소, 0 맞춤, Esc 닫기. 같은 내용은 그림 아래 “그림 관계를 글로 읽기”에 있다.