📌 1. K3s 설치 및 삭제: 시작과 끝
가장 기본적인 K3s 서버 설치와 삭제 명령어입니다.
✅ 기본 설치 (Traefik Ingress 포함)
# 스크립트를 다운로드하여 바로 실행합니다.
curl -sfL https://get.k3s.io | sh -
✅ 옵션과 함께 설치 (예: Traefik Ingress 비활성화)
다른 Ingress Controller(예: Nginx, Istio)를 사용하고 싶을 때 유용합니다.
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable traefik" sh -
✅ K3s 완전 삭제
모든 관련 컴포넌트와 데이터를 깨끗하게 삭제합니다.
/usr/local/bin/k3s-uninstall.sh
📌 2. 클러스터 상태 확인: 내장 kubectl 활용
K3s는 kubectl
을 내장하고 있어 k3s kubectl
형태로 바로 사용할 수 있습니다. sudo
가 필요할 수 있습니다.
ℹ️ k3s kubectl
은 일반 kubectl
과 사용법이 완전히 동일합니다.
✅ 클러스터 정보 확인
sudo k3s kubectl cluster-info
✅ 노드 목록 보기
sudo k3s kubectl get nodes -o wide
✅ 전체 파드/서비스 조회
# 모든 네임스페이스의 파드 조회
sudo k3s kubectl get pods -A
# kube-system 네임스페이스의 서비스 조회
sudo k3s kubectl get svc -n kube-system
📌 3. 서버 프로세스 관리: systemd
대부분의 리눅스 시스템에서 K3s는 systemd
서비스로 등록되어 실행됩니다.
✅ 서비스 상태 확인
sudo systemctl status k3s
✅ 서비스 재시작
설정 변경 후 적용할 때 사용합니다.
sudo systemctl restart k3s
✅ 실시간 로그 보기
클러스터의 문제를 디버깅할 때 가장 유용한 명령어입니다.
sudo journalctl -u k3s -f
📌 4. 원격/로컬 kubectl 연동: Kubeconfig 설정
매번 sudo k3s kubectl
을 입력하는 것이 번거롭다면, 로컬 환경의 kubectl
을 사용하도록 kubeconfig
파일을 설정할 수 있습니다.
✅ Kubeconfig 경로 환경변수 등록
# 현재 세션에서만 적용
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
# (팁) 터미널을 열 때마다 적용하려면 .bashrc 또는 .zshrc에 추가하세요.
echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> ~/.bashrc && source ~/.bashrc
이제 sudo k3s
접두사 없이 kubectl get nodes
명령을 바로 사용할 수 있습니다.
📌 5. 선언적 앱 배포: HelmChart 리소스 관리
K3s는 HelmChart
CR(Custom Resource)을 통해 Helm 차트를 자동으로 배포합니다.
✅ 설치된 HelmChart CR 목록 보기
sudo k3s kubectl get helmchart -A
✅ 특정 HelmChart 상세 정보 및 상태 확인
배포가 실패했을 때 원인을 파악하는 데 유용합니다.
sudo k3s kubectl describe helmchart my-nginx -n kube-system
📌 6. 자동 배포: Static Manifests 활용
K3s의 강력한 기능 중 하나로, 특정 디렉터리에 YAML 파일을 넣으면 자동으로 클러스터에 배포됩니다.
- 경로:
/var/lib/rancher/k3s/server/manifests/
# 이 경로에 YAML 파일을 생성하거나 복사하면...
sudo vi /var/lib/rancher/k3s/server/manifests/my-app.yaml
# K3s가 자동으로 감지하여 kubectl apply 해줍니다.
# HelmChart CR을 여기에 작성하면 Helm 차트가 자동 설치됩니다.
📌 7. 클러스터 확장: 워커 노드 추가하기
K3s 클러스터에 새로운 워커 노드를 조인시키는 과정입니다.
✅ 1. 마스터 노드에서 클러스터 토큰 확인
sudo cat /var/lib/rancher/k3s/server/node-token
✅ 2. 마스터 노드의 IP 주소 확인
hostname -I | awk '{print $1}'
✅ 3. 워커 노드에서 조인 명령어 실행
<MASTER_IP>
와<TOKEN>
을 위에서 확인한 값으로 교체하세요.
curl -sfL https://get.k3s.io | K3S_URL=https://<MASTER_IP>:6443 K3S_TOKEN=<TOKEN> sh -
📌 8. K3s 버전 확인
✅ 설치된 K3s 버전 확인
k3s --version
🚀 K3s 핵심 명령어 요약표 (Cheat Sheet)
기능 | 명령어 |
---|---|
설치 | curl -sfL https://get.k3s.io | sh - |
삭제 | /usr/local/bin/k3s-uninstall.sh |
클러스터 정보 | sudo k3s kubectl cluster-info |
노드 조회 | sudo k3s kubectl get nodes |
전체 파드 조회 | sudo k3s kubectl get pods -A |
서비스 재시작 | sudo systemctl restart k3s |
실시간 로그 | journalctl -u k3s -f |
클러스터 토큰 | sudo cat /var/lib/rancher/k3s/server/node-token |
HelmChart 조회 | sudo k3s kubectl get helmchart -A |