PaaS/Kubernetes

(Kubernetes) Rancher로 Kubernetes 노드 올리기

armyost 2021. 8. 30. 15:49
728x90

출처 : https://ksr930.tistory.com/133 [개발과 일상]

 

랜처는 컨테이너와 쿠버네티스 클러스터를 관리, 배포하기에 최적화된 도구입니다. 최초버전에는 쿠버네티스 뿐만 아니라 다른 컨테이너 오케스트레이션들도 지원을 했지만 현재는 쿠버네티스만을 지원하고 있습니다.

노드를 직접 계산하여 쿠버네티스를 설치하거나 기존에 설치되있는 쿠버네티스 클러스터를불러올수도 있습니다. 모든 클러스터에 대해 인증및 역할기반 액세스 제어(RBAC)를 중앙 집중화하여 글로벌 관리자가 한곳에서 클러스터 접근을 제어 할수있습니다.

그런 다음 클러스터 및 해당 리소스에 대한 세부 모니터링 및 알림을 실행하고 로그를 외부 공급자로 전송하며 애플리케이션 카탈로그를 통해 Helm과 직접 통합됩니다. 외부 CI/CD 시스템을 사용하는 경우 랜처에 연결할 수 있지만, 그렇지 않은 경우 랜처에는 워크로드를 자동으로 구현 및 업그레이드하는 데 도움이 되는 파이프라인 엔진도 포함되어 있습니다.

아래의 가이드는 우선 'Rancher 서버'를 k3s인 RKE로 올리고

실질적으로 Controlplane이나 Worker는 k8s로 올린다. (Origina K8s deploy 구성과 똑같은 것으로 추정)

 

 

설치 전 최소 요구사항을 확인 바란다.

https://rancher.com/support-maintenance-terms/all-supported-versions/rancher-v2.5.9/

 

 

 

 

 

Rancher 서버 - 런타임 설치 (CentOS 기준)

# yum install -y yum-utils

 

# yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# yum list docker-ce --showduplicates | sort -r

 

// 호환이 되는 Docker 버전을 꼭 설치하기 바란다. 그렇지 않으면 원인을 알수없는 버그가 많음.
# yum install docker-ce-20.10.8-3.el7 docker-ce-cli-20.10.8-3.el7 containerd.io

 

// 관련 방화벽 열기

# firewall-cmd --permanent --zone=public --add-port=80/tcp
# firewall-cmd --permanent --zone=public --add-port=443/tcp
# firewall-cmd --permanent --zone=public --add-port=6443/tcp
# firewall-cmd --permanent --zone=public --add-port=8472/tcp
# firewall-cmd --permanent --zone=public --add-port=10250/tcp
# firewall-cmd --reload

 

# systemctl start docker
# systemctl enable docker

Rancher 도커 올리기

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher

 

 

Rancher 대시보드 접속

1. https://[서버IP]:443으로 브라우저에서 접속한다. 사설인증서로 인한 경고는 무시한다.
   초기접속정보는 admin / admin 일 것이다.

 

 

2. 앞으로 사용할 비밀번호로 변경한다. 

 

3. Rancher 서버 URL을 입력하는데 중요한것은 클러스터 내의 노드에서 통신이가능한 주소 혹은 도메인을 입력해야한다는 것이다.

 

4. add Cluster 버튼을 클릭하여 새로운 클러스터를 만들거나 기존 클러스터를 연결한다. 

 

 

 

5. 저의 경우 노드를 직접만들어 추가할 것이므로 Existing nodes를 클릭한다. 

 

6. 클러스터 이름 및 기타 설정을 입력한다. 

 

7. Get Registration Command를 클릭한다. 

8. 노드의 역할에 따라 맞게 CLI가 제공된다. 

 

※ 클러스터 내 Node 등록 시 역할에 따라 플래그가 다르다. 


$ sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.9 --server https://192.168.115.227 --etcd --controlplane

 

$ sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.9 --server https://192.168.115.227 --token ~~~~~~ --worker     

 

Kubernetes 실제 노드 추가하기

사실 이 과정도 Docker 런타임을 올리는 것으로 Rancher 서버 올리는 과정과 동일하다. 

 

 

노드 서버 - 런타임 설치

# yum install -y yum-utils

 

# yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# yum list docker-ce --showduplicates | sort -r

 

// 호환이 되는 Docker 버전을 꼭 설치하기 바란다. 그렇지 않으면 원인을 알수없는 버그가 많음.
# yum install docker-ce-20.10.8-3.el7 docker-ce-cli-20.10.8-3.el7 containerd.io

 

// 관련 방화벽 열기

# firewall-cmd --permanent --zone=public --add-port=80/tcp
# firewall-cmd --permanent --zone=public --add-port=443/tcp
# firewall-cmd --permanent --zone=public --add-port=6443/tcp
# firewall-cmd --permanent --zone=public --add-port=8472/tcp
# firewall-cmd --permanent --zone=public --add-port=10250/tcp
# firewall-cmd --reload

 

# systemctl start docker
# systemctl enable docker

Rancher 서버에 조인

Rancher 대시보드에서 제공한 CLI를 각 역할에 맞추어 입력한다.