Kubernetes v1.35: CSI 드라이버에 서비... 노트

Kubernetes v1.35: CSI 드라이버에 서비스 계정 토큰을 전달하는 더 나은 방법

쿠버네티스 v1.35는 베타 기능인 CSI 드라이버를 위한 서비스 계정 토큰을 시크릿 필드를 통해 전달하는 기능을 도입했습니다. 이전에는 CSI 드라이버의 서비스 계정 토큰이 volume_context 필드를 통해 전달되었는데, 이는 민감한 데이터에 적합하지 않으며 토큰이 실수로 로깅되는 문제를 일으켰습니다. 이 새로운 기능을 사용하면 CSI 드라이버가 NodePublishVolumeRequestsecrets 필드를 통해 이러한 토큰을 받을 수 있습니다. 이는 CSI 사양에서 민감한 정보를 위한 지정된 장소입니다. 기존의 CSI 드라이버는 기본적으로 volume_context를 통해 토큰을 계속 받게 됩니다. 이는 CSIDriver 사양의 새로운 serviceAccountTokenInSecrets 필드가 기본적으로 false로 설정되어 있기 때문입니다.이 기능을 채택하려면 CSI 드라이버 작성자는 먼저 드라이버 코드에 폴백 로직을 구현해야 합니다. 이 로직은 토큰을 위해 secrets 필드와 volume_context를 모두 확인하여, 이전 버전과 최신 버전의 쿠버네티스와의 호환성을 보장합니다. 이 업데이트된 드라이버를 배포한 후, 클러스터는 쿠버네티스 v1.35 이상으로 업그레이드되어야 하며, 이는 kube-apiserver와 kubelet 모두에 적용됩니다. 클러스터와 드라이버가 업그레이드된 후, CSIDriver 매니페스트를 업데이트하여 serviceAccountTokenInSecrets: true를 설정할 수 있습니다.기존 볼륨을 깨지지 않도록 특정 롤아웃 순서를 따라야 합니다. 폴백 로직이 포함된 드라이버 업데이트는 CSIDriver 개체를 업데이트하여 새로운 동작을 활성화하기 전에 완전히 롤아웃되어야 합니다. 이 옵트인 메커니즘은 실수로 토큰을 로깅하는 위험을 제거하고, CSI 사양의 올바른 필드를 사용하여 민감한 데이터를 처리하며, protosanitizer 툴을 사용하여 드라이버별 워크어라운드가 필요하지 않습니다. CSI 드라이버 작성자는 이 기능을 채택하고 피드백을 제공할 것을 권장합니다.