5.3. 노드 호스트 작업
5.3.1. 노드 호스트 사용 중단 링크 복사링크가 클립보드에 복사되었습니다!
인프라 노드의 사용 중단이든 애플리케이션 노드의 사용 중단이든 프로시저는 동일합니다.
전제 조건
제거할 노드 세트에서 기존 포드를 마이그레이션하기에 용량이 충분한지 확인하십시오. 인프라 노드를 제거한 후 두 개 이상의 노드가 온라인 상태를 유지하는 경우에만 인프라 노드를 제거하는 것이 좋습니다.
프로시저
사용 중단할 노드를 찾으려면 사용 가능한 모든 노드를 나열하십시오.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어, 이 주제에서는
ocp-infra-node-b7pl
인프라 노드를 사용 중단합니다.노드와 현재 실행 중인 서비스를 설명하십시오.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 출력에서는 노드에서
router-1-vzlzq
및docker-registry-1-5szjs
의 두 포드가 실행 중임을 보여줍니다. 이 두 포드를 마이그레이션하기 위해 두 개의 추가 인프라 노드를 사용할 수 있습니다.참고위에서 설명한 클러스터는 고가용성 클러스터이므로 모든 인프라 노드에서
router
및docker-registry
서비스 둘 다 실행되고 있습니다.노드를 스케줄링할 수 없는 것으로 표시하고 모든 포드를 비우십시오.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 포드에 로컬 스토리지(예:
EmptyDir
)가 연결된 경우--delete-local-data
옵션을 사용해야 합니다. 일반적으로 프로덕션 환경에서 실행 중인 포드에서는 임시 또는 캐시 파일용으로만 로컬 스토리지를 사용하고, 중요한 파일이나 영구 파일에는 사용하지 말아야 합니다. 일반 스토리지의 경우 애플리케이션에서 오브젝트 스토리지 또는 영구 볼륨을 사용해야 합니다. 이 경우 컨테이너 이미지를 오브젝트 스토리지에 저장하므로docker-registry
포드의 로컬 스토리지는 비어 있습니다.참고위 작업을 수행하면 노드에서 실행 중인 기존 포드가 삭제됩니다. 그런 다음 복제 컨트롤러에 따라 새 포드가 생성됩니다.
일반적으로 모든 애플리케이션은 복제 컨트롤러를 사용하여 포드를 생성하는 배포 구성을 통해 배포해야 합니다.
oc adm drain
을 수행해도 베어 포드(미러 포드도 아니고ReplicationController
,ReplicaSet
,DaemonSet
,StatefulSet
또는 작업에서 관리하지도 않는 포드)는 삭제되지 않습니다. 삭제하려면--force
옵션이 필요합니다. 베어 포드는 다른 노드에서 재생성되지 않으며 이 작업 중에 데이터가 손실될 수 있습니다.아래 예에서는 레지스트리의 복제 컨트롤러 출력을 보여줍니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 하단의 이벤트에는 새 포드 생성에 대한 정보가 표시됩니다. 따라서 모든 포드를 나열할 때 다음을 수행하십시오.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
현재 사용 중단된 노드에서 실행 중인
docker-registry-1-5szjs
및router-1-vzlzq
포드는 더 이상 사용할 수 없습니다. 대신docker-registry-1-dprp5
및router-1-2gshr
의 두 가지 새 포드가 생성되었습니다. 위에 표시된 대로 새 라우터 포드는router-1-2gshr
이지만보류 중
상태에 있습니다. 모든 노드가 하나의 단일 라우터에서만 실행될 수 있고 호스트의 포트 80 및 443에 바인딩되어 있기 때문입니다. 새로 생성된 레지스트리 포드를 살펴보면 아래 예에서는 사용 중단된 노드가 아닌
ocp-infra-node-rghb
노드에서 포드가 생성되었습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인프라 노드의 사용 중단과 애플리케이션 노드의 사용 중단에서 유일한 차이점은 노드를 교체할 계획이 없는 경우 인프라 노드를 비우고 인프라 노드에서 실행 중인 서비스를 축소할 수 있다는 것입니다.
oc scale dc/router --replicas 2 oc scale dc/docker-registry --replicas 2
$ oc scale dc/router --replicas 2 deploymentconfig "router" scaled $ oc scale dc/docker-registry --replicas 2 deploymentconfig "docker-registry" scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 모든 인프라 노드에서는 각 포드를 한 종류씩만 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고완전한 고가용성 클러스터를 제공하려면 항상 3개 이상의 인프라 노드를 사용할 수 있어야 합니다.
노드의 스케줄링이 비활성화되었는지 확인하려면 다음을 수행하십시오.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 노드에 포드가 포함되어 있지 않은지 확인하십시오.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/haproxy/haproxy.cfg
구성 파일의backend
섹션에서 인프라 인스턴스를 제거하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그런 다음
haproxy
서비스를 다시 시작하십시오.sudo systemctl restart haproxy
$ sudo systemctl restart haproxy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 모든 포드를 비운 후 클러스터에서 노드를 제거하십시오.
oc delete node ocp-infra-node-b7pl
$ oc delete node ocp-infra-node-b7pl node "ocp-infra-node-b7pl" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
포드 또는 노드 비우기 및 유출에 대한 자세한 내용은 노드 유지보수 섹션을 참조하십시오.
5.3.1.1. 노드 호스트 교체 링크 복사링크가 클립보드에 복사되었습니다!
사용 중단된 노드 대신 노드를 추가해야 하는 경우 기존 클러스터에 호스트 추가를 따르십시오.