k8s v1.25 ~ v1.29 주요 기능

cloud2000·2024년 7월 21일
0

v1.25

  • job 재시도와 재시도 실패에 대한 개선
    Job 재시도를 제한하는 유일한 옵션이 .spec.backoffLimit이며, 이는 Job의 최대 재시도를 제한하며 그 이후에는 Job이 실패한 것으로 간주함

그러나 자체적으로 수정되지 않는 애플리케이션 오류로 인해 오류가 발생한 경우에는 이 방법이 적합하지 않고 그동안은 컨테이너 실패의 원인을 식별할 수 없습니다.

복구할 수 없는 오류를 알리는 종료 코드가 있는 경우, 더 이상의 실패를 실행하기 위해 시간을 낭비하는 대신 Job을 실패한 것으로 표시하는 것이 바람직합니다. 반면에 포드 선점, 메모리 부족으로 인한 제거 또는 노드 드레인와 같은 인프라 이벤트로 인해 컨테이너가 실패하는 것도 바람직하지 않습니다.

이러한 개선 사항을 job .spec.backFailurePolicy 을 통해 조치할 수 있도록 되었습니다.

실패의 다양한 원인에 대한 정책을 설정할 수 있게 됨으로써 Pod 제거에 대한 Jobs의 안정성을 높여 장애 원인에 따라 다른 동작을 함으로써 Job을 조기에 종료하여 인프라 장애 또는 애플리케이션 오류가 발생한 경우 백오프 시간이 늘어나는 것을 방지할 수 있게 되었습니다

  • PodSecurityPolicy 제거 및 Pod Security Admission이 stable로 전환됨. PSA는 PSP를 대체하여 namespace에 label를 추가하기만 하면 미리 정의된 Pod 보안 표준을 쉽게 적용할 수 있음.

v1.26

  • CRI v1alpha2를 사용함. 즉 containerd v1.5 이하 버전은 지원되지 않음
  • flowcontrol.apiserver.k8s.io/v1beta1에서 v1beta2를 사용해야 함.
# 확인 방법
kubectl get flowschema, prioritylevelconfiguration -A | grep v1beta1
  • autoscaling/v2beta2에서 v2를 사용해야 함.
kubectl get hpa -A | grep v2beta2
  • 동작 Kubelet configuration이 제거됨.
    Dynamic kubelet configuration was removed in v1.26 due to stability and security concerns. Previously, this configuration allowed you to roll out new kubelet configurations via the Kubernetes API by specifying a ConfigMap containing the configuration data that the kubelet should use for each node.
    We recommend using a configuration management tool like Puppet, Chef, or Ansible, or switching to static kubelet configurations by passing configurations to the kubelet using the –config.
  • klog 옵션 제거
    --log-dir, --log-file, --log-flush-frequency
    파일에 쓰고 디스크에 동기화하는 역할을 합니다. 동기: 셸 리디렉션, systemd 서비스 관리 또는 docker 로그 드라이버와 같이 설정하기 쉬운 대안이 있으므로 중요하지 않습니다. 이를 제거하면 복잡성이 줄어들고 저널에 쓰는 것과 같은 텍스트가 아닌 로거를 개발할 수 있습니다.
    --logtostderr, --alsologtostderr, --one-output, --stderrthreshold
    stderr(vs 파일)에 쓰기를 활성화/비활성화하는 책임. 동기: 라우팅 로그는 Fluentd, Fluentbit, Logstash와 같은 모든 로그 프로세서에서 쉽게 구현할 수 있습니다.
    --log-file-max-size, --skip-log-headers
    파일 회전의 책임 있는 구성. 동기: 파일에 쓰기가 제거된 경우 필요하지 않음.
    --add-dir-header, --skip-headers
    klog 형식별 플래그. 동기: 다른 로그 형식에는 적용되지 않음
    --log-backtrace-at
    레거시 glog 기능. 동기: 이 기능을 사용하는 사람의 흔적이 없습니다.

v1.27

  • k8s.gcr.io 에서 registry.k8s.io로 이미지 레지스트리 주소변경
  • seccomp 기본값 사용
  • PV, PVC에서 ReadWriteOncePod 모드 도입
  • Kubernetes API를 통한 서비스 로그 조회

v1.28

  • Non-graceful node shutdown 복구
  • CRD 규칙 검증
  • kubeadm CA 인증서의 날짜 지정 생성
  • 자동 storageclass 할당
  • kubeadm config validate 명령 추가

native sidecar 도입

  • feature-getes 활성화 필요.

  • initContainers의 restartPolicy: Always로 설정하게 되면 컨테이너가 종료되면 다시 시작됨. startupProbe가 성공적으로 완료된 후 후속 init 컨테이너는 다시 시작 가능한 init 컨테이너가 종료될 때까지 기다리지 않고 즉시 시작됨.

  • 재시작 가능한 init 컨테이너 리소스가 이제 주요 컨테이너의 리소스 요청 합계에 추가됨으로 pod의 리소스 사용계산이 변경됨.

  • Pod replacement policy
    https://kubernetes.io/blog/2023/08/21/kubernetes-1-28-jobapi-update/

  • Backoff limit per index

v1.29

  • Pod lifecycle 상태 중 PodReadyToStartContainers 이 beta로 승격됨
  • Non-graceful node shutdown 복구
  • CRD 규칙 검증
  • kubeadm CA 인증서의 날짜 지정 생성
  • 자동 storageclass 할당
  • kubeadm config validate 명령 추가
  • Native sidecar container 지원 (https://buoyant.io/blog/kubernetes-1-28-revenge-of-the-sidecars)
profile
클라우드쟁이

0개의 댓글

관련 채용 정보