마구잡

KUBERNETES 1.31 변경이력 [ 번역본 ] 본문

Kubernetes/Kubernetes 버전별 변경 이력

KUBERNETES 1.31 변경이력 [ 번역본 ]

MAGUJOB 2024. 8. 7. 13:39
반응형

긴급 업데이트

(업그레이드 전 필독 사항)

  • Kubelet flag --keep-terminated-pod-volumes가 제거되었습니다. 이 플래그는 2017년에 사용 중단되었습니다. (#122082, @carlory) [SIG Apps, Node, Storage and Testing]

사용 중단

  • CephFS 볼륨 플러그인 (kubernetes.io/cephfs)이 이번 릴리스에서 제거되었으며 cephfs 볼륨 타입이 비활성화되었습니다. 대안으로 CephFS CSI 드라이버 (https://github.com/ceph/ceph-csi/)를 Kubernetes 클러스터에서 사용하십시오. 클러스터 버전을 1.31+로 업그레이드하기 전에 kubernetes.io/cephfs 볼륨 플러그인을 사용했다면 새로운 드라이버를 사용하기 위해 애플리케이션을 다시 배포해야 합니다. (#124544, @carlory) [SIG Node, Scalability, Storage and Testing]

  • CephRBD 볼륨 플러그인 (kubernetes.io/rbd)이 이번 릴리스에서 제거되었습니다. CSI 마이그레이션 지원도 제거되어 rbd 볼륨 타입이 비활성화되었습니다. 대안으로 RBD CSI 드라이버 (https://github.com/ceph/ceph-csi/)를 Kubernetes 클러스터에서 사용하십시오. 클러스터 버전을 1.31+로 업그레이드하기 전에 kubernetes.io/rbd 볼륨 플러그인을 사용했다면 새로운 드라이버를 사용하기 위해 애플리케이션을 다시 배포해야 합니다. (#124546, @carlory) [SIG Node, Scalability, Scheduling, Storage and Testing]

  • Kube-scheduler가 모든 비-CSI volumelimit 플러그인을 사용 중단하였고 이를 기본 플러그인에서 제거했습니다.

    • AzureDiskLimits
    • CinderLimits
    • EBSLimits
    • GCEPDLimits

    NodeVolumeLimits 플러그인은 위의 플러그인과 동일한 기능을 처리할 수 있습니다. 위의 볼륨 타입이 CSI로 마이그레이션되었기 때문에, 스케줄러 구성에서 해당 플러그인을 명시적으로 사용하는 경우 해당 플러그인을 제거하고 NodeVolumeLimits 플러그인으로 대체하십시오. 이러한 플러그인은 릴리스 1.32에서 제거될 것입니다. (#124500, @carlory) [SIG Scheduling and Storage]

  • Kubeadm: kubeadm RootlessControlPlane 기능 게이트가 사용 중단되었습니다. Kubernetes 코어의 UserNamespacesSupport 기능 게이트가 1.30에서 Beta로 졸업했기 때문입니다. Kubernetes 코어의 사용자 네임스페이스 지원이 일반적으로 사용 가능해지고 kubeadm이 사용자 네임스페이스 포드에서 컨트롤 플레인을 실행할 수 있도록 지원하기 시작하면, kubeadm RootlessControlPlane 기능 게이트는 완전히 제거될 것입니다. kubeadm이 기본적으로 사용자 네임스페이스 기능을 지원하기 전까지, 사용자는 사용 중단된 RootlessControlPlane 기능 게이트를 계속 사용하거나 정적 포드 매니페스트에서 UserNamespacesSupport를 사용하도록 선택할 수 있습니다. (#124997, @neolit123) [SIG Cluster Lifecycle]

  • Kubeadm: 'init kubelet-finalize' 하위 단계를 'experimental-cert-rotation'으로 표시하고 이를 직접 사용할 경우 경고를 출력합니다. 이 하위 단계는 나중에 완전히 제거될 것입니다. 대체 하위 단계로 'enable-client-cert-rotation'을 추가했습니다. (#124419, @neolit123) [SIG Cluster Lifecycle]

  • k8s.io/legacy-cloud-providers를 스테이징에서 제거했습니다. (#124767, @carlory) [SIG API Machinery, Cloud Provider and Release]

  • 레거시 클라우드 공급자 통합 코드를 제거했습니다 (이전 커밋을 되돌리는 작업). (#124886, @carlory) [SIG Cloud Provider and Release]

API Change

  • CEL 확장 라이브러리의 엄격한 비용 계산을 시행하기 위해 StrictCostEnforcementForVAPStrictCostEnforcementForWebhooks 기능 게이트를 추가했습니다. 가능한 한 빨리 기능 게이트를 켜는 것이 강력히 권장됩니다. (#124675, @cici37) [SIG API Machinery, Auth, Node and Testing]
  • Component-base/logs: Go >= 1.21로 컴파일된 경우, component-base는 slog 기본 로거를 자동으로 구성하고 klog를 초기화합니다. (#120696, @pohly) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Storage and Testing]
  • DRA: ResourceHandle의 클라이언트 측 유효성 검사가 DriverName을 누락한 경우를 수락할 수 있으며, 서버 측 유효성 검사는 오류를 발생시킵니다. (#124075, @pohly) [SIG Apps]
  • 컨트롤러 참조를 가져올 때 Deep Copy 문제를 수정했습니다. (#124116, @HiranmoyChowdhury) [SIG API Machinery and Release]
  • Job의 managedBy 필드에 대한 주석을 수정했습니다. (#124793, @mimowo) [SIG API Machinery and Apps]
  • imagePullSecrets 및 hostAliases 필드의 openapi 설명에서 키로 사용된 필드를 기본값 또는 필수 필드로 표시하지 않던 1.30.0의 회귀를 수정했습니다. (#124553, @pmalek) [SIG API Machinery]
  • MatchLabelKeys/MismatchLabelKeys 기능을 PodAffinity/PodAntiAffinity에서 Beta로 졸업시켰습니다. (#123638, @sanposhiho) [SIG API Machinery, Apps, Scheduling and Testing]
  • DisableNodeKubeProxyVersion 기능 게이트를 Beta로 졸업시켰습니다. 기본적으로, kubelet은 관련된 노드의 .status.kubeProxyVersion 필드를 설정하려고 하지 않습니다. (#123845, @HirazawaUi) [SIG API Machinery, Cloud Provider, Network, Node and Testing]
  • 많은 노드가 있을 때, 그리고 prefilter가 1-2개의 노드를 반환할 때 스케줄링 성능이 향상되었습니다. (#125197, @gabesaba) [SIG Scheduling]
  • k8s.io/apimachinery/pkg/util/runtime: 새로운 호출은 발생한 컨텍스트에서 패닉과 오류를 처리할 수 있도록 지원합니다. PanicHandlersErrorHandlers는 이제 컨텍스트 매개변수를 수락해야 합니다. 로그 출력은 비구조적에서 구조적으로 변경되었습니다. (#121970, @pohly) [SIG API Machinery and Instrumentation]
  • Kube-apiserver: --encryption-provider-config 파일이 중복 또는 알 수 없는 필드가 포함된 경우 strict deserialization으로 로드됩니다. 이는 잘못된 형식, 잘못된 들여쓰기 또는 필드 이름의 오타가 있는 구성 파일로 실행되는 것을 방지하고 예기치 않은 동작을 방지합니다. --encryption-provider-config-automatic-reload를 사용하는 경우, kube-apiserver가 실행된 후 오타가 포함된 새로운 암호화 구성 파일이 유효하지 않은 것으로 간주되고 마지막 유효한 구성이 사용됩니다. (#124912, @enj) [SIG API Machinery and Auth]
  • Kube-controller-manager가 사용 중단된 명령 플래그: --volume-host-cidr-denylist 및 --volume-host-allow-local-loopback을 제거했습니다. (#124017, @carlory) [SIG API Machinery, Apps, Cloud Provider and Storage]
  • Kube-controller-manager: horizontal-pod-autoscaler-upscale-delayhorizontal-pod-autoscaler-downscale-delay 플래그가 제거되었습니다 (v1.12부터 사용 중단되고 비활성화됨). (#124948, @SataQiu) [SIG API Machinery, Apps and Autoscaling]
  • 보조 그룹 정책의 세분화된 제어를 지원하는 KEP-3619을 통해 첫 번째 컨테이너 프로세스에서 보조 그룹에 대한 세부 제어를 지원합니다. 컨테이너의 기본 uid에 대해 컨테이너 이미지(/etc/groups)에 정의된 그룹을 포함할지 여부를 선택할 수 있습니다. (#117842, @everpeace) [SIG API Machinery, Apps and Node]
  • kube-proxy의 nodeportAddresses / --nodeport-addresses 옵션은 이제 "primary" 값을 수락하여 노드의 기본 IPv4 및/또는 IPv6 주소에서만 NodePort 연결을 수신 대기합니다. (#123105, @danwinship) [SIG API Machinery, Network and Windows]

기능

  • kubectl debug--keep-* 플래그를 추가하여 copy pod에서 프로브, 레이블, 주석 및 initContainers를 제거하는 것을 제어할 수 있게 했습니다. (#123149, @mochizuki875) [SIG CLI and Testing]
  • apiserver.latency.k8s.io/apf-queue-wait 주석을 감사 로그에 추가하여 apf 큐에서 대기한 시간을 기록합니다. (#123919, @hakuna-matatah) [SIG API Machinery]
  • client-gorest clientWatchList 메서드를 추가했습니다. 사용 시, 서버에서 데이터의 일관된 스냅샷을 얻기 위해 스트림을 설정합니다. 이 메서드는 생성된 클라이언트에 의해 사용됩니다. (#122657, @p0lyn0mial) [SIG API Machinery]
  • cri-client 스테이징 리포지토리를 추가했습니다. (#123797, @saschagrunert) [SIG API Machinery, Node, Release and Testing]
  • kubectl logs--all-pods 플래그를 추가하여 포드 선택기를 사용하는 객체에서 모든 포드를 가져올 수 있습니다. (#124732, @cmwylie19) [SIG CLI and Testing]
  • kubectl port-foward 명령에 포트 자동 완성을 추가했습니다. (#124683, @TessaIO) [SIG CLI]
  • Windows kube-proxy 컨테이너 이미지를 빌드하는 기능을 추가했습니다. 이제 make release-images KUBE_BUILD_WINDOWS=y 명령으로 Windows kube-proxy 이미지를 빌드할 수 있습니다. Windows kube-proxy 이미지는 Windows 호스트 프로세스 컨테이너와 함께 사용할 수 있습니다. (#109939, @claudiubelu) [SIG Windows]
  • kubectl set image의 자동 완성을 추가했습니다. (#124592, @ah8ad3) [SIG CLI]
  • 노드 객체에 바인딩된 서비스 계정 토큰을 생성할 수 있도록 허용합니다. 이를 통해 서비스 계정 토큰의 유효성을 명명된 노드 객체에 바인딩할 수 있습니다. kubectl create token <serviceaccount-name> --bound-object-kind=Node --bound-object-node=<node-name>을 사용하십시오. (#125238, @munnerz) [SIG Auth and CLI]
  • CEL 기본 호환 환경 버전을 1.30으로 업데이트하여 1.30 이전에 추가된 확장 라이브러리를 사용할 수 있습니다. (#124779, @cici37) [SIG API Machinery]
  • CEL 표현식 및 additionalProperties가 이제 CRD 스키마의 중첩된 수량자에서 사용될 수 있습니다. (#124381, @alexzielenski) [SIG API Machinery]
  • CEL: 이름 형식 라이브러리를 추가했습니다. (#123572, @alexzielenski) [SIG API Machinery]
  • ConsistentListFromCache가 활성화된 경우 지원되지 않는 etcd 버전에 대해 경고하도록 etcd 버전을 확인합니다. (#124612, @ah8ad3) [SIG API Machinery]
  • Client-go/reflector: 초기 이벤트에 대한 북마크 이벤트를 수신하지 못한 경우 경고합니다. (#124614, @p0lyn0mial) [SIG API Machinery]
  • 사용자 정의 리소스 필드 선택기가 이제 베타이며 기본적으로 활성화되어 있습니다. 자세한 내용은 kubernetes/enhancements#4358를 참조하십시오. (#124681, @jpbetz) [SIG API Machinery, Auth and Testing]
  • Dependencies: registry.k8s.io/pause:3.10 사용을 시작합니다. (#125112, @neolit123) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Testing and Windows]
  • CDI 디바이스 ID에 대한 지원을 일반 사용으로 졸업시켰습니다. DevicePluginCDIDevices 기능 게이트는 이제 무조건 활성화됩니다. (#123315, @bart0sh) [SIG Node]
  • Kube-apiserver: --disable-http2-serving 플래그를 사용하여 http/2 서빙을 비활성화할 수 있습니다. (#122176, @slashpai) [SIG API Machinery]
  • kube-proxy의 nftables 모드(--proxy-mode=nftables)가 이제 베타이며 기본적으로 사용 가능합니다. (#124383, @danwinship) [SIG Cloud Provider and Network]
  • kube-scheduler는 CSILimit 플러그인에 대한 스케줄링 힌트를 구현합니다. 스케줄링 힌트는 동일한 드라이버의 PVC를 가진 삭제된 포드가 있는 경우 이전에 CSILimit 플러그인에 의해 거부된 포드를 다시 스케줄링할 수 있도록 스케줄러에 재시도를 허용합니다. (#121508, @utam0k) [SIG Scheduling and Storage]
  • kube-scheduler는 InterPodAffinity 플러그인에 대한 스케줄링 힌트를 구현합니다. 스케줄링 힌트는 관련 포드 또는 포드 친화성에 맞는 노드를 생성/삭제/업데이트하는 경우 이전에 InterPodAffinity 플러그인에 의해 거부된 포드를 다시 스케줄링할 수 있도록 스케줄러에 재시도를 허용합니다. (#122471, @nayihz) [SIG Scheduling and Testing]
  • kubeadm: "upgrade" 동안 "etcd.yaml" 정적 포드가 업그레이드될 필요가 없는 경우에도 "kube-apiserver.yaml" 매니페스트가 업그레이드되어야 하고 인증서 갱신이 비활성화되지 않은 경우 etcd 인증서를 회전하고 etcd 정적 포드를 다시 시작하는 것을 고려합니다. (#124688, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: "patches" 기능을 향상시켜 coredns 배포를 패치할 수 있게 했습니다. 새로운 패치 대상은 "corednsdeployment"입니다 (예: 패치 파일 "corednsdeployment+json.json"). 이를 통해 "init" 및 "upgrade" 동안 coredns 배포에 사용자 정의 패치를 적용할 수 있습니다. (#124820, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadm: "--experimental-output' 플래그를 사용 중단으로 표시하고 경고 메시지를 출력합니다. 이 플래그는 미래 릴리스에서 제거될 것입니다. (#124393, @carlory) [SIG Cluster Lifecycle]
  • kubeadm: etcd 3.5.11에서 도입된 새로운 엔드포인트로 전환하여 "livez" (생존성 프로브) 및 "readyz" (준비성 및 시작성 프로브)를 사용합니다. 이 변경으로 kubeadm 1.31을 사용하여 3.5.11 이전의 etcd 버전을 사용자 정의하여 배포할 수 없습니다. (#124465, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: CRI 엔드포인트에 대한 작업을 위해 crictl 바이너리를 셸 아웃하는 대신 새로운 CRI 클라이언트 라이브러리를 사용합니다. kubeadm deb/rpm 패키지는 한 번 더 릴리스 동안 cri-tools 패키지를 계속 설치하지만, 스크립트를 조정하여 https://github.com/kubernetes-sigs/cri-tools/releases 또는 다른 위치에서 수동으로 crictl을 설치해야 합니다. (#124685, @saschagrunert) [SIG Cluster Lifecycle]
  • kubeadm: "kubeadm config images list" 및 "kubeadm token list" 명령에 대해 구조적 출력을 인쇄하기 위해 output/v1alpha3를 사용합니다. (#124464, @carlory) [SIG Cluster Lifecycle]
  • kubelet 서버는 이제 동적으로 인증서 파일을 로드할 수 있습니다. (#124574, @zhangweikop) [SIG Auth and Node]
  • pod 사양의 이미지 외의 필드가 변경될 때 kubelet은 컨테이너를 다시 시작하지 않습니다. (#124220, @HirazawaUi) [SIG Node]
  • Kubemark: --kube-api-qps--kube-api-burst 플래그를 추가했습니다. (#124147, @devincd) [SIG Scalability]
  • Kubernetes는 이제 go 1.22.3으로 빌드됩니다. (#124828, @cpanato) [SIG Release and Testing]
  • Kubernetes는 이제 go 1.22.4로 빌드됩니다. (#125363, @cpanato) [SIG Architecture, Cloud Provider, Release, Storage and Testing]
  • Windows용 pause 바이너리에 -v 플래그를 추가하여 pause의 버전을 인쇄하고 종료합니다. (#125067, @neolit123) [SIG Windows]
  • generateName 재시도 기능이 베타로 승격되었으며, NameGenerationRetries 기능 게이트가 기본적으로 활성화되었습니다. 자세한 내용은 https://kep.k8s.io/4420를 참조하십시오. (#124673, @jpbetz) [SIG API Machinery]
  • 스케줄러가 evaluatedNodes를 계산하는 논리를 "PreFilterResult 및 Filter 플러그인에 의해 필터링된 노드 수 포함"에서 "Filter 플러그인에 의해서만 필터링된 노드 수"로 변경했습니다. (#124735, @AxeZhan) [SIG Scheduling]
  • 서비스는 ClusterIP 및 Type 필드에 대한 필드 선택기를 구현합니다. kubelet은 필드 선택기를 사용하여 Headless 서비스를 시청하는 것을 방지하고 메모리 소비를 줄입니다. (#123905, @aojea) [SIG Apps, Node and Testing]
  • iptables 모드의 kube-proxy는 localhost의 node-ports로 향하는 수락된 패킷을 추적하여 kubeproxy_iptables_localhost_nodeports_accepted_packets_total 메트릭을 도입합니다. (#125015, @aroradaman) [SIG Instrumentation, Network and Testing]
  • iptables 모드의 kube-proxy는 conntrack에 의해 잘못 표시된 패킷을 추적하여 kubeproxy_iptables_ct_state_invalid_dropped_packets_total 메트릭을 도입합니다. (#122812, @aroradaman) [SIG Instrumentation, Network and Testing]
  • CEL 선택적 타입의 이름을 optional에서 optional_type으로 변경했습니다. (#124328, @jiahuif) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Network and Node]
  • 스케줄러는 TaintToleration 플러그인에서 QueueingHint를 구현하여 스케줄링 처리량을 향상시킵니다. (#124287, @sanposhiho) [SIG Scheduling and Testing]
  • 사이드카 완료 시간이 작업 완료 시간 계산에 포함됩니다. (#124942, @AxeZhan) [SIG Apps]
  • 이 PR은 추적 지원을 kubelet의 읽기 전용 엔드포인트에 추가하여 추적이 현재 없는 부분을 보완합니다. (#121770, @frzifus) [SIG Node]
  • 사용자는 모든 프로파일에서 스케줄러에 있는 대기 포드를 순회할 수 있습니다. 이전에는 각 프로파일이 해당 프로파일 내의 대기 포드만 얻을 수 있었습니다. (#124926, @kerthcet) [SIG Scheduling]

Failing Test

  • Pkg k8s.io/apiserver/pkg/storage/cacher, method (*Cacher) Wait(context.Context) error (#125450, @mauri870) [SIG API Machinery]
  • Revert "remove legacycloudproviders from staging" (#124864, @carlory) [SIG Release]

버그 또는 회귀

  • .status.terminating 필드가 이제 Job 실패 시 삭제된 활성 포드에 대해 올바르게 추적됩니다. (#125175, @dejanzele) [SIG Apps and Testing]
  • kubectl describe configmap 실행 시 데이터의 서로 다른 키-값 쌍 사이에 추가 줄을 추가했습니다. (#123597, @siddhantvirus) [SIG CLI]
  • proto 파일 경로와 함께 매개변수를 설정할 수 있도록 허용합니다. (#124281, @fulviodenza) [SIG API Machinery]
  • Cel: 수량 값을 수량 값으로 변환하는 과정에서 실패했습니다. (#123669, @pohly) [SIG API Machinery]
  • Client-go/tools/record.Broadcaster: WithContext 취소 시 자동 종료를 수정했습니다. (#124635, @pohly) [SIG API Machinery]
  • 특정 시나리오에서 Pod이 배치 Job이 아닌 API 객체에 의해 제어되는 경우 "batch.kubernetes.io/job-tracking" finalizer를 Pod에서 제거하지 않습니다. (#124798, @mimowo) [SIG Apps and Testing]
  • rol
  • 에 대한 추가 규칙 요구 사항을 제거하여 kubectl create cronjobs를 사용하는 역할에서 하위 호환성을 유지합니다. (#124883, @ardaguclu) [SIG CLI]
  • StatefulSet 라이프사이클에서 RecreatingFailedPod 및 RecreatingTerminatedPod 이벤트의 방출을 제거했습니다. (#123809, @atiratree) [SIG Apps and Testing]
  • EndpointSliceMirroring 컨트롤러에 의해 Endpoints에서 미러링된 Endpointslices가 수정된 경우 동기화되지 않았습니다. (#124131, @zyjhtangtang) [SIG Apps and Network]
  • 오래된 비정상 포드를 최대 비가용 예산에 포함하도록 DaemonSet 컨트롤러를 수정했습니다. (#123233, @marshallbrekka) [SIG Apps]
  • "-kube-test-repo-list" e2e 플래그가 효과를 발휘하지 않는 문제를 수정했습니다. (#123587, @huww98) [SIG API Machinery, Apps, Autoscaling, CLI, Network, Node, Scheduling, Storage, Testing and Windows]
  • 변환하는 informer에서 발생하는 race condition을 수정했습니다. Resync 작업 중 객체에 액세스할 때 발생합니다. 변환 기능을 멱등적으로 만듭니다. (#124352, @wojtek-t) [SIG API Machinery and Scheduling]
  • 변환하는 informer에서 발생하는 race condition을 수정했습니다. Resync 작업 중 객체에 액세스할 때 발생합니다. (#124344, @wojtek-t) [SIG API Machinery]
  • 포드에 SecurityContext가 있고 RunAsUser를 사용하는 경우 Windows에서 kubelet이 실패하는 문제를 수정했습니다. (#125040, @carlory) [SIG Storage, Testing and Windows]
  • DaemonSet 포드를 스케줄링할 때 처리량을 300 포드/초로 향상시켜 구성된 qps가 이를 허용합니다. (#124714, @sanposhiho) [SIG Scheduling]
  • resourceclaim 컨트롤러가 podSchedulingSynced 및 templatesSynced를 대기하는 것을 잊어버렸습니다. (#124589, @carlory) [SIG Apps and Node]
  • Windows cmd.exe에서 경로에 공백이 있는 경우 EDITOR/KUBE_EDITOR를 수정했습니다. (#112104, @oldium) [SIG CLI and Windows]
  • JSON 프레임 리더의 버그를 수정했습니다. 이는 전달된 바이트 슬라이스의 기본 배열에 대한 참조를 유지할 수 있습니다. (#123620, @benluddy) [SIG API Machinery]
  • 스케줄러가 prefilter가 존재하지 않는 노드를 반환할 때 충돌하는 버그를 수정했습니다. (#124933, @AxeZhan) [SIG Scheduling and Testing]
  • kubectl describe가 NetworkPolicy 포트 범위를 잘못 표시하는 버그를 수정했습니다. (시작 포트만 표시). (#123316, @jcaamano) [SIG CLI]
  • 외부 클라우드 공급자를 사용하는 경우 kubelet --hostname-override가 올바르게 작동하지 않는 회귀를 수정했습니다. (#124516, @danwinship) [SIG Node]
  • kube-aggregator를 통해 프록시된 요청에 대해 추적 스팬을 연결하지 못하는 문제를 수정했습니다. (#124189, @toddtreece) [SIG API Machinery]
  • kubectl get --sort-by 플래그가 문자열을 알파벳순으로 정렬하지 않는 버그를 수정했습니다. (#124514, @brianpursley) [SIG CLI]
  • ValidatingAdmissionPolicyBinding에서 paramRef가 참조하는 객체에 대한 사용 권한이 없음을 나타내는 오류 형식을 수정했습니다. (#124653, @m1kola) [SIG API Machinery]
  • 자원 압박으로 인한 하드 제거 시, 포드가 전체 종료 유예 기간을 갖도록 하던 버그를 수정했습니다. 이 버그는 강제 삭제된 포드에도 영향을 미쳤습니다. 두 경우 모두 이제 종료 유예 기간이 1초입니다. (#124063, @olyazavr) [SIG Node]
  • 사용자 정의 리소스 유효성 검사 오류 메시지에서 누락된 status. 접두사를 수정했습니다. (#123822, @JoelSpeed) [SIG API Machinery]
  • 많은 게이트된 포드가 있을 때 스케줄링 지연을 개선했습니다. (#124618, @gabesaba) [SIG Scheduling and Testing]
  • Job: SuccessPolicy 기능 게이트가 활성화된 경우와 관계없이 성공 정책을 사용하는 Job에 SuccessCriteriaMet를 추가할 수 있는 버그를 수정했습니다. (#125429, @tenzen-y) [SIG Apps]
  • kube-apiserver: initContainer 상태가 잘못된 포드를 인쇄할 때 1.28 회귀를 수정했습니다. (#124906, @liggitt) [SIG Node]
  • kubeadm: 'kubeadm init phase certs sa'가 '--config' 플래그를 수락할 수 있도록 허용합니다. (#125396, @Kavinraja-G) [SIG Cluster Lifecycle]
  • kubeadm: kube-apisever 및 kube-controller-manager 포드에서 /etc/pki를 추가적인 Linux 시스템 CA 위치로 마운트하지 않습니다. /etc/pki/ca-trust 및 /etc/pki/tls/certs 대신 마운트합니다. /etc/ca-certificate, /usr/share/ca-certificates, /usr/local/share/ca-certificates 및 /etc/ssl/certs는 계속 마운트됩니다. (#124361, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: kubelet 구성에서 구성된 healthz 주소:포트를 존중하여 kubelet 상태 확인 동안 localhost:10248을 하드 코딩하지 않습니다. (#125265, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: "kubeadm upgrade"의 사전 비행 검사 "CreateJob" 동안 스케줄할 수 있는 노드가 없는지 확인합니다. 하나도 없는 경우 경고를 표시하고 이 사전 비행 검사를 건너뜁니다. 이는 단일 노드 클러스터에서 유일한 노드가 배수된 경우 발생할 수 있습니다. (#124503, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: "kubeadm upgrade" 명령 동안 kube-system/kubelet-config ConfigMap에서 KubeletConfiguration을 제대로 다운로드하지 못해 로컬 '/var/lib/kubelet/config.yaml' 파일이 기본 구성으로 작성되는 회귀를 수정했습니다. (#124480, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: PublicKeysECDSA 기능 게이트가 kubeconfig 파일을 생성할 때 존중되지 않는 버그를 수정했습니다. (#125388, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: 특정 Windows 설정에서 "IsPrivilegedUser" 사전 비행 검사가 실패하지 않도록 개선했습니다. (#124665, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: 글로벌 --rootfs 플래그가 이제 비실험적입니다. (#124375, @neolit123) [SIG Cluster Lifecycle]
  • kubectl create secret docker-registry --from-file=<path/to/.docker/config.json>kubectl create secret docker-registry --from-file=.dockerconfigjson=<path/to/.docker/config.json>을 지원합니다. (#119589, @carlory) [SIG CLI]
  • 종료된 포드일 때 포드 상태를 '실패' 또는 '성공'으로 표시합니다. (#122038, @lowang-bh) [SIG CLI]
  • DRA 드라이버가 Node(Un)PrepareResources 응답의 일부로 nil을 반환할 때 kubelet이 충돌하지 않도록 수정했습니다. (#124091, @bitoku) [SIG Node]
  • 위치 인수가 있는 경우 kubectl-create-subcommand 플러그인을 찾도록 kubectl을 수정했습니다. 예: kubectl create subcommand arg. (#124123, @sttts) [SIG CLI]
  • PersistentVolumeLabel 어드미션 플러그인을 제거했습니다. 유사한 기능이 필요한 경우 https://github.com/kubernetes-sigs/cloud-pv-admission-labeler를 대신 사용하십시오. (#124505, @jsafrane) [SIG API Machinery, Auth and Storage]
  • StatefulSet 자동 삭제는 PVC 클레임의 제어 소유자를 존중합니다. (#122499, @mattcary) [SIG Apps and Testing]
  • client-gen에 의해 생성된 "가짜" 클라이언트는 이제 실제 클라이언트와 동일한 오류 의미 체계를 갖습니다. 특히 실패한 Get(), Create() 등은 더 이상 nil을 반환하지 않습니다. 이제 실제 클라이언트처럼 0 값 객체에 대한 포인터를 반환합니다. 이는 result == nil이 아니라 err != nil을 테스트하던 일부 하위 단위 테스트를 중단시키며, 일부 경우 잘못된 하위 단위 테스트에 의해 숨겨진 기본 코드의 버그를 노출시킬 수 있습니다. (#122892, @danwinship) [SIG API Machinery, Auth, Cloud Provider, Instrumentation and Storage]
  • 서비스 LoadBalancer 컨트롤러가 service.Status 새 IPMode 필드를 올바르게 고려하지 않았으며 상태가 변경되었는지 비교할 때 포트를 제외하여 변경 사항이 service.Status를 올바르게 업데이트하지 못하게 했습니다. (#125225, @aojea) [SIG Apps, Cloud Provider and Network]
  • nftables 모드의 kube-proxy는 이제 "iptables" 이름의 메트릭을 보고하는 대신 자체 메트릭을 가집니다. (#124557, @danwinship) [SIG Network and Windows]
  • --healthz-bind-address 및 --metrics-bind-address 매개변수의 기본값 설명을 업데이트했습니다. (#123545, @yangjunmyfm192085) [SIG Network]

Other (Cleanup or Flake)

  • ACTION-REQUIRED: v1alpha2 kubelet gRPC API를 사용하는 DRA 드라이버는 더 이상 지원되지 않으며 업데이트가 필요합니다. (#124316, @pohly) [SIG Node and Testing]
  • etcd 이미지 v3.5.13을 빌드합니다. (#124026, @liangyuanpeng) [SIG API Machinery and Etcd]
  • etcd 이미지 v3.5.14를 빌드합니다. (#125235, @humblec) [SIG API Machinery]
  • CSI 사양 지원이 이번 릴리스에서 v1.9.0으로 향상되었습니다. (#125150, @humblec) [SIG Storage and Testing]
  • E2e.test 및 e2e_node.test: alpha 또는 beta 기능 게이트에 의존하는 테스트는 이제 Ginkgo 레이블로 Feature:Alpha 또는 Feature:Beta를 가집니다. 인라인 텍스트는 [Alpha] 또는 [Beta]입니다. (#124350, @pohly) [SIG Testing]
  • Etcd: v3.5.13으로 업데이트합니다. (#124027, @liangyuanpeng) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]
  • apiserver_watch_cache_resource_version 메트릭을 노출하여 watchcache 문제를 디버깅하는 것을 간소화합니다. (#125377, @wojtek-t) [SIG API Machinery and Instrumentation]
  • kube-scheduler의 pod_scheduling_sli_duration_seconds 메트릭의 도움말 텍스트에서 오타를 수정했습니다. (#124221, @arturhoo) [SIG Instrumentation, Scheduling and Testing]
  • Job-controller: JobReadyPods 기능 플래그가 제거되었습니다. (v1.31 이후 사용 중단됨). (#125168, @kaisoz) [SIG Apps]
  • kubeadm: NodeSwap 검사를 수행하는 경고 메시지를 개선했습니다. (#125157, @carlory) [SIG Cluster Lifecycle]
  • kubeadm: kubeadm에 대해 여전히 지원되는 klog 플래그만 활성화하여 원하지 않는 플래그를 숨기지 않습니다. 이는 --alsologtostderr, --log-backtrace-at, --log-dir, --logtostderr, --log-file, --log-file-max-size, --one-output, --skip-log-headers, --stderrthreshold--vmodule과 같은 이전에 권장되지 않는 숨겨진 klog 플래그가 더 이상 사용되지 않음을 의미합니다. (#125179, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadm: "kubeadm join control-plane-prepare download-certs" 단계에서 EXPERIMENTAL 태그를 제거했습니다. (#124374, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: 사용 중단된 "kubeadm join control-plane-join update-status" 단계를 제거했습니다. (#124373, @neolit123) [SIG Cluster Lifecycle]
  • kubeadm: 사용 중단된 output.kubeadm.k8s.io/v1alpha2 API를 제거했습니다. v1alpha3을 사용하십시오. (#124496, @carlory) [SIG Cluster Lifecycle]
  • kubeadm: 사용 중단된 UpgradeAddonsBeforeControlPlane 기능 게이트를 제거했습니다. CoreDNS 및 kube-proxy 애드온의 업그레이드는 모든 컨트롤 플레인 인스턴스가 업그레이드될 때까지 트리거되지 않습니다. (#124715, @SataQiu) [SIG Cluster Lifecycle]
  • kubeadm: 글로벌 --rootfs 플래그는 이제 비실험적입니다. (#124375, @neolit123) [SIG Cluster Lifecycle]
  • kubectl describe serviceingress는 이제 endpoints 대신 endpointslices를 사용합니다. (#124598, @aroradaman) [SIG CLI and Network]
  • Kubelet 플래그 --iptables-masquerade-bit--iptables-drop-bit가 v1.28에서 사용 중단되었고 이제 완전히 제거되었습니다. (#122363, @carlory) [SIG Network and Node]
  • pkg/proxy를 문맥 로깅을 사용하도록 마이그레이션했습니다. (#122979, @fatsheep9146) [SIG Network and Scalability]
  • 원격 CRI 구현을 kubelet에서 k8s.io/cri-client 리포지토리로 이동했습니다. (#124634, @saschagrunert) [SIG Node, Release and Testing]
  • GA ServiceNodePortStaticSubrange 기능 게이트를 제거했습니다. (#124738, @xuzhenglun) [SIG Network]
  • 일반적으로 사용 가능한 기능 게이트 CSINodeExpandSecret을 제거했습니다. (#124462, @carlory) [SIG Storage]
  • 일반적으로 사용 가능한 기능 게이트 ConsistentHTTPGetHandlers를 제거했습니다. (#124463, @carlory) [SIG Node]
  • reflector에서 ENABLE_CLIENT_GO_WATCH_LIST_ALPHA 환경 변수를 제거합니다. 기능을 활성화하려면 KUBE_FEATURE_WatchListClient 환경 변수를 설정하거나 해당하는 명령줄 옵션을 사용하십시오 (이 옵션은 이를 명시적으로 노출하는 바이너리에서만 작동합니다). (#122791, @p0lyn0mial) [SIG API Machinery and Testing]
  • 마지막 남은 내장 gcp 클라우드 공급자 및 자격 증명 공급자를 제거합니다. 대신 https://github.com/kubernetes/cloud-provider-gcp에서 외부 클라우드 공급자 및 자격 증명 공급자를 사용하십시오. (#124519, @dims) [SIG API Machinery, Apps, Auth, Autoscaling, Cloud Provider, Instrumentation, Network, Node, Scheduling, Storage and Testing]
  • 스케줄러 프레임워크: PreBind 구현은 이제 Pending 및 Unschedulable 상태 코드를 반환할 수 있습니다. (#125360, @pohly) [SIG Scheduling]
  • "DefaultHostNetworkHostPortsInPodTemplates" 기능 게이트가 제거되었습니다. 이 동작은 v1.28에서 사용 중단되었으며, 문제 보고가 없었습니다. (#124417, @thockin) [SIG Apps]
  • "SkipReadOnlyValidationGCE" 기능 게이트가 제거되었습니다. 이 게이트는 2 릴리스 동안 활성화되었으며 문제 보고가 없었습니다. (#124210, @thockin) [SIG Apps]
  • kube-scheduler는 건강 검사를 위해 /livez 및 /readz를 노출하여 https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health를 준수합니다. (#118148, @linxiulei) [SIG API Machinery, Scheduling and Testing]
  • kubelet은 더 이상 1.20 이전의 device manager 상태 파일을 복구할 수 없습니다. 권장 업그레이드 흐름을 따르면 문제가 없습니다. (#123398, @ffromani) [SIG Node and Testing]
  • CNI 플러그인을 v1.5.0으로 업데이트합니다. (#125113, @bzsuni) [SIG Cloud Provider, Network, Node and Testing]
  • cni-plugins를 v1.4.1로 업데이트합니다. (#123894, @saschagrunert) [SIG Cloud Provider, Node and Testing]
  • cri-tools를 v1.30.0으로 업데이트합니다. (#124364, @saschagrunert) [SIG Cloud Provider, Node and Release]

종속성

추가

  • github.com/antlr4-go/antlr/v4: v4.13.0
  • github.com/go-task/slim-sprig/v3: v3.0.0
  • go.uber.org/mock: v0.4.0
  • gopkg.in/evanphx/json-patch.v4: v4.12.0

변경

  • cloud.google.com/go/compute/metadata: v0.2.3 → v0.3.0
  • cloud.google.com/go/firestore: v1.11.0 → v1.12.0
  • cloud.google.com/go/storage: v1.10.0 → v1.0.0
  • cloud.google.com/go: v0.110.6 → v0.110.7
  • github.com/alecthomas/kingpin/v2: v2.3.2 → v2.4.0
  • github.com/chzyer/readline: 2972be2 → v1.5.1
  • github.com/container-storage-interface/spec: v1.8.0 → v1.9.0
  • github.com/cpuguy83/go-md2man/v2: v2.0.2 → v2.0.3
  • github.com/davecgh/go-spew: v1.1.1 → d8f796a
  • github.com/fxamacker/cbor/v2: v2.6.0 → v2.7.0-beta
  • github.com/go-openapi/swag: v0.22.3 → v0.22.4
  • github.com/golang/glog: v1.1.0 → v1.1.2
  • github.com/golang/mock: v1.6.0 → v1.3.1
  • github.com/google/cel-go: v0.17.8 → v0.20.1
  • github.com/google/pprof: 4bb14d4 → 4bfdf5a
  • github.com/google/uuid: v1.3.0 → v1.3.1
  • github.com/googleapis/gax-go/v2: v2.11.0 → v2.0.5
  • github.com/ianlancetaylor/demangle: 28f6c0f → bd984b5
  • github.com/jstemmer/go-junit-report: v0.9.1 → af01ea7
  • github.com/matttproud/golang_protobuf_extensions: v1.0.4 → v1.0.2
  • github.com/onsi/ginkgo/v2: v2.15.0 → v2.19.0
  • github.com/onsi/gomega: v1.31.0 → v1.33.1
  • github.com/pmezard/go-difflib: v1.0.0 → 5d4384e
  • github.com/prometheus/client_golang: v1.16.0 → v1.19.0
  • github.com/prometheus/client_model: v0.4.0 → v0.6.0
  • github.com/prometheus/common: v0.44.0 → v0.48.0
  • github.com/prometheus/procfs: v0.10.1 → v0.12.0
  • github.com/rogpeppe/go-internal: v1.10.0 → v1.11.0
  • github.com/sergi/go-diff: v1.1.0 → v1.2.0
  • github.com/sirupsen/logrus: v1.9.0 → v1.9.3
  • github.com/spf13/cobra: v1.7.0 → v1.8.0
  • go.etcd.io/bbolt: v1.3.8 → v1.3.9
  • go.etcd.io/etcd/api/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/client/pkg/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/client/v2: v2.305.10 → v2.305.13
  • go.etcd.io/etcd/client/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/pkg/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/raft/v3: v3.5.10 → v3.5.13
  • go.etcd.io/etcd/server/v3: v3.5.10 → v3.5.13
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.42.0 → v0.46.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.19.0 → v1.20.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.19.0 → v1.20.0
  • go.opentelemetry.io/otel/metric: v1.19.0 → v1.20.0
  • go.opentelemetry.io/otel/sdk: v1.19.0 → v1.20.0
  • go.opentelemetry.io/otel/trace: v1.19.0 → v1.20.0
  • go.opentelemetry.io/otel: v1.19.0 → v1.20.0
  • golang.org/x/crypto: v0.21.0 → v0.23.0
  • golang.org/x/exp: a9213ee → f3d0a9c
  • golang.org/x/lint: 6edffad → 1621716
  • golang.org/x/mod: v0.15.0 → v0.17.0
  • golang.org/x/net: v0.23.0 → v0.25.0
  • golang.org/x/oauth2: v0.10.0 → v0.20.0
  • golang.org/x/sync: v0.6.0 → v0.7.0
  • golang.org/x/sys: v0.18.0 → v0.20.0
  • golang.org/x/telemetry: b75ee88 → f48c80b
  • golang.org/x/term: v0.18.0 → v0.20.0
  • golang.org/x/text: v0.14.0 → v0.15.0
  • golang.org/x/tools: v0.18.0 → v0.21.0
  • google.golang.org/api: v0.126.0 → v0.13.0
  • google.golang.org/genproto/googleapis/api: 23370e0 → b8732ec
  • google.golang.org/genproto: f966b18 → b8732ec
  • google.golang.org/grpc: v1.58.3 → v1.59.0
  • honnef.co/go/tools: v0.0.1-2020.1.4 → v0.0.1-2019.2.3
  • sigs.k8s.io/knftables: v0.0.14 → v0.0.16
  • sigs.k8s.io/kustomize/api: 6ce0bf3 → v0.17.2
  • sigs.k8s.io/kustomize/cmd/config: v0.11.2 → v0.14.1
  • sigs.k8s.io/kustomize/kustomize/v5: 6ce0bf3 → v5.4.2
  • sigs.k8s.io/kustomize/kyaml: 6ce0bf3 → v0.17.1
  • sigs.k8s.io/yaml: v1.3.0 → v1.4.0

제거

  • github.com/GoogleCloudPlatform/k8s-cloud-provider: f118173
  • github.com/antlr/antlr4/runtime/Go/antlr/v4: 8188dc5
  • github.com/evanphx/json-patch: v4.12.0+incompatible
  • github.com/fvbommel/sortorder: v1.1.0
  • github.com/go-gl/glfw/v3.3/glfw: 6f7a984
  • github.com/go-task/slim-sprig: 52ccab3
  • github.com/golang/snappy: v0.0.3
  • github.com/google/martian/v3: v3.2.1
  • github.com/google/s2a-go: v0.1.7
  • github.com/googleapis/enterprise-certificate-proxy: v0.2.3
  • google.golang.org/genproto/googleapis/bytestream: e85fd2c
  • google.golang.org/grpc/cmd/protoc-gen-go-grpc: v1.1.0
  • gopkg.in/gcfg.v1: v1.2.3
  • gopkg.in/warnings.v0: v0.1.2
  • rsc.io/quote/v3: v3.1.0
  • rsc.io/sampler: v1.3.0
반응형