1장. 노드 개요
1.1. 노드에 대하여 링크 복사링크가 클립보드에 복사되었습니다!
노드는 Kubernetes 클러스터 내의 가상 머신 또는 베어 메탈 머신입니다. 작업자 노드는 포드로 그룹화된 애플리케이션 컨테이너를 호스팅합니다. 제어 평면 노드는 Kubernetes 클러스터를 제어하는 데 필요한 서비스를 실행합니다. OpenShift Container Platform에서 제어 평면 노드는 OpenShift Container Platform 클러스터를 관리하기 위한 Kubernetes 서비스 외에 더 많은 기능을 포함합니다.
호스팅된 애플리케이션이 원활하게 작동하려면 클러스터에 안정적이고 건강한 노드가 있어야 합니다. OpenShift Container Platform에서는 노드를 나타내는 Node
객체를 통해 노드에 액세스하고 관리하고 모니터링할 수 있습니다. OpenShift CLI( oc
) 또는 웹 콘솔을 사용하여 노드에서 다음 작업을 수행할 수 있습니다.
다음 노드 구성 요소는 Pod 실행을 유지하고 Kubernetes 런타임 환경을 제공하는 역할을 합니다.
- 컨테이너 런타임
- 컨테이너 런타임은 컨테이너를 실행하는 역할을 합니다. 쿠버네티스는 containerd, cri-o, rktlet, Docker 등 여러 가지 런타임을 제공합니다.
- kubelet
- Kubelet은 노드에서 실행되고 컨테이너 매니페스트를 읽습니다. 정의된 컨테이너가 시작되어 실행 중인지 확인합니다. kubelet 프로세스는 작업 상태와 노드 서버를 유지 관리합니다. Kubelet은 네트워크 규칙과 포트 포워딩을 관리합니다. kubelet은 Kubernetes에 의해서만 생성된 컨테이너를 관리합니다.
- Kube-proxy
- Kube-proxy는 클러스터의 모든 노드에서 실행되며 Kubernetes 리소스 간의 네트워크 트래픽을 유지합니다. Kube-proxy를 사용하면 네트워킹 환경이 분리되어 액세스할 수 있습니다.
- DNS
- 클러스터 DNS는 Kubernetes 서비스에 대한 DNS 레코드를 제공하는 DNS 서버입니다. Kubernetes가 시작한 컨테이너는 DNS 검색에 이 DNS 서버를 자동으로 포함합니다.
읽기 작업
읽기 작업을 통해 관리자나 개발자는 OpenShift Container Platform 클러스터의 노드에 대한 정보를 얻을 수 있습니다.
- 클러스터의 모든 노드를 나열합니다 .
- 메모리 및 CPU 사용량, 상태, 상황, 연령 등 노드에 대한 정보를 가져옵니다.
- 노드에서 실행 중인 Pod를 나열합니다 .
강화 작업
OpenShift Container Platform을 사용하면 노드에 액세스하고 관리하는 것 이상의 작업을 수행할 수 있습니다. 관리자는 노드에서 다음 작업을 수행하여 클러스터의 효율성을 높이고 애플리케이션 친화적으로 만들며 개발자에게 더 나은 환경을 제공할 수 있습니다.
- Node Tuning Operator를 사용하여 일정 수준의 커널 튜닝이 필요한 고성능 애플리케이션에 대한 노드 수준 튜닝을 관리합니다.
- kubelet과 Kubernetes API 서버 간 통신을 보호하기 위해 노드에서 TLS 보안 프로필을 활성화합니다.
- 데몬 세트를 사용하여 노드에서 백그라운드 작업을 자동으로 실행합니다 . 데몬 세트를 생성하여 사용하여 공유 스토리지를 생성하고, 모든 노드에서 로깅 포드를 실행하거나, 모든 노드에 모니터링 에이전트를 배포할 수 있습니다.
- 가비지 컬렉션을 사용하여 노드 리소스를 해제합니다 . 종료된 컨테이너와 실행 중인 포드에서 참조하지 않는 이미지를 제거하면 노드가 효율적으로 실행되는지 확인할 수 있습니다.
- 노드 집합에 커널 인수를 추가합니다 .
- 네트워크 에지에 작업자 노드(원격 작업자 노드)를 두도록 OpenShift Container Platform 클러스터를 구성합니다. OpenShift Container Platform 클러스터에서 원격 작업자 노드를 갖는 데 따르는 과제와 원격 작업자 노드에서 Pod를 관리하기 위한 몇 가지 권장 접근 방식에 대한 자세한 내용은 네트워크 에지에서 원격 작업자 노드 사용을 참조하세요.