쿠버네티스 v1.34: 초기 컨테이너를 사용하여 앱 환... 노트

쿠버네티스 v1.34: 초기 컨테이너를 사용하여 앱 환경 변수 정의

전통적으로 Kubernetes는 환경 변수를 위해 ConfigMap과 Secret을 사용하는데, 이는 복잡성을 더하고 추가적인 API 호출을 발생시킵니다. Pod와 해당 설정을 별도로 관리하는 것은, 특히 업데이트 시에 어려울 수 있습니다. 이는 환경 변수를 하드코딩하거나 볼륨 마운트를 사용하고 싶지 않으면서 환경 변수를 필요로 하는 벤더 컨테이너를 다룰 때 특히 그렇습니다.EnvFiles라는 새로운 알파 기능은 이러한 시나리오에 대한 대안을 제공합니다. EnvFiles 기능 게이트가 활성화되면, kubelet은 컨테이너의 환경 변수를 emptyDir 볼륨 내의 파일에서 직접 로드할 수 있습니다. 이는 파일을 컨테이너 자체에 마운트할 필요를 없애줍니다. 핵심 기능은 Kubernetes가 파일을 파싱하고 (종종 initContainer에 의해 생성됨) 시작 시 메인 컨테이너에 환경 변수를 설정할 수 있도록 합니다.파일은 Pod의 수명 주기 동안 지속되는 임시 저장소인 emptyDir 볼륨에 위치합니다. 메인 컨테이너는 이 볼륨을 마운트할 필요가 없습니다. kubelet이 파일을 읽고 변수를 주입합니다. 이러한 변수를 정의하려면 Pod spec에서 fileKeyRef 필드를 사용하여 파일 경로와 추출할 키를 지정합니다.파일 형식은 KEY=VALUE 구문을 지원하며, 이 알파 단계에서는 emptyDir 볼륨에 기록되어야 합니다. init 컨테이너는 파일을 emptyDir 볼륨에 기록해야 하지만, 메인 애플리케이션 컨테이너는 볼륨에 접근할 필요가 없습니다. 이 기능은 민감한 데이터를 처리할 수 있지만, 파일 시스템에 접근할 수 있는 노드 운영자가 emptyDir 볼륨에서 이 데이터를 검색할 수 있다는 점을 유념해야 합니다. 따라서 민감한 정보를 저장할 때 무단 접근으로부터 노드를 보호하기 위해 강력한 클러스터 보안 정책이 필수적입니다. 이 EnvFiles 기능은 복잡한 해결 방법을 줄여 애플리케이션 제작을 단순화하고 새로운 사용 사례를 가능하게 합니다.