는 Kubernetes 시리즈의 첫 번째 기사 :는 Kubernetes 소개 및 용어 해설

소개 1.는 Kubernetes

1.1. 어떻게는 Kubernetes입니다

는 Kubernetes는 (K와의 사이에 여덟 글자가 있기 때문에), 구글의 오픈 소스 플랫폼 컨테이너 배열, 크게 구글의 내부 신고 시스템에 의해 보그 용기에 영향을 탄생 K8S, K8S 다음과 같은 기능을 달성입니다 K8S을 언급

오토 박싱

자원 의존도 및 기타 제약에 따라, 용기의 상단에 내장하는 배포 컨테이너를 자동화

자가 치유

컨테이너를 지원하기 위해 실패는, 컨테이너가 노드 실패 후 재조정 후 자동 재시작, 건강 검진 및 노드 밀폐 된 용기 및 자체 수리 메커니즘 등의 실패 후 다시는 만들어

수평 확장

명령 또는 UI 수동 수평 확장뿐만 아니라, CPU 부하율 같은 자동 수평 팽창기구 기반 자원 지원

서비스 검색 및로드 균형 조정

시스템 서비스 검색으로 내장 CoreDNS 별관, 각 서비스에 대한 DNS 이름의 구성 및 의한 K8S는 클러스터 내에서 클라이언트가 직접 이름을 사용하여 요청을 액세스 할 수 있으며, 서비스의 iptables 또는로드 밸런싱 메커니즘에 의해 내장 IPVS

자동 해제 및 롤백

K8S 지원 灰度, K8S 동시에 모든 인스턴스를 죽일 수 있도록 K8S 업데이트 프로세스 애플리케이션의 상태를 모니터링 할 업데이트 프로세스에서 응용 프로그램 또는 구성 정보를 업데이트하고,이 과정을 한 번 오류가 발생 자동으로 즉시 작업을 롤백합니다

키 및 구성 관리

ConfigMap 형의 K8S는 디커플링 미러 구성 데이터를 달성하고 애플리케이션 개발 및 구축에 큰 유연성을 제공합니다 도커 거울, 재건하지 않고 필요할 때 도커 만 구성 변경 만든
, 따라 민감한 데이터 애플리케이션을 사용자 이름 및 암호와, 토큰, 키, 등, K8S 등의 정보는 모두 신속한 응용 프로그램 개발 및 제공을 용이하게하기 위해, 디커플링에 대한 비밀 객체를 제공뿐만 아니라 보안을 어느 정도 제공

스토리지 레이아웃

포드 K8S 자동 로딩 객체가 스토리지 시스템의 다른 유형을 요구하는 지원, 로컬 스토리지, 클라우드 저장 서비스 제공자 공개 클라우드 및 네트워크 저장 시스템에있어서, 노드 (NFS, Ceph를 글루 스터 FS (GlusterFS) 등)

2. 노드 및 구성 요소

일반적으로 클러스터의 K8S 복수 工作节点(worker node)하고 集群控制节点(master)및 저장 시스템 클러스터 상태 (ETCD) 복합물

2.1. 마스터 노드

마스터가 다른 구성 요소를 스케줄링 작업 부하 사이의 최적의 방식으로 다른 서버, 통신 및 기타 작업의 상태를 추적뿐만 아니라, 배열, 같은 사용자와 고객을위한 노출 API와 같은 클러스터의 관리를 담당 게이트웨이와 허브의 클러스터입니다, 그것을 클라이언트와 사용자 또는 클러스터 사이의 접촉의 핵심 포인트입니다
모든 기능을 완료하기 위해 단일 마스터 노드는 있지만, 이중화 및로드 밸런싱을 위해, 생산 환경은 일반적으로 여러 개의 마스터 노드 구축이 필요
마스터 노드는 apiserver 구성 제어기 매니저 스케줄러 세 서비스 요소 및 etcd 클러스터 상태 조성물을 저장하기위한 메모리

2.2. 기지국 노드

기지국은 네트워크 취급 규칙을 조정 이러한 포드 객체를 만들거나 파괴하는 바와 같이, 명령에 따라 노드 K8S 클러스터 (작업자)를 작동하고, 마스터와 동작 완료 응답의 지시를 수신한다
(마스터 노드는 주로 kubelet KUBE 프록시 용기 엔진 도커을 가장 일반적인 컨테이너 엔진)으로 구성되어있다

2.3. 마스터 구성 요소

클러스터 게이트웨이 (API 서버)

게이트웨이 인터페이스는 클라이언트의 요청을 구문 분석에 대한 책임 클러스터를, K8S

클러스터 스테이트 스토리지 (etcd)

K8S 모니터링에 대한 리스너 (시계) 메커니즘을 제공하고 변화를 추진하고, 지속적인 데이터를 저장
K8S 클러스터 시스템에서 키가 통보됩니다 etcd 때 watchAPI을 통해 고객에게 출력 말까지 API 서버로 변경됩니다. 시계 메커니즘의 구성 요소를 기반으로 K8S 클러스터가 효율적으로 공동 작업을 가능하게

스케줄러 (스케줄러)

사용자가 포드가 요청을 발행 만들 때, 스케줄러 포드는 각 노드 자원에 따라 노드에서 생성됩니다 스케줄링 의사 결정을하고, 자원 컨테이너에 필요한

컨트롤러 관리합니다 (ControllerManager)

확인 컨트롤러는 건강한 상태에 있음

2.4. 노드 구성 요소

오믈렛

마스터 노드와, 통신 작업을 통해 마스터 스케줄링을 수신에 대한 책임은 노드에서 포드 검사는 건강한 상태에

선박 엔진

선박을 실행에 대한 책임은, 선박이 현재 부두 노동자들에게 가장 인기있는 엔진입니다, K8S 현재 RTK 컨테이너 모두와 부두 노동자 엔진을 지원합니다

KUBE-프록시

지정된 사용자에게 요청을 전달하도록 포드는, 서비스 자원 오브젝트 또는 원시 IPVS의 iptables 규칙에 따라

3. K8S 기간

3.1. 아래의

K8S 직접 컨테이너를 스케줄링하지만, 추상적 자원 오브젝트의 사용은 유닛을 스케줄링 작은 K8S이다 추상 객체, 포드라고하는 하나 이상의 용기를 캡슐화하지
공유 네트워크 스토리지 자원 공간에서 동일한 용기 포드를 이러한 컨테이너는 로컬 포트로의 링크를 반환 할 수 lo있지만, 이러한 PID 분리로 마운트, 사용자 이름 및 공간적 직접 통신에 유지 서로에
포드 복수의 용기를 포함 할 수 있으나, 최소 스케쥴링 유닛으로서, 이는로 유지되어야하더라도 필요한 경우, 즉 통상적으로 단지 주 탱크를 포함해야하고 다른 보조 타입 용기 (사이드카)

3.2. 자원 레이블

레이블 (라벨) 자원 분류의 식별자, 자원 레이블이 실제로 (키 / 값) 데이터 핵심 유형입니다
레이블이 지정된 오브젝트에 대한 가시성의 속성이며,이 속성 사용자 만, K8S의 특별한 의미가있다 에 대한 작은 의미의 클러스터
라벨은 객체가 그에 생성 될 때 연결하고, 작성 후 언제든지 추가하고 수정할 수 있습니다 할 수 있습니다. 객체가 여러 개의 라벨을 가질 수 라벨은 객체의 다수에 부착 될 수있다

3.3. 태그 선택기

태그 선택기 (선택기) 모든 공지 Label Selector그것이 필터링 메커니즘 따른 라벨 정규화 자원 목적은
예를 들어, 라벨이 부착 될 role: backend모든 오브젝트는 포드 어플리케이션 선택기 태그되어 그룹화 촬상
사용자가 일반적으로 사용 태그 자원 객체를 분류 한 다음 전원을 골라 태그 선택기를 사용하여, 그들은 일괄 작업이었다

3.4. 포드 컨트롤러

사용자는 일반적으로 관리 할 수있는 추상화 컨트롤러 (컨트롤러)에 의해 다른 배포 및 관리 포드 객체로 직접 이동하지 않지만
일반적인 컨트롤러 다음, K8S 개체 포드의 큰 숫자를 관리하기위한 컨트롤러를 내장

ReplicationController   K8s 早期使用的控制器
ReplicaSet              副本集, 一般不直接使用此管理器而是使用 Deployment 管理器
Deployment              管理无状态应用
StatefulSet             管理有状态应用
Job                     运行作业
Cronjob                 运行周期性作业
DaemonSet               在每个 Node 上都运行一个副本, 而不是在随机节点上运行

3.5. 서비스 자원 (서비스)

서비스 자원 선택기 레이블 (라벨 선택기)에 의해 선택되는 추상 객체 포드 개체 포드의 그룹과이 그룹에 대한 통합 된 객체 정의의 세트에 기초 포드 액세스 항목 (일반적으로 IP 주소)를 고정 첨부 K8S의 DNS 클러스터가있는 경우, 자동 서비스 검색을 만들기 위해 서비스에서 클라이언트에 대한 DNS 이름을 구성 할
서비스에서, 따라서 이후의 각 포드 객체의 상단에 균형 IP 요청이로드 될 서비스에 도달하고, 본질적으로, 그것은 네 대행 서비스입니다

3.6. 스토리지 볼륨 (부피)

스토리지 볼륨 (부피)는 파일 시스템의 저장 용기와 독립적이며, 상기 용기는 일반적으로 확장 스토리지 사용 및 위해 영구 저장 용량을 제공
K8S로 분할 될 수있는 클러스터의 스토리지 볼륨 임시 볼륨 로컬 및 네트워크 볼륨
임시 포드가 다른 노드를 스케줄링하면 볼륨 로컬 노드에있는 로컬 볼륨은 스토리지 볼륨이 유형에 액세스 할 수 없기 때문에 일반적으로 캐시 데이터를 사용하는 임시 볼륨 로컬 볼륨은 영구적 데이터는 지속적인 필요성에 배치 볼륨 (지속적인 볼륨)

3.7. 이름과 네임 스페이스

이름은 그 범위는 객체의 이름은 고유해야합니다 일반적으로 같은 네임 스페이스의 네임 스페이스 (네임 스페이스), 자원의 동일한 유형, K8S 클러스터 리소스 객체 식별자입니다
일반적으로 사용자 또는 프로젝트를 구현하는 데 사용되는 네임 스페이스 자원 분리하여 논리적 그룹, 기본의 기본 이름 공간을 형성

3.8. 주석 (주석)

주석 (참고) 데이터 용량 레이블보다 큰 소유 키 데이터의 종류에 추가 개체입니다
일반적으로 개체에 추가 비표준 데이터 유형을 식별하는 데 사용되는 주석, 그러나 식별하는 데 사용할 수 없습니다 및 개체를 선택, 일반적으로 사용되지 않습니다 직접 주요 목적은 읽고 검색하고 다른 사용자를 촉진하는 것입니다, K8S

3.9. 입구

목적 및 K8S 포드 분리 외부 네트워크 환경, 서비스 및 다른 오브젝트 사이의 통신이 포드는 할 몇 포드 객체를 열 필요가 요청을 통해 유동을 개방 할 필요가있는 외부 사용자에 대한 액세스를 제공하며, 내부 사설 주소를 사용 내부 K8S 클러스터 채널 서비스 이외에 그레스 채널의 타입을 달성하기위한 하나의 방법

3.10. 용기를 일시 정지

포드는 각각 사용자 정의 컨테이너 즉 컨테이너 일시 및 기타 용기 특수 컨테이너를 실행하고,이 유저 정의 공유 네트워크 스택 및 용기 부피 장착 일시 볼륨 용기되도록 통신 사이 보다 효율적인 데이터 교환 우리는이 기능을 활용할 수 프로그래밍은 포드에서 동일한에 밀접하게 관련 서비스 프로세스의 그룹이 될 것입니다

4. 핵심 액세서리

그룹이 언급 K8S입니다에 의해 附件일반적으로 타사 액세서리가 제공하는 풍부한 기능의 구성 요소를 제공, K8S는 특정 기능을 제공하며, 일반적으로 포드 클러스터 K8S에서 실행

4.1. 일반적인 액세서리를 K8S

  • CoreDNS 클러스터 K8S의 DNS 서비스를 제공
  • Kubernetes Dashboard 웹 UI 인터페이스는 클러스터 K8S를 제공하기 위해
  • Heapster K8S 클러스터 모니터, 점차 프로 메테우스 (Prometheus)로 대체되었습니다
  • Ingress Controller K8S의 또 다른 구현의 K8S 네트워크는 뛰어난 서비스 네트워크 모델을 제공

5. 네트워크 K8S

K8S 네트워크는 네트워크 트래픽의 주요 유형 네 가지 종류가 있습니다

5.1 네트워크 통신 유형

용기 같은 포드 서로 연통

동일한 공간을 공유 네트워크간에 포드 용기는 인터페이스를 통해 통신하는 LO

포드와 포드 사이의 통신

K8S 네트워크 플러그인, 플러그인의 구현에 의해 구현 포드 네트워크는 CNI 협정, 주류 네트워크 플러그인 플란넬, 옥양목, [취소] 모든 포드 객체 주소를 적어도 하나 개의 특성을 구성, 즉 포드 IP, 포드 IP 실제에게 이러한 네트워크 플러그인을 따라 이 카드에 존재

서비스와 포드 사이의 통신

클러스터로 지정된 K8S 서비스, 10.96.0.0/12 기본 세그먼트는 일반적으로 사용되는 각 적어도 하나 개의 그룹 포드 봉사, 포드에 의해이 그룹 간의 네트워크 통신이
선택과 관련하여 서비스를 생성함으로써 포드 레이블 관계, 서비스 주소는 모든 네트워크 인터페이스에 존재하지 않는, 그것은 KUBE-프록시 만든 그물의 iptables 규칙 또는 IPVS의 수단이다

클러스터 외부 트래픽 및 서비스 간의 통신

사용자가 전달 그들의 특정한 포드의 상단의 iptables 규칙 또는 IPVS, 서비스에 의해 지정된 서비스에 전달이 독특한 액세스 인터페이스에 도달 액세스 할 때 K8S 외국인은 액세스 주소를 노출

추천

출처blog.51cto.com/hongchen99/2438924