강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

ㅎㅇㅎㅇㅎㅇ님의 프로필 이미지
ㅎㅇㅎㅇㅎㅇ

작성한 질문수

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

📝 쿠버네티스 흐름으로 이해하는 컨테이너

기술의 흐름으로 이해하는 컨테이너 질문드립니다!

작성

·

82

1

  • 실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)

  • 영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)

  • 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)

  • 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!

cafe: https://cafe.naver.com/kubeops

 

--

9분 58초쯤에 나오는 설명에 대한 질문입니다.

kubelet에서 컨테이너 런타임으로 바로 받는다는 의미가 잘 이해가 안갑니다.

우선 제가 이해한것을 말씀드리겠습니다.!

  1. CRI를 이용해서 grpc로 통신하는 방법에서

    CRI-plugin을 통해 직접 받는 방법으로 변경되었다.

  2. 각각의 컨테이너 밴더에서 플러그인을 구현하고 kubelet에서 해당 플러그인을 직접 호출한다.

 

여기서 궁금한 점입니다!

CRI 구조에서, 도커의 새로운 기능이 생기면 쿠버네티스도 패치해야한다고 하셨는데 이는 CRI-plugin를 이용할때도 동일한게 아닌가요? 둘의 개발 라이프사이클을 다르게 가져갈 수 있는 이유가 궁금합니다.

새로운 기능이 생겨도 인터페이스만 맞으면 되는 것인데,인터페이스의 변화가 필요하다면 결국은 플러그인이나 CRI나 kubelet의 변화도 필요한게 아닌가요??

답변 2

0

일프로님의 프로필 이미지
일프로
지식공유자

AI 인턴이 잘 대답해준거 같네요.

새로운 기능이 추가되더라도, 기존 CRI 인터페이스를 유지하면서 확장하면 kubelet은 수정할 필요가 없습니다. 예를 들어, containerd에서 새로운 기능이 생기더라도 CRI 플러그인에서 지원하면 kubelet은 그대로 유지될 수 있습니다. 반면, CRI 자체가 변경되면 kubelet도 업데이트해야겠지만, 이런 변경은 자주 발생하지 않아요.

근데 왜 도커의 새로운 기능이 생기면 CRI-plugin를 이용할때도 동일하다고 생각하시는지요?

0

안녕하세요, 인프런 AI 인턴입니다.

ㅎㅇㅎㅇㅎㅇ님께서 질문하신 내용은 쿠버네티스의 CRI(Container Runtime Interface) 구조와 관련된 부분입니다. kubelet이 컨테이너 런타임을 어떻게 호출하고, 인터페이스의 변화가 어떻게 영향을 미치는지에 대해 이해하기 어려우신 것 같습니다.

  1. CRI와 플러그인의 관계:

    • CRI는 쿠버네티스가 다양한 컨테이너 런타임과 상호작용할 수 있도록 정의된 표준 인터페이스입니다. 이를 통해, 쿠버네티스와 컨테이너 런타임 간의 의사소통이 표준화됩니다.
    • CRI 플러그인은 각 컨테이너 런타임을 위한 인터페이스 구현체입니다. 즉, 각 런타임 벤더에서 CRI 표준에 맞는 플러그인을 구현하여 kubelet이 이를 호출하게 됩니다.
  2. 개발 라이프사이클의 독립성:

    • CRI 구조 덕분에 쿠버네티스와 컨테이너 런타임의 개발 주기가 서로 독립적으로 진행될 수 있습니다. 이는 kubelet과 런타임 간의 의사소통을 표준화된 인터페이스를 통해 하기 때문입니다.
    • 인터페이스가 변하지 않는 한, 각각의 새로운 기능이 추가되더라도 서로간의 코드 변경이 최소화될 수 있습니다.
  3. 인터페이스의 변화가 필요한 경우:

    • 질문하신 것처럼, 인터페이스 자체에 변화가 필요하다면, 이는 kubelet과 관련된 변경이 필요하게 됩니다. 그러나, 이러한 변화는 매우 신중하게 이루어지며, 버전 관리와 같은 안전 장치가 함께 적용됩니다.

이와 관련된 더 구체적인 설명이 필요하시다면 아래의 링크를 통해 비슷한 주제를 다룬 답변을 참고하시는 것이 도움이 될 수 있습니다:

  • kubelet interface: 이 답변에서는 kubelet 소스코드 로직 구성 및 개발 라이프사이클에 대해 좀 더 구체적으로 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ㅎㅇㅎㅇㅎㅇ님의 프로필 이미지
ㅎㅇㅎㅇㅎㅇ

작성한 질문수

질문하기