차례[숨다][보여 주다]
- 1. 쿠버네티스란?
- 2. Kubernetes의 컨테이너는 무엇을 의미합니까?
- 3. Kubernetes의 주요 구성 요소는 무엇입니까?
- 4. 쿠버네티스에서 오케스트레이션이란 무엇을 의미합니까?
- 5. 쿠버네티스 클러스터란 정확히 무엇입니까?
- 6. 쿠버네티스로 컨테이너화된 배포가 어떻게 더 간단해집니까?
- 7. Kubernetes와 Docker Swarm 사이에는 어떤 근본적인 차이점이 있습니까?
- 8. 쿠버네티스에서 네임스페이스란 무엇입니까?
- 9. Kubernetes etcd 마스터 구성 요소는 정확히 무엇입니까?
- 10. Kubernetes의 API 보안을 위한 솔루션에는 어떤 것이 있습니까?
- 11. 호스트와 컨테이너에 배포된 애플리케이션의 차이점은 무엇입니까?
- 12. Minikube는 실제로 무엇을 의미합니까?
- 13. Kubernetes 클러스터는 어떻게 모니터링할 수 있습니까?
- 14. Kubernetes 노드는 어떤 기능을 수행합니까?
- 15. 힙스터에 대해 자세히 설명해주세요.
- 16. Kubernetes 마스터 노드의 작동을 설명하십시오.
- 17. 포드와 컨테이너의 차이점은 무엇입니까?
- 18. 쿠버네티스의 로드 밸런서는 무엇을 이해합니까?
- 19. Kube-API 서버는 어떤 기능을 수행하나요?
- 20. Kubernetes의 상태 저장 세트는 무엇을 의미합니까?
- 21. 포드의 중앙 로그를 어떻게 검사합니까?
- 22. ClusterIP: 무엇입니까?
- 23. 복제 컨트롤러에 대해 알려주세요.
- 24. Ingress 네트워크는 어떻게 작동하며 무엇입니까?
- 25. Kubernetes의 Prometheus: 무엇을 위한 것입니까?
- 26. 헤드리스 서비스란?
- 27. Kubernetes 아키텍처를 로컬에서 실행하려면 무엇이 필요합니까?
- 28. Stateful 세트에 대해 무엇을 이해합니까?
- 29. 쿠버네티스에서 미니언은 무엇을 의미합니까?
- 30. 서비스는 Kubernetes 구성 요소 내에서 어떤 기능을 수행합니까?
- 31. 헬름이 정확히 무엇인가요?
- 32. PVC 설명
- 결론
Google은 원래 2014년에 오픈 소스 컨테이너 오케스트레이션 기술인 Kubernetes를 만들었습니다. 컨테이너화된 애플리케이션의 배포, 확장 및 관리는 모두 자동화되도록 설계되었습니다.
Kubernetes는 시간이 지남에 따라 개발되어 컨테이너 오케스트레이션을 위한 업계의 사실상의 표준이 되었으며 모든 규모의 기업에서 컨테이너에서 워크로드를 관리하는 데 광범위하게 사용됩니다.
현대 세계에서 쿠버네티스의 중요성은 다양한 클러스터와 클라우드 환경에 걸쳐 컨테이너화된 애플리케이션을 대규모로 관리하는 일관된 방법을 제공하는 능력에 있습니다. 이 때문에 기업은 관리, 확장 및 애플리케이션 배포 빠르고 효과적으로.
컨테이너화된 앱의 유지 관리는 자가 복구, 자동화된 확장 및 롤링 업그레이드를 포함하는 Kubernetes의 광범위한 기능 세트로 더욱 쉬워집니다.
더 많은 기업이 컨테이너화 및 마이크로서비스를 사용하여 애플리케이션 개발 및 배포 절차를 가속화함에 따라 Kubernetes의 범위는 앞으로도 계속 확장될 것으로 예상됩니다.
클라우드 네이티브 기술의 채택과 멀티 클라우드 및 하이브리드 클라우드 시스템으로의 일반적인 이동은 모두 쿠버네티스에 크게 의존할 것입니다. 점점 더 많은 장치가 인터넷에 연결됨에 따라 쿠버네티스도 점점 더 많이 활용될 것입니다. 에지 컴퓨팅 그리고 사물인터넷.
가장 자주 묻는 인터뷰 질문을 알려주는 Kubernetes 인터뷰 질문에 대한 이 게시물을 읽고 있기 때문에 이러한 세부 정보를 이미 알고 있다고 가정합니다. 의 시작하자.
1. 쿠버네티스란?
쿠버네티스는 오픈 소스 프레임 워크 컨테이너화된 애플리케이션 오케스트레이션 및 관리용. 이를 통해 컨테이너화된 애플리케이션을 일관되고 효과적으로 배포, 확장 및 유지 관리할 수 있습니다.
Kubernetes는 컨테이너화된 애플리케이션을 대규모로 관리하는 단일 방법을 제공하며 다양한 클러스터 및 클라우드 환경에서 작동하도록 구축되었습니다.
자가 복구, 자동화된 확장 및 롤링 업그레이드는 컨테이너화된 앱을 훨씬 더 쉽게 관리할 수 있는 기능 중 일부에 불과합니다.
2. Kubernetes의 컨테이너는 무엇을 의미합니까?
컨테이너는 소프트웨어 패키징 및 실행에 대한 휴대 가능하고 가볍고 자급자족할 수 있는 접근 방식입니다. 애플리케이션 패키징 및 배포는 컨테이너를 사용하여 Kubernetes에서 일관되고 효과적으로 수행됩니다.
다른 컨테이너 및 호스트 시스템과 분리하기 위해 각 컨테이너는 하나의 프로세스만 실행합니다. 애플리케이션의 종속성, 라이브러리 및 구성 파일은 모두 컨테이너 정의 역할을 하는 컨테이너 이미지에 포함됩니다.
Kubernetes가 컨테이너 오케스트레이션을 사용하여 컨테이너를 관리하고 확장하기 때문에 컨테이너의 의도된 수의 복제본이 항상 작동합니다. 이를 통해 개발자는 여러 클러스터 및 클라우드 환경에서 애플리케이션을 간단하게 관리하고 배포할 수 있습니다.
3. Kubernetes의 주요 구성 요소는 무엇입니까?
Kubeneter의 주요 구성 요소는 다음과 같습니다.
- 쿠버네티스 마스터: 컨트롤러 관리자와 스케줄러, etcd(분산 키-값 저장소), API 서버 및 기타 구성 요소로 구성된 이 구성 요소는 클러스터 전체를 관리하는 역할을 합니다.
- 노드: 컨테이너화된 프로그램이 실행되는 워크스테이션입니다. 클러스터의 의도된 상태를 유지하기 위해 마스터와 상호작용하는 kubelet은 컨테이너 런타임(예: Docker)과 함께 각 노드에서 실행됩니다.
- 포드: Kubernetes 개체 모델의 가장 작고 가장 기본적인 요소는 하나 이상의 컨테이너에 대한 호스트 역할을 하는 포드입니다.
- 서비스: 서비스는 팟(Pod)에 일관된 엔드포인트를 제공하고 로드 밸런싱 및 서비스 검색을 가능하게 합니다.
- 복제 컨트롤러: 필요한 수의 포드 복제본이 항상 작동하도록 보장합니다.
- 비밀 및 ConfigMap: 이러한 리소스는 포드 및 기타 클러스터 개체에 대한 구성 데이터 및 비밀을 유지 관리하는 데 사용됩니다.
4. 쿠버네티스에서 오케스트레이션이란 무엇을 의미합니까?
Kubernetes에서 "오케스트레이션"이라는 용어는 컨테이너와 연결된 리소스의 자동 관리 및 조정을 의미합니다. 여기에는 네트워킹, 확장성, 배포 및 자가 치유를 포함한 활동이 포함됩니다. 포드, 서비스 및 복제 컨트롤러와 같은 개체를 사용하여 Kubernetes는 애플리케이션을 오케스트레이션합니다.
하나 이상의 컨테이너를 보유할 수 있는 포드는 배포 가능한 가장 작은 단위입니다. 서비스 관리 로드 밸런싱 서비스 검색 및 포드에 견고한 엔드포인트를 제공합니다. 포드의 복제본은 복제 컨트롤러 덕분에 항상 필요한 수의 사본으로 작동합니다.
5. 쿠버네티스 클러스터란 정확히 무엇입니까?
클라우드 기반, 물리적, 가상 및 온프레미스 등 다양한 컨텍스트와 시스템에서 컨테이너화된 앱을 실행하는 일련의 노드가 Kubernetes 클러스터를 구성합니다. 앱의 간단한 관리 및 마이그레이션과 생성을 용이하게 합니다.
6. 쿠버네티스로 컨테이너화된 배포가 어떻게 더 간단해집니까?
일반적인 애플리케이션은 많은 호스트의 컨테이너 클러스터에서 작동하므로 이러한 모든 컨테이너는 서로 통신해야 합니다.
따라서 이를 달성하기 위해서는 컨테이너의 확장, 로드 밸런싱 및 모니터링이 가능한 대규모 시스템이 필요합니다. Kubernetes는 클라우드에 구애받지 않고 모든 공용 또는 개인 공급자에서 작동할 수 있으므로 컨테이너화된 배포를 쉽게 하려면 Kubernetes를 사용해야 합니다.
7. Kubernetes와 Docker Swarm 사이에는 어떤 근본적인 차이점이 있습니까?
Docker의 기본 오픈 소스 컨테이너 오케스트레이션 도구인 Docker Swarm을 사용하여 Docker 컨테이너를 예약하고 클러스터링합니다. 다음 특성은 Swarm을 Kubernetes와 차별화합니다.
- Kubernetes와 Docker Swarm은 모두 자동 확장 기능이 없지만 Docker 확장은 Kubernetes보다 XNUMX배 빠릅니다.
- Kubernetes는 대시보드 형태의 GUI를 제공하지만 Docker Swarm에는 GUI가 없습니다.
- 설정이 더 어렵지만 강력한 클러스터를 보장하는 Kubernetes에 비해 Docker Swarm은 설치가 더 쉽지만 안정적인 클러스터가 없습니다.
- Kubernetes에는 로깅 및 모니터링을 위한 기본 제공 기능이 포함되어 있지만 Docker에는 ELK 스택과 같은 외부 도구가 필요합니다.
- 롤링 업데이트는 Docker를 통해 배포할 수 있지만 자동화된 롤백은 불가능합니다. 롤링 업데이트와 자동화된 롤백은 Kubernetes를 사용하여 배포할 수 있습니다.
8. 쿠버네티스에서 네임스페이스란 무엇입니까?
Kubernetes 네임스페이스는 넓은 지리적 영역에 걸쳐 여러 프로젝트에서 작업하는 여러 사용자가 있는 환경에서 활용됩니다. 네임스페이스는 클러스터 리소스를 여러 사용자에게 나눕니다.
9. Kubernetes etcd 마스터 구성 요소는 정확히 무엇입니까?
Etcd는 Kubernetes 마스터 서버의 중요한 부분입니다. 또한 항목이 분산된 키-값 저장소에 저장되는 Kubernetes 클러스터의 허브 역할을 합니다.
복제 기술은 서버 간에 etcd에 저장된 데이터를 보존하기 위해 알고리즘과 함께 사용됩니다. etcd 서버 간에 데이터를 비교하고 교환할 때 잠금 상황을 최소화하고 서버 속도를 높이기 위해 낙관적 통화가 사용됩니다.
10. Kubernetes의 API 보안을 위한 솔루션에는 어떤 것이 있습니까?
API 보안 제공은 다음과 같은 방법으로 수행할 수 있습니다.
- API 인증 수단을 통해
- API 서버 인증 모드에 적합한 인증 모드 선택= Node, RBAC
- RBAC 오류 추적
- TLS가 트래픽 보호에 사용되고 있는지 확인
- Kubeless가 API를 보호하도록 하기 위해 authorization-mode=Webhook 사용
- 기본 서비스 계정 권한 제거
- kube의 최신 릴리스 사용
- kube-dashboard가 엄격한 RBAC 정책을 따르는지 확인
- 컨테이너 액세스를 제한하고 노드를 보호하기 위한 팟(Pod) 보안 정책 구현
11. 호스트와 컨테이너에 배포된 애플리케이션의 차이점은 무엇입니까?
운영 체제와 아키텍처는 배포된 애플리케이션을 구성합니다. 운영 체제에는 응용 프로그램에 필요한 여러 라이브러리가 들어 있는 커널이 있습니다.
프로세스 컨테이너를 실행하는 시스템을 컨테이너 호스트라고 합니다. 이러한 유형의 소프트웨어는 다른 프로그램과 구별되므로 앱에 필요한 라이브러리가 포함되어야 합니다. 바이너리는 시스템의 나머지 부분과 분리되어 있기 때문에 다른 소프트웨어의 권리를 침해할 수 없습니다.
12. Minikube는 실제로 무엇을 의미합니까?
Minikube를 사용하면 Kubernetes를 로컬에서 쉽게 실행할 수 있습니다. 이를 통해 가상 머신은 단일 노드로 Kubernetes 클러스터를 호스팅할 수 있습니다.
13. Kubernetes 클러스터는 어떻게 모니터링할 수 있습니까?
쿠버네티스에서 동작하는 컨테이너의 동작 및 상태를 다양한 방법으로 추적할 수 있습니다. 가장 자주 사용되는 도구 중 하나인 Prometheus에는 여러 부분이 포함되어 있으며 아래 섹션에서 세분화되어 있습니다.
- Prometheus 서버는 시계열 데이터를 수집하고 저장합니다.
- 여기에는 애플리케이션 코드 계측을 용이하게 하는 클라이언트 라이브러리가 포함됩니다.
- 임시 작업을 지원할 수 있는 푸시 게이트웨이가 특징입니다.
- StatsD, HAProxy, Graphite 등과 같은 다양한 컨테이너 서비스에 특화된 기능을 가진 수출업체가 있습니다.
- 또한 다양한 지원 시스템에서 알림을 처리하는 알림 관리자를 받게 됩니다.
14. Kubernetes 노드는 어떤 기능을 수행합니까?
Pod의 운영을 위해 Node는 중요한 기능을 제공합니다. 미니언이라고도 하는 Nod는 클러스터에 따라 실제 또는 가상 컴퓨터에서 작동할 수 있습니다.
Kubernetes에서 노드는 기본 작업자 컴퓨터이며 마스터 구성 요소는 각 노드를 개별적으로 감독합니다.
15. 힙스터에 대해 자세히 설명해주세요.
Heapster는 각 노드에서 실행되는 Kubelet이 생성하는 전체 클러스터에 걸쳐 데이터를 결합합니다. 이 컨테이너 관리 도구는 이 Kubernetes 클러스터에서 기본적으로 지원되며 클러스터의 다른 포드와 마찬가지로 포드로 작동합니다.
기본적으로 이는 클러스터의 모든 노드를 찾고 온머신 Kubernetes 에이전트를 활용하여 클러스터의 Kubernetes 노드에서 데이터를 쿼리하는 것을 수반합니다.
16. Kubernetes 마스터 노드의 작동을 설명하십시오.
마스터 노드는 작업자 노드의 지배 및 제어 노드를 승격시킵니다. 이는 Kubernetes 클러스터와 유사합니다. 노드는 컬렉션의 리소스를 구성하고 관리하는 데 사용되는 API뿐만 아니라 클러스터 관리를 담당합니다. 전용 포드의 이점으로 인해 Kubernetes 마스터 노드는 Kubernetes 자체와 함께 실행할 수 있습니다.
17. 포드와 컨테이너의 차이점은 무엇입니까?
Kubernetes는 복제 단위로 컨테이너 그룹인 포드를 사용합니다. 컨테이너는 애플리케이션의 포드가 생성해야 하는 코드 모음입니다. 동일한 포드 내에서 컨테이너는 서로 통신할 수 있습니다.
18. 쿠버네티스의 로드 밸런서는 무엇을 이해합니까?
가장 일반적이고 허용되는 서비스 노출 방법 중 하나는 로드 밸런서입니다. 작업 환경에 따라 로드 밸런서는 내부 로드 밸런서 또는 외부 로드 밸런서입니다.
외부 로드 밸런서가 외부 로드에서 백엔드 팟으로 트래픽을 라우팅하는 동안 내부 로드 밸런서는 로드 밸런싱을 자동으로 조정하고 필요한 구성으로 팟을 할당합니다.
19. Kube-API 서버는 어떤 기능을 수행하나요?
API 개체의 경우 이 유형은 구성 정보를 확인하고 제공합니다. 복제 컨트롤러, 서비스 및 포드로 구성됩니다. 또한 REST 작업과 클러스터의 인터페이스를 제공합니다. 다른 모든 구성 요소는 이 공통 프런트엔드 클러스터 상태를 통해 서로 통신합니다.
20. Kubernetes의 상태 저장 세트는 무엇을 의미합니까?
상태 저장 세트라는 워크로드 API 객체는 상태 저장 애플리케이션을 관리하는 데 사용됩니다. Pod 집합을 확장하고 배포를 관리하는 데 사용됩니다. 상태 저장 세트에 연결된 디스크 저장소에는 상태 정보 및 상태 저장 포드의 기타 탄력적 데이터가 저장되고 최신 상태로 유지되었습니다.
21. 포드의 중앙 로그를 어떻게 검사합니까?
포드에서 중앙 로그를 검색하기 위해 두 가지 로깅 스타일 중 하나를 활용할 수 있습니다.
- 노드 수준에서 로깅 에이전트를 사용합니다.
- 스트림의 사이드카 컨테이너
- 로깅 에이전트를 사이드카 컨테이너와 함께 사용하십시오.
- 프로그램에서 직접 로그 내보내기
22. ClusterIP: 무엇입니까?
기본 Kubernetes 서비스인 ClusterIP는 클러스터의 다른 앱이 액세스할 수 있는 내부 클러스터 서비스(외부 액세스 없음)를 제공합니다.
23. 복제 컨트롤러에 대해 알려주세요.
모든 장기 실행 포드의 경우 복제 컨트롤러가 감독자 역할을 합니다. 이는 필요한 수의 포드가 한 순간에 활성화되고 각 포드 또는 포드 그룹이 일관된 구조를 갖도록 보장합니다.
의도한 수보다 더 많은 포드가 있는 경우 잉여 포드가 종료됩니다. 또한 컨트롤러는 결함이 있는 포드를 즉시 교체합니다.
24. Ingress 네트워크는 어떻게 작동하며 무엇입니까?
사용자는 인그레스라는 항목 덕분에 Kubernetes 클러스터 외부에서 Kubernetes 서비스에 액세스할 수 있습니다. 특정 서비스에 도달하는 인바운드 연결을 지정하는 규칙을 설정하여 사용자가 액세스를 구성할 수 있습니다.
이 API 개체는 HTTPS/HTTP를 통해 클러스터 외부의 방문자가 Kubernetes 클러스터의 서비스에 액세스하는 방법을 제어하는 데 필요한 라우팅 규칙을 제공합니다. 이를 통해 사용자는 여러 개의 로드 밸런서를 만들거나 모든 서비스를 노드에 노출하지 않고도 빠르고 효율적으로 트래픽 라우팅 규칙을 구축할 수 있습니다.
25. Kubernetes의 Prometheus: 무엇을 위한 것입니까?
Prometheus라는 오픈 소스 툴킷은 메트릭에 따라 애플리케이션을 모니터링하고 경고하는 데 사용됩니다. 데이터 스키마와 쿼리 언어를 제공하고 메트릭 정보와 조치를 제공할 수 있습니다. 그것은 많은 도구적 목적을 위한 언어의 사용을 가능하게 합니다.
Alertmanager 및 Grafana 외에도 Prometheus 운영자는 배포 및 K8s 서비스에 대한 간단한 모니터링을 제공합니다.
26. 헤드리스 서비스란?
헤드리스 서비스는 IP 주소를 사용하지만 로드 밸런싱이 아닌 연결된 포드에 대한 정보를 제공하는 서비스입니다.
27. Kubernetes 아키텍처를 로컬에서 실행하려면 무엇이 필요합니까?
Kubernetes 통합을 위해 여러 온프레미스 인프라가 리모델링되었습니다. 스토리지, 서버 및 네트워킹을 완벽한 시스템으로 통합하려면 높은 수준의 전문 지식이 필요합니다.
적절한 네트워킹 및 스토리지 하드웨어를 선택하는 것은 스토리지, 로드 밸런서 등에 대한 리소스와의 상호 작용을 가능하게 하므로 Kubernetes에 필수적입니다. 네트워킹 및 스토리지 구성 요소 자동화는 Kubernetes의 가치 제안의 핵심 구성 요소입니다.
28. Stateful 세트에 대해 무엇을 이해합니까?
상태 저장 세트로 알려진 워크로드 API 항목은 상태 저장 애플리케이션을 관리하는 데 사용됩니다. 포드 세트를 확장하고 배포를 관리하는 데 사용할 수도 있습니다. 상태 저장 세트에 연결된 디스크 저장소에는 상태 정보 및 상태 저장 포드에 대한 기타 데이터가 저장됩니다.
29. 쿠버네티스에서 미니언은 무엇을 의미합니까?
Kubernetes에서 노드는 작업자 머신이라고 합니다. 이전에는 미니언으로 알려졌습니다. 클러스터를 기반으로 가상 컴퓨터 또는 실제 시스템이 될 수 있습니다.
각 노드는 Kubernetes 마스터 구성 요소에 의해 관리되며 포드를 작동하는 데 필요한 서비스를 포함합니다. 컨테이너 런타임, kubelet 및 Kube-proxy는 노드에서 제공하는 서비스에 포함됩니다.
30. 서비스는 Kubernetes 구성 요소 내에서 어떤 기능을 수행합니까?
가상 IP 주소 제공을 통해 서비스는 포드에 대한 추상화 역할을 합니다. 가상 IP 주소는 포드 내부에서 실행되는 컨테이너에 대한 사용자 연결을 용이하게 합니다. 컨테이너가 포드 내에서 배열되는 방식을 결정하는 구성 요소입니다.
31. 헬름이 정확히 무엇인가요?
CNF에서 관리하는 Helm 애플리케이션 패키지 관리 레지스트리는 Kubernetes에서 사용할 수 있습니다. 사전 구성된 투구 차트 Kubernetes 시스템에 다운로드하여 배포할 수 있습니다. Kubernetes 환경에서 가장 널리 사용되는 패키지 관리 솔루션 중 하나가 바로 이것입니다. DevOps 팀은 앱을 프로덕션 및 개발 환경에 배포하고, 버전을 지정하고, 기존 차트를 사용하여 진행 상황을 추적할 수 있습니다.
32. PVC 설명
PVC는 Persistent Volume Claim의 약자입니다. 쿠버네티스가 팟을 요청한 스토리지입니다. 기본 프로비저닝에 대한 사용자 지식은 필요하지 않습니다. 포드가 형성되는 네임스페이스와 이 클레임이 생성되어야 하는 네임스페이스가 일치해야 합니다.
결론
Kubernetes 인터뷰 질문과 답변이 완료되었습니다.
의심할 여지 없이 수천 개의 컨테이너를 관리하고 실행할 수 있게 만든 최첨단 기술인 Kubernetes에 대해 더 많은 것을 배울 수 있지만 여기에서 시작하는 것이 좋습니다. 면접 준비에 대한 도움말은 다음을 참조하십시오. 해시독의 인터뷰 시리즈.
댓글을 남겨주세요.