Kubernetes Windows SIG 인터뷰 질문과 답변 (번역)

Image for post
Image for post
Photo by Windows on Unsplash

ubernetes의 Windows 버전의 개발을 담당하는 Windows SIG에 대한 소개, 하는 일, 앞으로의 계획을 간략하게 정리한 인터뷰용 질문/답변 문서가 유익하다고 생각하여 한국어로 번역하여 공유합니다.

Note: 편의 상, 그리고 빠르게 공유하고 싶어 기계 번역으로 초안을 만들고 간단히 다듬었습니다. 어색한 부분에 대한 피드백을 주시면 적극 수정하겠습니다.

Q: 많은 사람들이 Linux의 Kubernetes에 대해 잘 알고 있지만, SIG-Windows는 Windows에서 Kubernetes를 사용한 경험에 초점을 맞춥니다. SIG-Windows의 기능에 대해 말씀해 주시겠습니까?

SIG-Windows는 한 가지 목표를 염두에 두고 시작했습니다. 컨테이너 조정에 Kubernetes를 활용하려는 Windows 개발자들에게 안정적이고 유사한 경험을 제공합니다. Windows 개발자 및 개발자 엔지니어는 지난 몇 년 동안 컨테이너를 채택해 왔으므로 공통 인터페이스를 통해 모든 워크로드를 관리할 수 있는 방법을 모색해 왔습니다. Kubernetes는 컨테이너 조정에 앞장섰으며, SIG-Windows에 대한 우리의 노력은 사용자가 Linux 또는 Windows에서 실행해야 하는 컨테이너 워크로드를 일관되게 관리할 수 있는 방법을 제공합니다.

SIG-Windows는 Kubernetes의 모든 Windows를 위한 중심지입니다. 우리는 주로 컴퓨팅 측면에 초점을 맞추고 있지만, 실제로 Windows에서 실행되는 Kubernetes 실행과 관련된 모든 것이 SIG-Windows에 적용됩니다. 우리의 SIG 인터페이스에 속한 구성원은 스토리지, 네트워크, 테스트, 클러스터 라이프사이클 및 기타 Kubernetes 그룹에 속해 있습니다.

특히 SIG-Windows는 다음의 영역에 초점을 맞추어 활동합니다.

  • Kubernetes 코드 베이스(Kubelet, Kube-proxy 등)의 여러 부분에서 Windows OS용 코드를 개발하고 유지합니다.
  • 다른 SIG와 협력하여 Windows와 Linux의 기능 차이를 인식함으로써 가능한 많은 코드 재사용을 통해 기능을 개발할 수 있습니다. 개발된 새로운 기능이 Linux와 Windows 개발자에게 동등하게 작동한다는 것은 우리에게 중요합니다.
  • Kubernetes 클러스터에서 Windows 워크로드 구성 및 관리에 대한 문서를 유지관리합니다.
  • 테스트 통과 및 테스트 인프라(클러스터 생성 유틸리티, 테스트 통과에 사용되는 컨테이너 이미지 등)를 유지 관리하여 Windows 노드(또는 Windows에서 작동하지 않을 것으로 예상되는 사항을 문서화)에서 OS에 구애받지 않는 기능이 정상적으로 작동하는지 확인합니다. 이 작업은 특히 모든 Kubernetes 릴리스에서 퇴행을 포착하고 품질을 유지하는 데 유용합니다. Kubernetes는 수백 명의 기여자를 통해 구동되는 거대한 엔진으로, 테스트 및 자동화 분야의 우리의 작업은 허용 가능한 기능 및 예상 결과에 대한 기준을 확립하는 데 도움이 됩니다.
  • 클러스터 관리자가 Kubernetes 클러스터의 Windows 워크로드 관리와 관련된 모든 사항을 논의할 수 있는 커뮤니티를 제공합니다. (잘 작동하는 내용을 공유하고 Linux와 Windows 간의 기능 비교 문제에 대한 인식을 높이는 데 도움이 됩니다)
  • Windows를 중심으로 외부 기업과 프로젝트가 Kubernetes 위에 가치를 더할 수 있는 커뮤니티를 제공합니다.

Q: 4~5년 전 Windows 컨테이너가 처음 출시되었을 때, 그 기술이 무엇인지에 대해 많은 혼란이 있었습니다. Windows에서 동일한 Linux 컨테이너를 실행할 수 있는 건가요? 또한 이것이 멀티 OS 시스템의 미래에 어떤 의미가 있을지 매우 기대됩니다. Windows 컨테이너에 대해 간략하게 설명해 주시겠어요?

네. 컨테이너 호스트 역할을 하는 Windows 운영 체제에서 Linux 컨테이너를 실행할 수 있습니다. 상위 레벨의 Linux 컨테이너는 Linux 커널 및 Windows와 통신하여 컨테이너를 시작/중지/관리하는 데 사용되는 데몬을 실행하는 특수 가상 시스템 내에서 실행됩니다. 이 기능의 작동 방법은 사용 중인 OS 버전과 버전에 따라 다릅니다. 자세한 내용은 https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers에서 확인할 수 있습니다.

Kubernetes의 Windows 지원을 보면 Linux 컨테이너와 비교를 시작하는 경우가 많습니다. 제한 사항을 강조하는 일부 비교는 공정하지만, 운영상의 제한 사항과 Windows와 리눅스 운영 체제 간의 차이를 구분하는 것이 중요합니다. 정리하면 Windows 컨테이너는 Windows 운영 체제를 실행하고 리눅스 컨테이너는 리눅스를 실행할 수 있습니다.

그 외에 일반적으로 Windows 전용 클러스터를 사용할 수 있느냐는 질문을 많이 받습니다. 결론부터 말하면 그렇지는 못합니다. Kubernetes 마스터 구성요소는 Linux를 기반으로 계속 사용될 것이며, SIG-Windows는 Kubernetes 클러스터에 Windows 워커 노드를 두는 경험에 초점을 맞추고 있다는 것입니다.

Q: Linux에서 Kubernetes를 사용하는 것과 Windows에서 Kubernetes를 사용하는 것의 가장 큰 차이점은 무엇입니까?

컨테이너 관리 관점에서 애플리케이션 호환성에 필요한 OS별 동작을 유지하는 것과 여러 운영 체제에 걸쳐 Kubernetes의 운영 일관성에 도달하는 것 사이에서 균형을 이루어야 합니다. 예를 들어 Kubernetes를 통해 노출된 Linux별 파일 시스템 기능, 사용자 ID 및 사용 권한은 현재 Windows에서 작동하지 않으며 사용자는 이러한 기본적인 차이점을 잘 알고 있습니다. 또한 SIG-Windows는 Linux에 존재하지 않을 수 있는 Windows 사용자의 요구를 충족하기 위해 Windows별 구성에 대한 지원을 추가했습니다. Windows 그룹 관리 서비스 계정에 대한 안정적인 지원이 한 예입니다. Windows 포드 및 Windows Kubelet에 대한 메모리 예약과 같은 다른 영역은 진행 중인 작업이며 CRI-ContainerD에 대한 우리의 노력은 기능 격차를 줄일 것입니다.

Linux에서 Kubernetes를 사용하는 것과 Windows에서 다른 큰 차이점은 Windows가 현재 권한 있는 컨테이너를 지원하지 않는다는 것입니다. 이는 CSI에서 정상적인 Kubernetes 마스터 노드를 실행하는 데 필수적인 시나리오에 이르기까지 여러 시나리오를 조명하는 핵심 기능입니다. 우리는 이러한 과제 해결을 위해 노력하고 있으며, 또한 Kubernetes에 있는 Windows 워크로드와 Linux 워크로드 사이의 기능 격차를 줄이는 데 초점을 맞추고 있습니다. (그리고 이러한 격차는 출시되는 모든 Kubernetes 릴리즈에서 점점 좁혀지고 있습니다.)

Q: Kubernetes 1.18은 2020년 4월 23일에 출시되었습니다. 1.18 Windows의 새로운 기능은 무엇입니까?

Criag와 Mark는 1.18년에 만들어진 SIG-Windows의 발전을 강조하는 블로그 게시물을 작성했습니다. https://cloudblogs.microsoft.com/opensource/2020/04/03/kubernetes-v1-18-advances-windows-container-support/에서 확인할 수 있습니다.

약간의 맛보기를 공유드리면, Kubernetest v1.18의 출시와 함께, 앞서 이야기한 많은 변화들이 구체화되고 있습니다. 모든 Kubernetes 릴리즈를 더욱 견고하게 만드는 일반적인 테스트 강화 외에도 커뮤니티에서는 Windows에서 CSI (Container Storage Interface) 드라이버, GMSA 및 RunAsUsername과 같은 기능 졸업, 컨테이너 런타임에 ContainerD에 대한 실험 지원 등을 도입했습니다.

Q: Windows에서 Kubernetes를 사용하는 사용자들은 어떤 점을 기대하고 있습니까? SIG-Windows에 대해 긍정적인 피드백을 받고 있는 것은 무엇입니까?

우리와 상호 작용한 사용자 중 대다수는 수년간 Windows에서 실행되는 비즈니스 크리티컬 인프라를 개발했으며 비용, 시간, 컴플라이언스 등 다양한 이유로 이러한 워크로드를 Linux로 이동할 수 없었습니다.

이러한 워크로드를 Windows 컨테이너로 전송하고 Kubernetes에서 실행함으로써 인프라를 신속하게 현대화하고 클라우드로 마이그레이션할 수 있습니다.

경우에 따라 드라이버에서 Windows 컨테이너로 이동하는 것은 현대화 작업일 수도 있고, 현재 운영 체제에 대한 하드웨어 보증 또는 지원 종료 주기가 만료되기 때문일 수도 있습니다. Windows 개발자는 SIG-Windows에 대한 우리의 노력을 통해 클라우드 기본 툴과 Kubernetes를 활용하여 분산된 애플리케이션을 보다 신속하게 구축하고 구현할 수 있습니다. 신나네요! 본질적으로, 사용자는 애플리케이션 가용성의 이점을 유지하면서 비용을 절감할 수 있습니다.

Q: 새로운 (또는 기존의) 컨트리뷰터들이 SIG-Windows 가입을 고려해야 하는 이유는 무엇입니까?

SIG-Windows는 모든 개발자에게 어필할 수 있는 관심 분야에 대한 광범위한 작업을 진행합니다.

스토리지, 네트워킹, CPU/메모리 관리, 보안에서 클러스터 수명 주기 관리에 이르기까지 관심 있는 모든 것에 대해 우리들은 당신의 도움이 필요합니다.

Go 언어를 배우고 싶나요? 함께할 수 있습니다.
Windows 컨테이너를 배우고 싶으신가요? 함께할 수 있습니다.
Kubernetes를 배우고 많은 SIG에 발을 담그고 싶으신가요? 어서오세요.

Q: 새로운 기여자들이 시작하도록 돕기 위해 무엇을 하고 계십니까?

다른 대부분의 Kubernetes SIG들처럼, 우리는 매우 환영받고 열린 공동체입니다. 새로운 컨트리뷰터는 Github에서 오래된 커뮤니티 미팅을 볼 수 있습니다. (지난 3년간의 모든 미팅을 기록하고 있습니다.) 문서를 읽고, 새로운 커뮤니티 미팅에 참석하고, 직접 또는 Slack을 통해 질문하고, Github에 대해 문제를 제기할 수 있습니다. 또한 우리 SIG는 모든 KubeCon 컨퍼런스에 참석하고 있으며, 1~2회의 세션, 컨트리뷰터 세션 및 Meet-the-manager 사무실 시간을 주최합니다.

우리들은 새로운 컨트리뷰터들이 처음에는 커뮤니티에 참여하여 듣기만 한 다음 몇 가지 질문을 시작하고 Kubernetes에서 Windows에 대해 교육받기를 추천합니다. 참여자가 편안함을 느끼기 때문에 우리의 문서를 개선하고 버그/이슈를 정리할 수 있으며, 결국 버그를 수정하여 코드 기여자가 될 수 있습니다. Windows에 장기적이고 지속적으로 상당한 기여를 할 수 있다면 SIG-Windows의 기술 담당자나 의장이 될 수 있습니다. 아직 시작하지 못했더라도 자세한 내용을 알고 싶다면 https://github.com/kubernetes/community/tree/master/sig-windows 에 방문하기 바랍니다. :) 이곳은 Kubernetes의 SIG-Windows와 관련된 모든 것에 대한 링크가 집대성된 곳입니다.

Q: 특별히 모집하고 싶은 스킬이 있습니까? SIG-Windows에서 배울 수 있는 기술은 무엇입니까?

우리는 항상 Windows에 대한 열정과 함께 Go, 네트워킹 및 스토리지에 대한 전문 지식을 찾고 있습니다. 이런 지식이 있다면 프로젝트에 큰 도움이 될 것입니다. 그러나, 반드시 그러한 기술을 필요로 하는 것은 아니며, 다양한 기술을 가진 모든 기여자를 환영합니다. 모르는 게 있다면 저희가 도와드리겠습니다.

Q: 그 외 하실 말씀이 있습니까?

우리는 당신이 참여하여 커뮤니티에 참여하여 피드백 및 구축 사례를 공유하고, 코드, 문서 및 모든 종류의 개선에 기여하는 것을 환영합니다.

참고 자료

Windows SIG 미팅 노트: https://docs.google.com/document/d/1Tjxzjjuy4SQsFSUVXZbvqVb64hjNAG5CQX8bK7Yda9w/edit#

Written by

Works at DEVSISTERS, Corp., Microsoft MVP since 2009, Living in S.Korea.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store