본문 바로가기

Kubernetes

Rancher를 이용하여 k8s 환경구성

반응형

구성
Master Node 1대
Worker Node 1대

 

구성 소프트웨어
RKE2, Rancher

 

1. Master Node 구성하기

스왑메모리 중지합니다.

swapoff -a

 

0으로 변경되었는지 확인합니다.

free -h

 

 

RKE2 설치

주의: Type이 Server 인지 확인합니다.

curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="server" sh -

 

 

RKE2 실행

start 명령어 시 시간 걸립니다.

systemctl enable rke2-server.service
systemctl start rke2-server.service
systemctl status rke2-server.service

 

 

kubectl 명령어가 실행될 수 있도록 기본 디렉토리로 연결한 뒤 환경변수를 등록해 줍니다.

mkdir ~/.kube/
cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
export PATH=$PATH:/var/lib/rancher/rke2/bin/
echo 'export PATH=/usr/local/bin:/var/lib/rancher/rke2/bin:$PATH' >> ~/.bashrc

 

정상적으로 실행되었는지 확인

kubectl get nodes

 

Worker Node에 등록할 토큰값 확인합니다.
결과값을 메모해 둡니다.

cat /var/lib/rancher/rke2/server/node-token

 

2. Worker Node

스왑메모리 중지합니다.

swapoff -a

 

0으로 변경되었는지 확인합니다.

free -h

 

 

RKE2 설치

주의: Type이 agent 인지 확인합니다.

curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -

 

 

RKE2-agent 자동 활성화 설정합니다.

systemctl enable rke2-agent.service

 

RKE2-agent 구성합니다.

config.yaml에 MasterNode마지막에 메모해둔 Token값을 넣습니다.

mkdir -p /etc/rancher/rke2/
vim /etc/rancher/rke2/config.yaml

 

# config.yaml

server: https://<IP>:9345  # Master Node의 IP
token: <token from server node>

 

이후 RKE2-Agent 실행합니다.

systemctl start rke2-agent.service
systemctl status rke2-agent.service

 

정상적으로 완료 되었다면 MasterNode에서 다시하면 확인해봅니다.

kubectl get nodes

 

3. Helm으로 Rancher 설치

먼저 cert-manger을 설치합니다.

kubectl create namespace cert-manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.crds.yaml
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace

 

 

Rancher 설치

kubectl create namespace cattle-system ## 쿠버네티스 Namespace 설정
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update

helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.sslip.io \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=majjangjjang@example.com \
  --set letsEncrypt.ingress.class=nginx

 

Host값을 변경하여 hostname값으로 접근하

kubectl get ingress -A

NAMESPACE       NAME      CLASS    HOSTS              ADDRESS                         PORTS     AGE
cattle-system   rancher   <none>   rancher.sslip.io   192.168.252.51,192.168.252.52   80, 443   11m

 

mkdir ~/.kube/ cp /etc/rancher/rke2/rke2.yaml ~/.kube/config 내보내기 PATH=$PATH:/var/lib/rancher/rke2/bin/ echo 'export PATH=/usr/local/ bin:/var/lib/rancher/rke2/bin:$PATH' >> ~/.bashrc
 
반응형