0. Rancher
1. Rancher 개요
Rancher는 프로덕션 환경에서 컨테이너를 배포하는 조직을 위해 구축된 컨테이너 관리 플랫폼으로 쿠버네티스를 실행하거나 생성된 기존 쿠버네티스 클러스터를 연동하여 관리합니다.
Rancher 특징
클러스터 환경에 상관없는 동작
쿠버네티스는 컨테이너 오케스트레이션 표준이 되었으며, 대부분의 클라우드 및 가상화 공급업체는 쿠버네티스를 표준 인프라로 제공합니다.
Rancher 사용자는 GKE, AKS 및 EKS와 같은 퍼블릭 클라우드 쿠버네티스 서비스로 클러스터를 생성 할 수 있으며, 프라이빗 환경에서 배포/설치된 쿠버네티스 클러스터를 가져오고 관리합니다.
쿠버네티스 클러스터에 대한 중앙 집중식 인증, 액세스 제어 및 모니터링 지원
Active Directory 자격 증명을 사용하여 GKE와 같은 클라우드 공급업체에서 호스팅하는 쿠버네티스 클러스터에 접근합니다.
모든 사용자, 그룹, 프로젝트, 클러스터 및 클라우드에서 엑세스 제어 및 보안 정책을 설정하고 적용합니다.
단일 창에서 쿠버네티스 클러스터의 상태와 용량을 확인 할 수 있습니다.
DevOps 애플리케이션 워크로드 관리
Rancher 카탈로그에는 보안, 모니터링, 컨테이너 레지스트리, 스토리지 및 네트워크 드라이버를 포함 한 DevOps 도구 세트를 지원합니다.
퍼블릭 클라우드, 프라이빗 클라우드에 애플리케이션을 배포 할 수 있으며, IT 관리자는 모든 사용자, 클러스터 및 클라우드에서 가시성을 확보하고 정책을 시행합니다.
Rancher API 서버
권한 부여 및 정책 기반 접근제어(RBAC)
사용자 권리 : Rancher API 서버는 로컬 사용자 외에 Active Directory 또는 GitHub와 같은 외부 인증 공급자에 해당하는 사용자 ID를 관리합니다.
인증 : Rancher API 서버는 액세스 제어 및 보안 정책을 관리합니다.
쿠버네티스 제어
Rancher API 서버는 기존 노드에서 쿠버네티스를 프로비저닝하거나 업그레이드를 수행할 수 있습니다.
응용 프로그램을 반복적으로 배포하기 쉽게 해주는 Helm 차트 카탈로그를 사용할 수 있는 기능을 제공합니다.
Rancher의 개념으로 여러 네임스페이스를 그룹으로 관리하고 그 안에서 쿠버네티스 작업을 수행할 수 있습니다.
Rancher 내에서 [Fleet Continuous Delivery]를 활용하여 수동 작업 없이 Git 레포지토리에서 대상 다운스트림 쿠버네티스 클러스터로 애플리케이션 배포 작업을 수행할 수 있습니다.
클러스터 상태확인
쿠버네티스 클러스터 외부에 있는 로깅 서비스 및 도구와 통합할 수 있습니다.
오픈소스 모니터링 솔루션인 프로메테우스와의 통합을 통해 클러스터 노드, 쿠버네티스 구성 요소 및 소프트웨어 배포의 상태와 프로세스를 모니터링 할 수 있습니다.
Alerting을 통해 클러스터와 프로젝트에서 계획된 이벤트, 계획되지 않은 이벤트에 대한 정보를 유지하여 클러스터를 정상 상태로 유지합니다.
DevOps 팀 별 담당 클러스터 관리
Rancher는 여러 클러스터를 등록하여 할 수 있으며, 정책 기반 접근제어(RBAC)을 이용해 사용자 및 그룹 별 관리 클러스터를 지정하여 관리할 수 있도록 인터페이스를 제공합니다.
위 그림은 DevOps 조직에서 Rancher를 수행하는 역할을 보여줍니다.
각 팀은 자신이 선택한 퍼블릭 클라우드 또는 프라이빗 클라우드에 애플리케이션을 배포합니다.
IT 관리자는 모든 사용자, 클러스터 및 클라우드를 지정/할당하고 정책을 시행합니다.
2. Rancher 사용
클러스터 등록
(1) Rancher GUI 페이지 접속 (ex. https://rancher.test.playce.cloud:8443)
KeyCloak 등 연동되어 있는 경우 OIDC PROVIDER를 통해 로그인 하며, LOCAL USER를 통해서 로그인 할 수 있습니다.
(2) Local admin 계정으로 로그인합니다.
(3) 메인 페이지 또는 [GLOBAL APPS] - [Cluster Management]에서 [Import Exsting] 버튼을 선택합니다.
(4) 프라이빗 환경의 클러스터를 추가하기 위해 [Generic]을 선택합니다.
(5) Rancher에서 보여질 클러스터 이름을 입력합니다.
Member Roles의 Add 버튼을 선택하여 cluster01-admin 계정을 추가합니다.
(6) 아래 명령어를 연동할 클러스터의 컨트롤 플레인(마스터 서버)에서 수행합니다.
마지막 명령어는 클러스터 계정 이름을 입력합니다. (~/.kube/config 파일 참고)
(7) 위 명령어를 수행하면 agent가 설치되며, 5분 이내의 시간이 소요됩니다.
(8) agent가 기동되면 Rancher 메인 화면에서 추가된 클러스터를 확인 할 수 있습니다.
클러스터 리소스 확인 및 컨트롤
(1) [EXPLORE CLUSTER] 항목에서 추가 된 클러스터를 선택합니다.
(2) Cluster 페이지는 클러스터 전반적인 정보를 표시합니다.
리소스, 노드, 디플로이먼트 및 용량에 대한 정보를 표시합니다.
하위 페이지에서는 네임스페이스 및 프로젝트 별 정보 및 노드, 클러스터 멤버 정보를 확인합니다.
(3) Workloads 항목에서는 클러스터에 배포된 디플로이먼트, 파드 등 정보를 확인/생성 할 수 있습니다.
각 워크로드 별로 자세한 정보를 확인 할 수 있으며, YAML 파일 형태로 확인 및 수 가능합니다.
(4) APPs 항목에서는 추가된 Repository 정보와 사용 할 수 있는 Helm Chart에 대한 정보를 표시합니다.
기본적으로 playcekube 패키지를 확인 할 수 있으며 필요 시 Chart를 클릭하여 Install 버튼으로 설치 할 수 있습니다.
Installed Apps에서 현재 클러스터에 배포된 Chart 리스트를 확인합니다.
(5) [Service Discovery] 탭에서는 HPA, Ingress, Network Policy, Service를 확인/생성 할 수 있습니다.
리소스를 클릭하면 자세한 정보를 확인 할 수 있으며, YAML 형태로도 확인 할 수 있습니다.
(6) [Storage] 탭에서는 데이터 저장에 대한 리소스와 Secret을 확인/생성 할 수 있습니다.
(7) [Monitoring] 탭에서는 알람 및 프로메테우스 룰을 확인/생성 할 수 있습니다.
(8) [More Resources] 탭에서 위 항목에 포함되지 않은 리소스를 확인 할 수 있습니다.
리소스 컨트롤
(1) 클러스터에 배포되어 있는 리소스 (ex. nginx-deployment)를 선택합니다.
(2) 해당 디플로이먼트의 replicas가 3으로 되어있기 때문에 3개의 파드를 확인 할 수 있습니다.
(3) YAML - Edit YAML으로 리소스 수정이 가능합니다. 예제에서는 replicas를 2로 수정합니다.
(4) deploymemt 리스트 차창에서 Ready 값이 2/2로 변경 된 것을 확인합니다.
3. Rancher 기술자료
https://ranchermanager.docs.rancher.com/
4. Rancher 릴리즈 노트
https://github.com/rancher/rancher/releases