마구잡

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

Kubernetes/Kubernetes 버전별 변경 이력

KUBERNETES 1.29 변경이력 [ 번역본 ]

MAGUJOB 2024. 8. 7. 15:08
반응형

v1.28.0 이후 변경 사항

사용 중단

  • 추가 문서 예: KEP(Kubernetes Enhancement Proposals), 사용 설명서 등:
  • (#119495, @bzsuni) [SIG API Machinery]

API 변경

  • LoadBalancer 유형의 서비스 .status에 새로운 ipMode 필드를 추가했습니다. 새로운 필드는 LoadBalancerIPMode 기능 게이트 뒤에 있습니다. (#119937, @RyanAoh) [SIG API Machinery, Apps, Cloud Provider, Network and Testing]
  • CRD 유효성 검사 규칙의 CEL 표현식에서 문자열, 목록 또는 맵을 반환하는 함수에 대해 높은 추정 비용을 잘못 계산하는 버그를 수정했습니다. 잘못된 비용은 함수의 결과가 후속 작업에 사용될 때 나타났습니다. (#119800, @jpbetz) [SIG API Machinery, Auth and Cloud Provider]
  • Go API: ResourceRequirements 구조체는 볼륨에 사용하기 위해 VolumeResourceRequirements로 대체되어야 합니다. (#118653, @pohly) [SIG API Machinery, Apps, Auth, Node, Scheduling, Storage and Testing]
  • Kube-apiserver: AuthenticationConfiguration 파일을 읽기 위한 --authentication-config 플래그를 추가합니다. --authentication-config 플래그는 기존의 --oidc-* 플래그와 상호 배타적입니다. (#119142, @aramase) [SIG API Machinery, Auth and Testing]
  • Kube-scheduler 구성 설정(KubeSchedulerConfiguration) kubescheduler.config.k8s.io/v1beta3은 v1.29에서 제거되었습니다. kube-scheduler 구성 파일을 kubescheduler.config.k8s.io/v1로 마이그레이션하십시오. (#119994, @SataQiu) [SIG Scheduling and Testing]
  • Job의 pod 실패 정책에서 onPodConditions 필드를 선택 사항으로 표시했습니다. (#120204, @mimowo) [SIG API Machinery and Apps]
  • CSI 노드 드라이버가 실행되지 않는 경우 NodeStageVolume 호출을 재시도합니다 (#120330, @rohitssingh) [SIG Apps, Storage and Testing]
  • kube-scheduler selectorSpread 플러그인이 제거되었으며, 대신 podTopologySpread 플러그인을 사용해야 합니다. (#117720, @kerthcet) [SIG Scheduling]

기능

  • configMapAndSecretChangeDetectionStrategy가 Cache로 설정된 경우, --sync-frequency는 ConfigMaps 또는 Secrets를 사용하는 볼륨의 업데이트 간격에 영향을 미치지 않습니다. 업데이트 간격은 node.alpha.kubernetes.io/ttl 노드 주석에만 영향을 받습니다. (#120255, @likakuli) [SIG Node]

  • 새로운 스케줄러 메트릭 pod_scheduling_sli_duration_seconds를 추가하고 pod_scheduling_duration_seconds의 사용 중단을 시작합니다. (#119049, @helayoty) [SIG Instrumentation, Scheduling and Testing]

  • 데이터 암호화 키(DEK) 캐시의 기록 수를 측정하기 위해 apiserver_envelope_encryption_dek_cache_filled를 추가했습니다. (#119878, @ritazh) [SIG API Machinery and Auth]

  • kubectl 노드 드레인 헬퍼 콜백 OnPodDeletionOrEvictionStartedOnPodDeletionOrEvictionFailed를 추가했습니다. kubectl을 확장하는 사람들은 더 많은 세분성을 위해 이 새로운 콜백을 사용할 수 있습니다.

    • OnPodDeletedOrEvicted 노드 드레인 헬퍼 콜백을 사용 중단했습니다. (#117502, @adilGhaffarDev) [SIG CLI]
  • apiserver_identity를 다음 메트릭에 추가했습니다: apiserver_envelope_encryption_key_id_hash_total, apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds, apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds, apiserver_encryption_config_controller_automatic_reload_failures_total, apiserver_encryption_config_controller_automatic_reload_success_total, apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds

  • 다음 메트릭의 이벤트를 표면화하기 위해 버그를 수정했습니다: apiserver_encryption_config_controller_automatic_reload_failures_total, apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds, apiserver_encryption_config_controller_automatic_reload_success_total (#120438, @ritazh) [SIG API Machinery, Auth, Instrumentation and Testing]

  • Go 1.21.1을 기반으로 distroless-iptables를 0.3.2로 버전 업했습니다. (#120527, @cpanato) [SIG Testing]

  • kubectl help를 변경하여 플러그인에서 하위 명령에 대한 기본 세부 정보를 표시합니다. (#116752, @xvzf) [SIG CLI]

  • KMSv2KDF 기능 게이트를 기본적으로 활성화되도록 변경했습니다. (#120433, @enj) [SIG API Machinery, Auth and Testing]

  • 다음 kubelet 리소스 메트릭을 일반 가용성으로 승격했습니다:

    • container_cpu_usage_seconds_total
    • container_memory_working_set_bytes
    • container_start_time_seconds
    • node_cpu_usage_seconds_total
    • node_memory_working_set_bytes
    • pod_cpu_usage_seconds_total
    • pod_memory_working_set_bytes
    • resource_scrape_error

    scrape_errorresource_scrape_error로 대체하여 사용 중단했습니다. (#116897, @Richabanker) [SIG Architecture, Instrumentation, Node and Testing]

  • API 목록 청크(즉, 페이지 매김) 기능을 안정화 상태로 승격했습니다. (#119503, @wojtek-t) [SIG API Machinery, Cloud Provider and Testing]

  • etcd 스토어 구현을 위한 스트리밍 API를 구현합니다.

  • sendInitialEvents ListOption이 watch=true와 함께 설정되면, 합성 초기 이벤트로 감시 스트림을 시작하고, 그 후 서버가 이벤트 스트리밍을 계속할 때 합성 "북마크"를 따릅니다. (#119557, @p0lyn0mial) [SIG API Machinery]

  • kube-scheduler의 메모리 사용량을 개선하여 kube-scheduler가 필요로 하지 않는 .metadata.managedFields 필드를 삭제했습니다. (#119556, @linxiulei) [SIG Scheduling]

  • Permit 플러그인이 있는 스케줄러에서, Pod가 WaitOnPermit 중 거부되면 스케줄러가 플러그인을 기록합니다. 스케줄러는 기록을 사용하여 플러그인에 등록된 클러스터 이벤트와 큐 힌트를 준수하여 pod를 다시 시도할지 여부를 알려줍니다. (#119785, @sanposhiho) [SIG Scheduling and Testing]

  • 트리 내 클라우드 제공자가 기본적으로 꺼지게 됩니다. 이 기능이 여전히 필요하다면 DisableCloudProviders 및 DisableKubeletCloudCredentialProvider 기능 플래그를 사용하십시오. (#117503, @dims) [SIG API Machinery, Cloud Provider and Testing]

  • 새로운 apiserver 메트릭 apiserver_flowcontrol_current_inqueue_seats를 도입했습니다. 이 메트릭은 각 요청이 1개 이상의 좌석을 차지할 수 있기 때문에 apiserver_flowcontrol_current_inqueue_requests와 유사하지만 총 좌석을 추적합니다. (#119385, @andrewsykim) [SIG API Machinery]

  • Node 객체가 PodCIDR을 변경할 때 kube-proxy가 종료 시 패닉하지 않도록 수정했습니다. (#120375, @pegasas) [SIG Network]

  • nf_conntrack_tcp_be_liberal이 설정되지 않은 경우에만 kube-proxy가 잘못된 conntrack 상태에 대한 DROP 규칙을 설치하도록 변경했습니다. (#120412, @aojea) [SIG Network]

  • Kubeadm: 인증 키가 유효한 16진수 인코딩 AES 키인지 확인하는 검증을 추가했습니다. (#120064, @SataQiu) [SIG Cluster Lifecycle]

  • Kubeadm: EtcdLearnerMode 기능 게이트를 베타로 승격했습니다. etcd 멤버를 추가할 때 Learner 모드가 기본적으로 활성화됩니다. (#120228, @pacoxu) [SIG Cluster Lifecycle]

  • Kubelet은 노드 시작의 다양한 단계의 지연 메트릭을 노출합니다. (#118568, @qiutongs) [SIG Instrumentation, Node and Scalability]

  • Kubernetes는 이제 Go 1.21.1로 빌드됩니다. (#120493, @cpanato) [SIG Release and Testing]

  • Kubernetes는 이제 go 1.21.0으로 빌드됩니다. (#118996, @cpanato) [SIG Release and Testing]

  • kubectl describe pvc <PVC> 명령의 출력에서 "Used by:" 부분에 임시 저장 볼륨으로 사용 중인 파드를 나열합니다. (#120427, @MaGaroo) [SIG CLI]

  • nodevolumelimits 스케줄러 플러그인을 contextual logging을 사용하도록 마이그레이션했습니다. (#116884, @mengjiao-liu) [SIG Instrumentation, Node, Scheduling, Storage and Testing]

  • ServiceNodePortStaticSubrange를 안정화로 승격하고 기본값으로 고정했습니다. (#120233, @xuzhenglun) [SIG Network]

  • QueueingHint의 반환 값에 오류가 발생했습니다. QueueingHint가 오류를 반환하면 스케줄러는 오류를 기록하고 이벤트를 QueueAfterBackoff로 처리하여 Pod가 unschedulable pod 풀에 갇히지 않도록 합니다. (#119290, @carlory) [SIG Node, Scheduling and Testing]

  • KMS v1 및 v2의 /livez 라이브 체크를 제거하여 KMS 상태가 kube-apiserver 재시작을 유발하지 않도록 합니다. KMS 상태 체크는 여전히 healthz 및 readiness 체크로 남아 있습니다. (#120583, @ritazh) [SIG API Machinery, Auth and Testing]

  • CloudDualStackNodeIPs 기능이 베타로 전환되어, 기능을 지원하는 외부 클라우드 제공자를 사용할 때 콤마로 구분된 듀얼 스택 --node-ips를 kubelet에 전달하고 클라우드 제공자가 두 IP를 모두 고려할 수 있습니다. (#120275, @danwinship) [SIG API Machinery, Cloud Provider and Network]

  • kubectl 이미지의 Dockerfile이 특정 기본 이미지와 필수 유틸리티(bash 및 jq)의 추가로 업데이트되었습니다. (#119592, @rayandas) [SIG CLI, Node, Release and Testing]

  • 비밀 기반 서비스 계정 토큰을 사용할 경우, 사용된 비밀의 이름을 포함하는 authentication.k8s.io/legacy-token-autogenerated-secret 또는 authentication.k8s.io/legacy-token-manual-secret 감사 주석이 추가됩니다. (#118598, @yuanchen8911) [SIG Auth, Instrumentation and Testing]

  • PVs가 베타 레이블이 있는 경우 GA 레이블이 있는 노드에 스케줄링될 수 있도록 스케줄링 중에 볼륨_zone 플러그인이 베타 레이블을 GA 레이블로 간주합니다. (#118923, @AxeZhan) [SIG Scheduling]

문서

  • 특정 배포를 지정하지 않고 kubectl rollout restart를 사용하는 상황에 대한 설명과 예시를 추가했습니다. (#120118, @Ithrael) [SIG CLI]

실패한 테스트

  • DRA: 스케줄러가 pod에 대한 노드가 부적합하게 된 후 클레임을 할당 해제해야 하는 경우 실제로 필요한 시도보다 더 많은 시도가 필요할 수 있었습니다. (#120428, @pohly) [SIG Node and Scheduling]
  • E2e 프레임워크: 간헐적인 apiserver 실패 후 재시도를 WaitForPodsResponding에서 수정했습니다. (#120559, @pohly) [SIG Testing]
  • KCM 특정 인수를 /cluster 스크립트로 전달할 수 있으며, CCM에는 영향을 미치지 않습니다. 새로운 변수 이름: KUBE_CONTROLLER_MANAGER_TEST_ARGS. (#120524, @jprzychodzen) [SIG Cloud Provider]
  • 수정된 Windows kubeproxy 테스트 케이스와 모의 구현을 포함합니다. (#120105, @princepereira) [SIG Network and Windows]

버그 또는 회귀

  • Jobs에 속한 Pods에서 추적 파이널라이저를 제거하기 위한 중복 프로세스를 추가했습니다. 제어 평면이 Job을 완료로 표시한 후 프로세스가 시작됩니다. (#119944, @Sharpz7) [SIG Apps]
  • ExternalIPs가 있는 서비스에 대해 ExternalTrafficPolicy를 지정할 수 있도록 허용합니다### Deprecation
  • kubectl: prune-whitelist 플래그가 제거되었습니다. 이제 prune-allowlist 플래그를 사용해야 합니다. (#120246, @pacoxu)

종속성

추가됨

  • github.com/distribution/reference: v0.5.0

변경됨

제거됨

변경 사항 없음.

반응형