OpenShift-아키텍처

OpenShift는 Kubernetes 및 Docker 클러스터를 사용하여 각 계층이 다른 계층과 긴밀하게 연결되는 계층화 된 시스템입니다. OpenShift의 아키텍처는 Kubernetes를 사용하여 모든 계층에서 호스팅되는 Docker 컨테이너를 지원하고 관리 할 수 ​​있도록 설계되었습니다. 이전 버전의 OpenShift V2와 달리 새 버전의 OpenShift V3는 컨테이너화 된 인프라를 지원합니다. 이 모델에서 Docker는 경량 Linux 기반 컨테이너 생성을 지원하고 Kubernetes는 여러 호스트에서 컨테이너를 오케스트레이션 및 관리하는 작업을 지원합니다.

OpenShift의 구성 요소

OpenShift 아키텍처의 핵심 구성 요소 중 하나는 Kubernetes에서 컨테이너화 된 인프라를 관리하는 것입니다. Kubernetes는 인프라 배포 및 관리를 담당합니다. 모든 Kubernetes 클러스터에서 하나 이상의 마스터와 여러 노드를 가질 수 있으므로 설정에 실패 지점이 없습니다.

Kubernetes 마스터 머신 구성 요소

Etcd− 클러스터의 각 노드에서 사용할 수있는 구성 정보를 저장합니다. 여러 노드에 분산 될 수있는 고 가용성 키 값 저장소입니다. 민감한 정보가있을 수 있으므로 Kubernetes API 서버에서만 액세스 할 수 있어야합니다. 모두가 접근 할 수있는 분산 키 값 저장소입니다.

API Server− Kubernetes는 API를 사용하여 클러스터에서 모든 작업을 제공하는 API 서버입니다. API 서버는 다른 도구와 라이브러리가 쉽게 통신 할 수있는 인터페이스를 구현합니다. kubeconfig는 통신에 사용할 수있는 서버 측 도구와 함께 패키지입니다. Kubernetes API를 노출합니다.”

Controller Manager−이 구성 요소는 클러스터 상태를 조절하고 작업을 수행하는 대부분의 수집기를 담당합니다. 비 종료 루프에서 실행되는 데몬으로 간주 할 수 있으며 정보를 수집하여 API 서버로 보내는 역할을합니다. 클러스터의 공유 상태를 가져오고 서버의 현재 상태를 원하는 상태로 가져 오도록 변경합니다. 키 컨트롤러는 복제 컨트롤러, 끝점 컨트롤러, 네임 스페이스 컨트롤러 및 서비스 계정 컨트롤러입니다. 컨트롤러 관리자는 노드, 엔드 포인트 등을 처리하기 위해 다른 종류의 컨트롤러를 실행합니다.

Scheduler− Kubernetes 마스터의 핵심 구성 요소입니다. 워크로드 분배를 담당하는 마스터의 서비스입니다. 클러스터 노드에서 작업 부하의 활용도를 추적 한 다음 리소스를 사용할 수있는 작업 부하를 배치하고 작업 부하를 수락합니다. 즉, 사용 가능한 노드에 포드를 할당하는 메커니즘입니다. 스케줄러는 워크로드 사용률과 새 노드에 포드 할당을 담당합니다.

Kubernetes 노드 구성 요소

다음은 Kubernetes 마스터와 통신하는 데 필요한 노드 서버의 주요 구성 요소입니다.

Docker − 각 노드의 첫 번째 요구 사항은 비교적 격리되어 있지만 가벼운 운영 환경에서 캡슐화 된 애플리케이션 컨테이너를 실행하는 데 도움이되는 Docker입니다.

Kubelet Service− 이것은 각 노드의 작은 서비스로, 제어 플레인 서비스와 정보를 중계하는 역할을합니다. etcd 저장소와 상호 작용하여 구성 세부 정보 및 Wright 값을 읽습니다. 이것은 명령과 작업을 수신하기 위해 마스터 구성 요소와 통신합니다. 그런 다음 kubelet 프로세스는 작업 상태 및 노드 서버를 유지하는 책임을 맡습니다. 네트워크 규칙, 포트 포워딩 등을 관리합니다.

Kubernetes Proxy Service− 이것은 각 노드에서 실행되는 프록시 서비스이며 외부 호스트에서 서비스를 사용할 수 있도록 도와줍니다. 컨테이너 수정 요청을 전달하는 데 도움이됩니다. Kubernetes Proxy Service는 기본 부하 분산을 수행 할 수 있습니다. 네트워킹 환경이 예측 가능하고 액세스 가능하지만 동시에 격리되어 있는지 확인합니다. 노드, 볼륨, 비밀, 새 컨테이너 상태 점검 생성 등의 포드를 관리합니다.

통합 OpenShift Container Registry

OpenShift 컨테이너 레지스트리는 Docker 이미지를 저장하는 데 사용되는 Red Hat의 내장 스토리지 단위입니다. OpenShift의 최신 통합 버전을 사용하면 OpenShift 내부 저장소에서 이미지를 볼 수있는 사용자 인터페이스가 제공됩니다. 이러한 레지스트리는 나중에 컨테이너를 구축하는 데 사용되는 지정된 태그가있는 이미지를 보유 할 수 있습니다.

자주 사용되는 용어

Image− Kubernetes (Docker) 이미지는 컨테이너화 된 인프라의 핵심 구성 요소입니다. 현재 Kubernetes는 Docker 이미지 만 지원합니다. 포드의 각 컨테이너에는 내부에서 실행되는 Docker 이미지가 있습니다. 포드를 구성 할 때 구성 파일의 이미지 속성은 Docker 명령과 동일한 구문을 갖습니다.

Project − 이전 버전의 OpenShift V2에 있던 도메인의 이름이 변경된 버전으로 정의 할 수 있습니다.

Container − 쿠 버네 티스 클러스터 노드에 이미지가 배포 된 후 생성되는 것입니다.

Node− 노드는 마스터 용 미니언이라고도하는 Kubernetes 클러스터에서 작동하는 머신입니다. 물리적, VM 또는 클라우드 인스턴스가 될 수있는 작업 단위입니다.

Pod− 포드는 Kubernetes 클러스터의 노드 내부에있는 컨테이너 및 스토리지의 모음입니다. 내부에 여러 컨테이너가있는 포드를 만들 수 있습니다. 예를 들어 데이터베이스 컨테이너와 웹 서버 컨테이너를 포드 내부에 유지합니다.