2022년에 알아야 할 20가지 Kubernetes 인터뷰 질문 및 답변
게시 됨: 2021-01-04Kubernetes는 오늘날 시장에서 가장 많이 찾는 컨테이너 오케스트레이션 도구 중 하나입니다. 2014년 Google에서 오픈 소스로 제공한 이 시스템은 SoundCloud, SAP, The New York Times, eBay, Huawei 등과 같은 회사에서 선호하는 시스템으로 떠올랐습니다.
그러나 Kubernetes 인증 전문가에 대한 방대한 수요를 충족할 수 있는 숙련된 전문가는 소수에 불과합니다. 게다가, 오늘날의 직업 선택 절차는 기술 개념에 엄청난 가치를 부여합니다. 따라서 항상 사전 에 Kubernetes 인터뷰 질문 에 대한 답변을 준비하는 것이 좋습니다 .
Kubernetes의 기본 아이디어는 기본 컴퓨터 리소스를 추상화하는 것입니다. 물리적 구현에서 기계, 스토리지 및 네트워크를 분리합니다. 의심할 여지 없이 플랫폼의 모멘텀이 증가하고 있습니다. Kubernetes는 클라우드의 운영 체제라고 불립니다. Kubernetes와 네트워킹에 대해 자세히 알아보세요.
이 분야에서 경력을 쌓을 생각이라면 아래 주어진 Kubernetes 인터뷰 질문 을 살펴보십시오. 그 첫 번째 단계를 밟고 기본 사항을 숙지하십시오!
Kubernetes 인터뷰 질문 및 답변 2022
1. 쿠버네티스를 정의합니다.
Kubernetes는 컨테이너화 플랫폼 그 이상입니다. 애플리케이션의 배포, 확장 및 로드 밸런싱 작업을 자동화합니다. 또한 이 다중 컨테이너 관리 도구는 대부분의 클라우드 제공업체와 잘 작동하며 능숙한 오픈 소스 커뮤니티의 도움을 받습니다. Kubernetes는 Go 프로그래밍 언어로 작성되었습니다.

2. Kubernetes의 몇 가지 주요 기능을 나열하십시오.
- 자동화된 스케줄링 – 클러스터 노드에서 컨테이너를 시작하는 고급 스케줄러입니다.
- 자가 치유 – 죽은 컨테이너의 일정을 변경, 교체 및 다시 시작할 수 있습니다.
- 자동화된 롤아웃 및 롤백 – 롤아웃 및 롤백을 지원합니다.
- 수평적 확장 – 요구 사항에 따라 애플리케이션을 확장하거나 축소하는 기능.
- Kubernetes와 Docker Swarm의 차이점을 나열하십시오.
Docker Swarm은 수명 주기 관리를 위한 컨테이너를 구축하기 위한 도구입니다. Kubernetes는 클러스터를 오케스트레이션하고 대규모 노드 클러스터를 조정하기 위한 것이므로 Docker Swarm보다 더 광범위합니다. Kubernetes는 확장성이 뛰어나지만 Docker Swarm은 Kubernetes보다 확장 속도가 약 5배 빠릅니다. 또한 Docker Swarm은 Kubernetes에서 수동 개입이 필요한 서로 다른 컨테이너 간에 트래픽의 자동 로드 밸런싱을 수행합니다.
그러나 Kubernetes에는 다른 기능이 있습니다. 자동 롤백 메커니즘과 함께 로깅 및 모니터링 도구가 내장되어 있습니다. Docker Swarm은 Kubernetes처럼 자동 롤백 및 자동 크기 조정을 수행할 수 없습니다.
4. 호스트의 애플리케이션 배포는 컨테이너의 배포와 어떻게 다릅니까?
호스트에 응용 프로그램을 배포할 때 운영 체제의 커널을 통해 많은 라이브러리를 설치할 수 있습니다. 모든 응용 프로그램은 해당 운영 체제에 있는 다양한 라이브러리를 공유합니다. 그러나 컨테이너에 애플리케이션을 배포하는 아키텍처는 약간 다릅니다.
컨테이너화된 아키텍처에서 커널은 애플리케이션 간에 공통되는 유일한 것입니다. 다른 응용 프로그램은 한 응용 프로그램에 필요한 라이브러리와 바이너리를 잠식할 수 없습니다. 따라서 시스템의 나머지 부분과 분리되어 존재합니다. 예를 들어 특정 응용 프로그램에 Python이 필요한 경우 해당 응용 프로그램만 Python에 액세스할 수 있습니다.
5. 컨테이너 오케스트레이션이란 무엇을 이해합니까? 왜 필요합니까?
애플리케이션에 4-5개의 마이크로서비스가 있다고 가정합니다. 이제 이러한 마이크로서비스는 개별 컨테이너에 있습니다. 따라서 서비스가 서로 통신하고 함께 작동하여 서버의 요구 사항을 충족할 수 있도록 하려면 컨테이너 오케스트레이션이 필요합니다. 그 과정은 마치 하나의 구성을 이루기 위해 서로 다른 악기들이 조화롭게 연주되는 오케스트라와 같습니다.
6. Kubelet이란 무엇입니까?
Kubelet은 Pod를 실행하는 에이전트 서비스입니다. 포드는 동일한 호스트에 배포되거나 단일 IP, 볼륨 등과 같은 일부 공통 리소스가 있는 컨테이너 그룹에 불과합니다. kubelet은 PodSpec에서 제공되는 이러한 컨테이너에 대한 설명에서 작동합니다. 주요 목적은 각 노드에서 실행하고, 컨테이너가 정상이고 실행 중인지 확인하고, 마스터 노드와 작업자 노드 간의 통신을 추가로 활성화하는 것입니다.
읽기: 전체 스택 인터뷰 질문 및 답변
7. Kubernetes에서 클러스터의 역할은 무엇입니까?
Kubernetes를 사용하면 특정 구성의 클러스터 서비스를 제공하여 필요한 상태 관리를 시행할 수 있습니다. 그런 다음 이러한 클러스터 서비스는 인프라에서 해당 구성을 실행합니다. 이 프로세스에는 다음 단계가 포함됩니다.
- 배포 파일에는 클러스터 서비스에 공급할 모든 구성이 포함되어 있습니다.
- 배포 파일은 API에 제공됩니다.
- 이제 클러스터 서비스가 환경에서 포드를 예약합니다.
- 클러스터 서비스는 또한 올바른 수의 포드가 실행되고 있는지 확인합니다.
따라서 Kubernetes 클러스터는 기본적으로 API, 작업자 노드 및 노드의 Kubelet 프로세스로 구성됩니다.
8. Kubectl은 무엇에 사용됩니까?
Kubectl은 Kubernetes 클러스터를 제어하기 위한 도구입니다. 실제로 "ctl"은 제어를 나타냅니다. 클러스터에 명령을 전달하고 Kubernetes 구성 요소를 관리할 수 있는 명령줄 인터페이스입니다.
9. Google 컨테이너 엔진을 정의합니다.
Google Container Engine(GKE)은 Google의 퍼블릭 클라우드 서비스 내에서 실행되는 Docker 컨테이너 및 클러스터를 지원하는 관리 플랫폼입니다. Kubernetes 기반의 오픈 소스 엔진입니다.
10. Kubernetes에서 노드의 사용법을 설명합니다.
노드는 포드를 실행하는 데 필요한 서비스를 제공합니다. 미니언이라고도 하는 노드는 클러스터에 따라 물리적 또는 가상 머신에서 실행할 수 있습니다. Kubernetes에서 노드는 주요 작업자 시스템이고 마스터 구성 요소는 시스템의 각 노드를 관리합니다.

이제 기본 사항에 대한 최신 정보 를 얻었으므로 명확성을 얻기 위해 몇 가지 Kubernetes 인터뷰 질문 과 답변을 더 살펴보겠습니다.
11. Kubernetes 아키텍처의 두 가지 주요 구성 요소는 무엇입니까?
마스터 노드와 작업자 노드는 Kubernetes 아키텍처를 구성합니다. 두 구성 요소 모두 내부에 여러 서비스가 내장되어 있습니다. 예를 들어 마스터 구성 요소에는 kube-controller-manager, kube-scheduler, etcd 및 kube-apiserver가 있습니다. 작업자 노드에는 각 노드에서 실행되는 컨테이너 런타임, kubelet 및 kube-proxy와 같은 서비스가 있습니다.
읽기: React 인터뷰 질문 및 답변
12. kube-apiserver 및 kube-scheduler를 정의합니다.
Kube-apiserver는 모든 구성 요소 API를 노출하는 마스터 노드 제어판의 프런트 엔드입니다. Kubernetes 노드와 마스터 구성 요소 간의 통신을 설정합니다. kube-scheduler는 작업자 노드의 워크로드를 관리합니다. 리소스 사용률을 추적하여 적절한 노드에서 스케줄링이 수행되도록 합니다.
13. Kubernetes Controller Manager의 역할을 간략하게 설명하십시오.
Kubernetes에서는 다양한 프로세스가 마스터 노드에서 실행되고 있으며 Kubernetes Controller Manager의 형태로 함께 컴파일됩니다. 다음을 포함하여 컨트롤러를 포함하는 데몬입니다.
- 노드 컨트롤러: 노드 생성, 업데이트 및 삭제 상태를 관리합니다.
- 복제 컨트롤러: 모든 복제 개체에 대한 포드를 유지 관리합니다.
- 서비스 계정 및 토큰 컨트롤러: 새 네임스페이스에 대한 기본 계정 및 API 액세스 토큰 관련
- 엔드포인트 컨트롤러: 엔드포인트 개체(포드 및 서비스)를 관리합니다.
- 클라우드 컨트롤러 관리자는 어떤 일을 하나요?
CCM(Cloud Controller Manager)은 클라우드 관련 제어 루프를 포함할 수 있는 데몬입니다. 핵심 Kubernetes 코드에서 클라우드별 공급업체 코드를 추상화합니다. 또한 기본 클라우드 서비스와의 통신을 관리하는 데 도움이 됩니다. 그 디자인은 플러그인 메커니즘을 기반으로 합니다. 즉, 클라우드 공급업체는 플러그인을 사용하여 코드를 CCM과 통합합니다.
15. 로드 밸런서의 역할은 무엇입니까?
로드 밸런서는 다양한 백엔드 서비스 간에 네트워크 트래픽을 분산하는 표준 방법을 제공하여 확장성을 최대화합니다. 작업 환경에 따라 내부 또는 외부의 두 가지 유형의 로드 밸런서가 있을 수 있습니다.
내부 로드 밸런서는 자동으로 로드 밸런싱을 수행하고 필요한 구성을 팟(Pod)에 할당할 수 있습니다. 반면에 외부 로드 밸런서는 외부 로드 트래픽을 백엔드 포드로 안내합니다. Kubernetes에서 두 가지 로드 밸런싱 방법은 kube-proxy 기능을 통해 작동합니다.
16. Kubernetes를 로컬에서 어떻게 실행할 수 있습니까?
Minikube 도구를 사용하여 로컬에서 Kubernetes를 실행할 수 있습니다. 랩톱의 가상 머신 내에서 단일 노드 클러스터를 실행합니다. 따라서 이제 막 시작하고 Kubernetes를 시도하려는 사용자에게 효율적인 방법을 제공합니다.
17. 힙스터란?
Heapster는 Kubernetes 클러스터에서 기본적으로 지원되는 성능 모니터링 및 메트릭 수집 도구입니다. 클러스터의 다른 포드처럼 실행되어 모든 노드를 검색하고 Kubernetes 노드에서 정보를 쿼리합니다. 이 컨테이너 관리 도구는 온머신 에이전트를 통해 작동합니다.
18. Kubernetes에서 ETCD란 무엇입니까?
Etcd는 Kubernetes 클러스터의 구성, 상태 및 메타데이터를 위한 저장소입니다. Go 프로그래밍 언어로 작성되었으며 주어진 시점의 클러스터 상태를 나타냅니다. 이 데이터 저장소는 분산 시스템의 백본 역할을 합니다.
19. 컨테이너 리소스 모니터링으로 무엇을 이해합니까?

사용자 관점에서는 컨테이너 포드, 서비스 및 전체 클러스터와 같은 다양한 추상화 계층 및 수준에서 리소스 사용률을 이해하는 것이 중요합니다. 각 레벨은 다음과 같은 다양한 도구를 사용하여 모니터링할 수 있습니다.
- 그라파나
- 힙스터
- 인플럭스DB
- 캐드바이저
- 프로메테우스
- Kubernetes를 사용하는 동안 환경의 보안을 어떻게 보장할 수 있습니까?
Kubernetes를 사용하는 동안 다음 보안 조치를 따르고 구현할 수 있습니다.
- ETCD 액세스 제한
- 노드에 대한 직접 액세스 제한
- 리소스 할당량 정의
- 모든 것은 프로덕션 환경에 기록되어야 합니다.
- 승인된 저장소의 이미지 사용
- 리소스에 대한 엄격한 규칙 및 정책 만들기
- 지속적인 보안 및 취약점 스캐닝 수행
- 정기적으로 보안 업데이트 적용
세계 최고의 대학에서 소프트웨어 개발 과정 을 받으십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
마무리
이 기사에서는 경력 목표를 실현하는 데 도움이 되는 필수 Kubernetes 인터뷰 질문 을 다루었습니다. 따라서 학습 과제를 수행하고 복습하는 것을 잊지 마십시오!
Kubernetes, DevOps 등을 배우고 마스터하려면 Full Stack Software Development Program에서 IIIT-B & upGrad의 Executive PG Program을 확인하십시오.
