목록으로

Programming Notes

정책 워킹 그룹 집중 조명

(참고: 정책 워킹 그룹은 임무를 완료하여 현재 활동하지 않습니다. 이 글은 워킹 그룹의 작업, 성과 및 운영 방식에 대한 통찰력을 담고 있습니다.) 쿠버네티스의 복잡한 세상에서 정책은 클러스터를 관리하고 보안하는 데 중요한 역할을 합니다. 하지만 이러한 정책이 쿠버네티스...

(참고: 정책 워킹 그룹은 임무를 완료하여 현재 활동하지 않습니다. 이 글은 워킹 그룹의 작업, 성과 및 운영 방식에 대한 통찰력을 담고 있습니다.)

쿠버네티스의 복잡한 세상에서 정책은 클러스터를 관리하고 보안하는 데 중요한 역할을 합니다. 하지만 이러한 정책이 쿠버네티스 생태계 전반에 걸쳐 어떻게 개발되고, 구현되며, 표준화되는지 궁금해 보신 적이 있나요? 이에 대한 답을 얻기 위해 정책 워킹 그룹의 활동을 되돌아보겠습니다.

정책 워킹 그룹은 쿠버네티스의 현재 정책 관련 구현과 미래 정책 제안을 모두 아우르는 전반적인 아키텍처를 제공하는 중요한 임무에 전념했습니다. 그들의 목표는 개발자와 최종 사용자 모두에게 이점을 제공하는 보편적인 정책 아키텍처를 개발하는 것으로, 야심 차면서도 필수적이었습니다.

이 워킹 그룹은 협력적인 방법을 통해 종종 복잡하게 느껴지는 쿠버네티스 정책의 세계에 명확성과 일관성을 가져오기 위해 노력했습니다. 기존 구현과 미래 제안 모두에 집중함으로써, 기술이 발전함에 따라 쿠버네티스의 정책 환경이 일관되고 접근 가능하도록 보장했습니다.

이 블로그 게시물은 전 공동 의장들의 통찰력을 바탕으로 정책 워킹 그룹의 활동을 더 깊이 탐구합니다:

인터뷰 진행: 아루즈왈 네기 (Arujjwal Negi)

이 공동 의장들이 정책 워킹 그룹의 모든 것을 설명해 주었습니다.

서론

안녕하세요, 시간 내주셔서 감사합니다! 먼저 간단한 소개부터 부탁드립니다. 본인과 역할, 그리고 쿠버네티스에 어떻게 참여하게 되셨는지 말씀해 주실 수 있을까요?

짐 버그와디아 (Jim Bugwadia): 저는 짐 버그와디아입니다. 클라우드 네이티브 워크로드의 보안 및 규정 준수를 자동화하는 솔루션을 제공하는 Nirmata의 공동 창립자이자 CEO입니다. Nirmata에서는 2014년 쿠버네티스가 시작된 이래로 쿠버네티스와 함께 일해왔습니다. 저희는 처음에 상업용 플랫폼에 쿠버네티스 정책 엔진을 구축했고, 나중에 CNCF에 Kyverno 프로젝트로 기증했습니다. 저는 쿠버네티스 정책 관리의 다양한 측면을 구축하고 표준화하는 데 기여하고자 CNCF 쿠버네티스 정책 워킹 그룹에 합류했으며, 나중에는 공동 의장이 되었습니다.

앤디 서더만 (Andy Suderman): 저는 앤디 서더만이며, 매니지드 Kubernetes-as-a-Service 제공업체인 Fairwinds의 CTO입니다. 저는 2016년 웹 컨퍼런싱 플랫폼을 구축하면서 쿠버네티스 작업을 시작했습니다. Goldilocks, Pluto, Polaris와 같은 여러 쿠버네티스 관련 오픈 소스 프로젝트의 저자 및/또는 유지 관리자입니다. Polaris는 JSON 스키마 기반 정책 엔진으로, Fairwinds의 정책 분야 진출과 저의 정책 워킹 그룹 참여의 계기가 되었습니다.

푸남 람바 (Poonam Lamba): 저는 푸남 람바이며, 현재 Google에서 Google Kubernetes Engine (GKE)의 제품 관리자로 일하고 있습니다. 저의 쿠버네티스 여정은 2017년, 쿠버네티스 기반의 프라이빗 클라우드를 사용하여 대기업용 SRE 플랫폼을 구축하던 때 시작되었습니다. 당시 애플리케이션 배포 및 관리 방식에 혁명을 가져올 잠재력에 매료되어, 쿠버네티스에 대해 배울 수 있는 모든 것에 뛰어들었습니다. 그 이후로 GKE의 정책 및 규정 준수 제품을 구축할 기회를 얻었습니다. 저는 GKE CIS 벤치마크를 이끌고 기여하고 있습니다. Gatekeeper 프로젝트에도 참여하고 있으며, 2년 넘게 정책 워킹 그룹에 기여했고 그룹의 공동 의장으로 활동했습니다.

다음 질문에 대한 답변은 전 공동 의장들의 통찰력을 종합한 것입니다.

워킹 그룹에 대하여

저조차도 잘 모르는 것 중 하나가 워킹 그룹과 SIG의 차이입니다. 워킹 그룹이 무엇이며 SIG와 어떻게 다른지 설명해 주실 수 있을까요?

SIG와 달리, 워킹 그룹은 임시적이며 여러 SIG가 관여할 수 있는 특정하고 광범위한 문제나 프로젝트를 해결하는 데 중점을 둡니다. 워킹 그룹의 수명은 정해져 있으며, 목표를 달성하면 해산됩니다. 일반적으로 워킹 그룹은 코드를 소유하거나 쿠버네티스 프로젝트의 특정 영역을 장기적으로 관리할 책임이 없습니다.

(SIG에 대해 더 자세히 알아보려면 Special Interest Groups 목록을 방문하세요)

워킹 그룹이 여러 SIG와 관련되어 있다고 말씀하셨습니다. 정책 워킹 그룹은 어떤 SIG와 긴밀하게 협력했으며, 어떻게 조율하셨나요?

우리 그룹은 활동 기간 내내 쿠버네티스 SIG Auth와 긴밀히 협력했으며, 최근에는 SIG Security가 구성된 이후로도 함께 작업했습니다. 우리의 협력은 몇 가지 방식으로 이루어졌습니다. 우리는 SIG 회의 중에 정기적인 업데이트를 제공하여 진행 상황과 활동을 계속 알려드렸습니다. 또한, 다른 커뮤니티 포럼을 활용하여 개방적인 의사소통을 유지하고 우리의 작업이 더 넓은 쿠버네티스 생태계와 일치하는지 확인했습니다. 이러한 협력적 접근 방식은 그룹이 쿠버네티스 커뮤니티 전반의 관련 노력과 조율을 유지하는 데 도움이 되었습니다.

정책 워킹 그룹

정책 워킹 그룹은 왜 만들어졌나요?

다양한 사용 사례를 지원하기 위해 쿠버네티스가 고도로 선언적이고 세분화되며 확장 가능한 구성 관리 시스템에 의해 구동된다는 것을 인식했습니다. 우리는 쿠버네티스 구성 매니페스트의 여러 부분이 다양한 이해관계자에게 중요할 수 있다는 것을 확인했습니다. 예를 들어, 일부 부분은 개발자에게 중요할 수 있지만, 다른 부분은 보안 팀에게 특별한 관심사이거나 운영상의 문제를 다룰 수 있습니다. 이러한 복잡성을 고려할 때, 이러한 복잡한 구성의 사용을 관리하는 정책이 쿠버네티스 성공에 필수적이라고 믿습니다.

우리 정책 워킹 그룹은 정책 정의 및 관련 아티팩트의 표준화를 연구하기 위해 특별히 만들어졌습니다. 쿠버네티스 배포에 관련된 다양한 요구 사항과 이해관계자를 고려할 때, 쿠버네티스 생태계 전반에 걸쳐 정책이 정의되고 구현되는 방식에 일관성과 명확성을 가져올 필요성을 느꼈습니다.

그룹에서 어떤 작업을 하셨는지 알려주실 수 있을까요?

저희는 여러 쿠버네티스 정책 관련 프로젝트를 진행했습니다. 저희의 이니셔티브는 다음과 같습니다:

  • 쿠버네티스 정책 보고서 API에 대한 Kubernetes Enhancement Proposal (KEP) 작업을 했습니다. 이는 쿠버네티스 생태계 내에서 정책 보고서가 생성되고 소비되는 방식을 표준화하는 것을 목표로 합니다.
  • 쿠버네티스 공간에서 정책 사용에 대해 더 잘 이해하기 위해 CNCF 설문조사를 실시했습니다. 이는 당시 커뮤니티 전반의 관행과 요구 사항을 측정하는 데 도움이 되었습니다.
  • 컨테이너의 PCI-DSS 규정 준수를 달성하는 데 사용자들을 안내할 백서를 작성했습니다. 이는 조직이 쿠버네티스 환경에서 중요한 보안 표준을 충족하도록 돕기 위한 것입니다.
  • 또한 보안을 "왼쪽으로 이동(shifting security left)"하는 것이 조직에 어떻게 도움이 될 수 있는지 강조하는 백서를 작성했습니다. 이는 개발 및 배포 프로세스 초기에 보안 조치를 구현하는 이점에 중점을 둡니다.

정책 워킹 그룹의 주요 목표와 주요 성과에 대해 말씀해 주실 수 있을까요?

정책 워킹 그룹의 헌장은 쿠버네티스의 정책 관리를 표준화하고 모범 사례에 대해 커뮤니티를 교육하는 것이었습니다.

이를 위해 저희는 쿠버네티스 문서를 업데이트하고 (정책 | 쿠버네티스), 여러 백서를 발행했으며 (쿠버네티스 정책 관리, 쿠버네티스 GRC), 다양한 도구에서 보고를 표준화하는 정책 보고서 API (API 참조)를 만들었습니다. Falco, Trivy, Kyverno, kube-bench 등 여러 인기 있는 도구들이 정책 보고서 API를 지원합니다. 정책 워킹 그룹의 주요 성과는 정책 보고서 API를 SIG 수준 API로 승격시키거나 안정적인 위치를 찾는 것이었습니다.

그 외에도 ValidatingAdmissionPolicyMutatingAdmissionPolicy가 쿠버네티스에서 GA(General Availability) 단계에 접어들면서, 워킹 그룹의 주요 목표는 이러한 내장 API 객체와 OPA/Gatekeeper, Kyverno와 같은 다른 CNCF 정책 관리 솔루션의 장단점 및 적절한 사용 패턴에 대해 커뮤니티를 안내하고 교육하는 것이었습니다.

도전 과제

정책 워킹 그룹이 다루었던 주요 도전 과제는 무엇이었나요?

정책 워킹 그룹에서 일하는 동안 몇 가지 도전 과제에 직면했습니다:

  • 우리가 직면했던 주요 문제 중 하나는 꾸준히 기여할 시간을 찾는 것이었습니다. 우리 중 많은 사람들이 다른 직업적 약속을 가지고 있기 때문에, 워킹 그룹의 이니셔티브에 정기적으로 시간을 할애하는 것이 어려울 수 있습니다.
  • 또 다른 도전 과제는 합의 기반 모델과 관련이 있었습니다. 이러한 접근 방식은 모든 의견이 경청되도록 보장하지만, 때로는 의사 결정 프로세스가 느려질 수 있습니다. 우리는 심도 있는 논의와 합의를 중요하게 생각했지만, 이것이 때때로 프로젝트 진행을 지연시킬 수 있었습니다.
  • 또한 그룹 구성원들 간에 의견 차이가 발생하는 경우도 있었습니다. 이러한 상황에서는 다양한 관점을 다루면서도 협력적이고 생산적인 환경을 유지하기 위해 신중한 조정이 필요했습니다.
  • 마지막으로, 그룹에 새로 합류하는 사람들이 회의에 꾸준히 참석하지 않으면 효과적으로 기여하기 어렵다는 점을 발견했습니다. 우리 작업의 복잡한 특성상 지속적인 맥락 이해가 필요한 경우가 많으며, 정기적으로 참여할 수 없는 사람들에게는 이것이 어려울 수 있습니다.

그 도전 과제들에 대해 더 자세히 말씀해 주시겠어요? 각각 어떻게 발견하셨고, 어떤 영향이 있었으며, 어떤 전략을 사용해서 해결하셨나요?

쉬운 해결책은 없지만, 더 많은 기여자(contributor)와 유지보수자(maintainer)가 있다면 큰 도움이 됩니다! 전반적으로 CNCF 커뮤니티는 함께 일하기 좋고 초보자들에게 매우 환영적입니다. 따라서 참여를 망설이는 분들이 계시다면, 워킹 그룹이나 SIG 회의에 참석하여 그냥 들어보는 것을 강력히 권장합니다.

토론을 완전히 이해하는 데는 종종 몇 번의 회의가 필요하므로, 처음부터 모든 것을 파악하지 못하더라도 낙담하지 마십시오. 우리는 이 점을 강조하고 새로운 멤버들이 참여의 시작점으로 문서를 검토하도록 권장했습니다.

또한, 정책 워킹 그룹 내에서는 의견 차이를 존중하고 장려했습니다. 우리는 CNCF의 핵심 가치를 준수하며 서로에 대한 존중을 유지하면서 의견 불일치를 해결했습니다. 또한 결정을 시간 제한 내에 내리고 명확한 책임을 부여하여 일이 계속 진행되도록 노력했습니다.


이것으로 정책 워킹 그룹에 대한 저희의 논의는 마무리됩니다. 워킹 그룹, 특히 이 기사에 참여해 주신 분들은 이 글이 그룹의 목표와 활동 방식에 대한 통찰력을 제공했기를 바랍니다. 워킹 그룹에 대한 더 많은 정보는 여기에서 얻을 수 있습니다.