RKE와 Rancher 설치

김재진·4일 전
0

RKE 란

rke는 도커 컨테이너에서 실행되는 CNCF 인증의 쿠버네티스 배포판이다. 베어 메탈과 가상화된 서버에서 작동한다.

RKE는 쿠버네티스 커뮤니티의 일반적인 문제인 설치 복잡성 문제를 해결하고 실행 중인 운영 체제와 플랫폼에서부터 자유로워진다.

지원되는 버전의 도커를 실행할 수 있는 한 RKE로 쿠버네티스를 배포하고 실행할 수 있다.

설치

설치 OS: RHEL/Oracle linux/CentOs
  • 사전 점검

    RHEL 8.4의 경우 networkManager의 기능을 꺼주어야한다.

    systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
    reboot

    추가로 RHEL 8.4는 RKE1의 파드가 rancher와 cluster agent가 연결되지 못하게하므로 도커 컨테이너가 외부망과 rancher와 연결되게하기 위해서 다음과 같이 방화벽 설정을 해주어야한다.

    firewall-cmd --zone=public -add-masquerade --permanent
    firewall-cmd-reload
  • 도커 패키지 확인 - 사전에 도커 패키지가 설치되어있는지 확인

    rpm -q docker-ce
  • 만약 Centos,RHEL에서 도커를 설치한다면 'dockerroot' 그룹이 추가된다. 다음 경로의 파일의 config를 수정해주자

    • /etc/docker/daemon.json
    {
      group:"dockerroot"
    }
  • 'dockerroot' 그룹에 ssh user를 추가해줍니다. 이 그룹에는 root user가 들어가면 안됩니다.

    usermod -aG dockerroot <ssh-user>

    그룹에 추가한 ssh user로 재접속하여 docker ps 명령어를 사용합니다.

    // 해당 화면이 출력되면 성공!
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Rancher

Rancher는 k8s cluster를 관리하는 오픈소스 툴로 GUI 환경에서 k8s cluster에 대한 오픈소스 배포 또는 RKE로 구성한 K8S Cluster의 버전 업그레이드를 기존 보다 더 간단하게 시행할 수 있도록 도와준다. 또한 Helm chart 또는 manifest 작성과 ingress, storageClass, pvc, pv 등 여러 K8S Cluster 리소스를 관리할 수 있도록 도와준다.

Rancher Install

helm install
vcurl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm repo 추가
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo list 확인
helm repo list
k8s secret 추가
kubectl create secret tls tls-ca --cert=./cert.pem --key=./key.pem -n cattle-system
config 다운로드
rancher install
helm install rancher ./rancher -f ./rancher/values.yaml -n cattle-system
Storageclass
  • sc.yaml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
kubectl apply -f sc.yaml
helm fetch jetstack/cert-manager --version v1.11.0

curl -L -o cert-manager-crd.yaml https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.crds.yaml

kubectl create namespace cert-manager

kubectl edit deployment cattle-cluster-agent -n cattle-system
---
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet

helm install rancher ./rancher-<VERSION>.tgz \
    --namespace cattle-system \
    --set hostname=<RANCHER.YOURDOMAIN.COM> \
    --set certmanager.version=<CERTMANAGER_VERSION> \
    --set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
    --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \
    --set bootstrapPassword=PassW0rd \
    --set useBundledSystemChart=true 
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.yaml


helm install rancher ./rancher-2.6.13.tgz \
    --namespace cattle-system \
    --set hostname=rancher.test \
    --set certmanager.version=1.11.0 \
    --set bootstrapPassword=test1 \
    --set useBundledSystemChart=true \
    --set replicas=1
profile
주니어 엔지니어입니다.

0개의 댓글