Rancher Server UI 설치
도커가 작동중인 서버에서 최초 설치 가능합니다.
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ --privileged \ rancher/rancher:v2.9.0
항상 최신버전을 시도하는것보다 안정적인 버전을 지정하는것이 중요합니다.
기존 버전에서 다음단계로 올릴때는 마이그레이션 가이드를 준수해 올리는것을 권장합니다.
테스트 성공버전
- rancher/rancher:v2.6.4
- rancher/rancher:v2.9.0
설치가 성공하면 ip:port 로 웹페이지에 접근가능합니다.
로그인후 최초화면
rancher는 다양한 쿠버 클러스터를 조인할수 있으며 N개의 쿠버를 관리하는 오케스트레이션으로 하이브리드(클라우드,베어메탈) 를 지원하며 호환되기때문에
클라우드 종속적이지 않으면서도 필요하면 클라우드를 이용할수 있습니다. local 클러스터는 그러한 환경을 관리하는 쿠버 그자체이며 스탠드 얼론으로도 쿠버를 연습할수 있습니다. ( 단일장비일때)
쿠버 클러스터 추가
실제 클러스터로 작동되는 쿠버를 셋업하려면 Create를 통해 Kube를 추가해야합니다.
다음과 같은 다양한 쿠버를 지원합니다.
- RKE1 Mode : 도커자체로 구성되는 쿠버
- RKE2 / K3s : 도커엔진에 의존없이 구성되는 쿠버 , K3s는 특히 경량화된 쿠버입니다.
개인의 취향에 의해 선택한옵션
- RKE1 - Custom : 베어메탈에 운영할수 있으며 도커를 이용해 구성됩니다. 도커 구성을 택한 이유는 연습용이기때문에 관리가 더 쉬우며 셋업이 잘못되거나 재구성시 도커 인스턴스자체를 초기화하면 되지만
RKE2모드는 쿠버를 리눅스에서 설치하기때문에 쿠버를 클린인스톨하거나 조정하는 방식을 어느정도 알고 있어야합니다.
Cluster 추가
Rancher설치가 끝나면, 도커를 집단으로 운영할 Cluster 추가를 통해 시작할수 있습니다.
논리적인 컨셉으로 아직 서버가 구성되지 않은 상태로 시작할수 있습니다.
테스트에 사용된 옵션
Endpoint인증부분만 비활성화하고 나머지는 기본값을 활용 하였습니다.
- Cluster Name : late-cluster
Cluster 구성 - Node추가
- 클러스터가 최초 구성되어 POD가 구동될 Worker Node가 추가로 필요하면 Worker를 선택후 복붙 실행만 하면됩니다.
클러스터 관리의 Registaration에 의해 노드구성을 할수 있습니다.다음을 참고하여 클러스터내 노드 구성 계획을 어느정도 구상한후 시작하는것이 좋습니다.
NodeRole 계획
Role은 크게 3가지로 구분됩니다. Control/Etcd가 추가적인 리소스를 사용하기 때문에 가지고 있는 VM및 장비에 따라 역할을 구분하여 운영할수 있습니다.
스펙이 좋은 장비에 모든 롤을 부여해서 분산처리할수도 있지만, 효율적인 POD(컨테이너) 운영을 위해서는 분리 운영하는것이 권장됩니다.
- Control : 쿠버를 컨트롤할수 있는 컨트롤및 쿠버 클러스터의 실질적인 Master 역활을 수행합니다. 이중화 구성도 할수 있으며 여기서는 단일 Con
- Etcd : Nginx및 Ingress등 게이트웨이 역할을 할수 있는 툴들이 설치가 됩니다.
- Worker : Pod가 여기서 구동됩니다.
Control Plane,ETCD
Control/ETCD 롤인경우 쿠버 클러스터를 운영하기위해 여러 코어 툴들이 Agent에 의해 자동설치되며 4GB이상 권장됩니다. WORKED가 빠질시 2GB로 운영가능합니다.
Control/ETCD등 2중화 운영시 하나씩 더 구성가능하며 이 샘플에서는 완전한 기능을 하는 최초 Master노드가 필요하기때문에 최초 노드는 All( control/etc/worked)로 셋업이 되었습니다.
Worked
POD 구동이 되는 인스턴스로, 쿠버에서 Pod운영을 위한 필요한 요소가 자동설치 됩니다. 최소 2GB 로 운용가능합니다.
이 샘플의 클러스터 계획
이 샘플의 클러스터 계획을 도식화 해보았습니다.
이 샘플의 클러스터 구성계획표이며 다음과 같은 컨셉을 가지고 있습니다.
- Rancher Server(MainPC) 와 쿠버클러스터 Master Node(VM) 분리 되었습니다.
- 쿠버의 코어기능을 하는 Master Node 와 Work Node(Slave 실제 PC)를 분리 하였습니다.
OS의 옵션을 선택하고 빠르게 사용할수 있는것을 프로비저닝 이라고 합니다. 클라우드 AWS에서는 EC2가 해당합니다.
홈PC에서는 VM을 선택하고 구동하기위한 프로비저닝 툴로 Vagrant 가 이용되었습니다. 참고 : VM 생성 - Vargrant
모든 역활을 하는 최초 Master Node를 하나 추가합니다.
- Show Advanced를 눌러 자신의 네트워크 구성에 맞는 클러스터내에서 인식되는 IP를 입력합니다. ( 프라이빗 가상 네트워크를 구성하였다면 기본값 사용, 홈환경이면 공유기가 할당한 IP(Public) 를 일반적으로 입력할수 있습니다. )
자신이 생성한 클러스터가 최초 Active를 확인하면 이후 Work노드를 추가할수 있습니다. ( 참고 : 한꺼번에 추가 가능할수도 있지만~ 최초 클러스터 Active를 확인한후 이후 노드를 구성합니다. )
local 클러스터의 경우 rancher가 설치되면 표시되는 rancher자체의 운영 클러스터로 이 클러스터는 건들지 않습니다.
Worker 추가구성
스케일 아웃을 위해 서버를 미리 구성하는 전략으로 클러스터가 완성되고 난 이후 , Worker노드를 늘려갈수 있습니다. 도커가 구성되는 가상의 컴퓨팅에서 단지 Agent를 설치하면
쿠버네티스에서 필요한 요소들을 도커 Base 로 자동 설치를 해줍니다.
쿠버 대시보드
베어메탈(vm4구성) 쿠버를 이용할수있는 환경을 도커 Agent를 실행하는것으로 준비가 되었습니다. 설치과정에서 실수를 하더라도~ OS를 다시 설치하거나 구성하는것이 아닌 단지 실행중인 도커를 VM환경내에서 리셋하면 되기 때문에
쿠버를 클러스터로 이용하기위한 준비과정의 시간을 단축할수 있습니다.
Next
- 랜처 2.6 쿠버환경에서 POD 실행및 Ingress 연결하기