[K8S]는 Kubernetes 건축을 이해

  유사한 자원 관리, 작업 스케줄링는 Kubernetes 것이 조금 배울 수있는 시간을내어, 느낌과 같은 빅 데이터와 같은 클러스터 지역은 간단히 메모를 요약한다.

[개념]

  는 Kubernetes는 산업용 등급의 ​​컨테이너 오케스트레이션 플랫폼, 조금 긴 단어, 일반적인 K8S를 대신했다.

  주요 기능은 다음과 같습니다

  • 일정 : 포드를 배포 할 때 예를 들어, 포드는 기계보다 유휴 노드에 배포했습니다.
  • 자동 복구 : 예를 들어, 기계 상태 점검 노드, 기계 일반 노드에 오류가 발생한 시스템의 마이그레이션 포드 노드입니다.  
  • 신축성 : 예를 들면, 트래픽 부하 체크는 CPU / 메모리 사용량이 너무 높으면, 포드 등의 서비스 응답 시간이 너무 긴 미리 설정된 조건을 만족하는, 자동 확장 졌을 때.

 추신:   

  용기 직접 파일 교환에 필요한 약간의 네임 스페이스를 공유 사이 포드는, 예를 들면 용기의 매우 밀접한 관계 집합의 모음 사이 등 매우 빈번한 RPC 호출이있다. 포드 대신 용기, K8S 원자 스케줄링 유닛이다.

 

[건축] 공식

[이해]

  공식 그림은 K8S 기술 아키텍처, 사실, 기술 아키텍처 전에,보다 단순화 된 논리 아키텍처 기반을 K8S이 있어야합니다. 다음 출력 이해 :

  

  • etcd :

  또한 이벤트 가입 및 듣기 능력 리더 선거가 클러스터 상태를 모두 저장하는 데 사용되는 분산 스토리지 구성 요소입니다.

  이벤트 및 청취자 구독하기 : 여러 다른 구성 요소가 수행되지 않습니다 서로 API 호출과 통신하지만, 상태가 etcd를 기록, 다른 구성 요소 업데이트 다시 한번 다음 etcd을 가입하여 상태의 변화를 모니터링하고 후속 처리를 수행하고 데이터가 etcd 기록됩니다.

  리더 선거 : 같은 스케줄러와 같은 구성 요소가 여러에서 etcd에 의해, 고 가용성을 달성 할하려면 (보통 3 개) 예있는 마스터를 수행하기로 결정, 다른 대기입니다.

 

  • API 서버 :

  위 직접 액세스,하지만하지 etcd API 서버에 의해 방문 후 위임한다. API 서버 API 게이트웨이가 동일합니다, 그것은 패키지 etcd 인터페이스 표준 : 편안하고 API입니다 호출합니다.

  此外,API Server还实现了一些附加功能,例如身份认证、缓存等。

 

  • Controller Manager:

  实现任务调度。直接请求Kubernetes做调度的都是任务,例如Deployment、Deamon Set或者Job,每一个任务请求发送给Kubernetes 之后,都是由 Controller Manager 来处理的。

  每一种任务类型对应一个 Controller Manager,例如:Deployment对应Deployment Controller,ReplicaSet对应ReplicaSet Controller。

 

  • Scheduler:

  实现资源调度。Controller Manager会把任务对资源Pod的要求,写入到etcd。Scheduler监听到有新的资源Pod要求被调度,会根据整个集群的各个节点的资源情况,将Pod分配到较为空闲合适的节点上。

 

  • Kubelet:

  是一个Agent,运行在每一个节点上,它会监听etcd中的Pod的信息,发现有分配给它所在节点的Pod需要运行,就在节点上运行相应的Pod,并且把状态更新回到etcd。

 

  • Kubectl:

  是一个提供给用户的命令行工具,用户通过它调用API Server,发送请求写入状态到etcd,或者查询etcd中的状态。

 

【举例】

   假如要运行一个多个实例的Nginx,那么在 Kubernetes内部,流程如下: 

  1. 通过 kubectl 命令行,创建一个包含Nginx 的Deployment对象。kubectl会调用 API Server 往 etcd里面写入一个Deployment 对象。
  2. Deployment Controller监听到有新的 Deployment 对象被写入,就获取到对象信息,根据对象信息来做任务调度,创建对应的 Replica Set 对象。
  3. Replica Set Controller 监听到有新的对象被创建,也读取到对象信息来做任务调度,创建对应的 Pod 。
  4. Scheduler监听到有新的Pod被创建,读取到 Pod 对象信息,根据集群状态将 Pod 调度到某一个节点上,然后更新 Pod(内部操作是将 Pod 和节点绑定)。
  5. Kubelet 监听到当前的节点被指定了新的 Pod,就根据对象信息运行 Pod。

추천

출처www.cnblogs.com/wwcom123/p/10963136.html