쿠버네티스 k3s 구축해보기

john·2022년 2월 24일
1

목표

쿠버네티스 클러스터 환경을 구축하여 배포 자동화

왜 K3S를 사용하는가?

  • 매니지드 서비스를 사용하지 않는 한 설치부터 초기 설정의 까다로움으로 인해서
  • Kubernetes 생태계의 변화를 따라잡지 못해서
  • 경량화
    • 외부 클라우드 서비스와의 연동 기능을 최소한도로 줄임
  • 설치가 쉬움

클러스터 생성하기

k3s

  • 설치
# 기본 설치
curl -sfL https://get.k3s.io | sh -

# 권한 설치
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
  • 제거
/usr/local/bin/k3s-uninstall.sh
  • 설치된 상태 확인
sudo systemctl status k3s
  • 클러스터 상태 확인
# kubectl을 사용하여 확인
# kubectl은 k3s 설치 시 사용 가능

# node 상태 확인
sudo kubectl get node

# pod, svc 상태 확인
sudo kubectl get all
  • 로컬환경에서 쿠버네티스 원격 접속
# 클러스터의 인증서 및 사용자 비밀번호 등 인증하는데 필요한 정보
cat /etc/rancher/k3s/k3s.yaml

# 해당 내용을 복사하여 로컬 ~/.kube/<클러스터 이름>로 붙여넣기
# 단, name 및 ip 주소를 해당 서버의 고정 ip로 변경할 것!

# 환경변수 설정
export KUBECONFIG=$HOME/.kube/config-k3s:$HOME/.kube/config:$KUBECONFIG

# 변경한 config 적용
kubectl config use-context <name>

도커 로그인

docker login <registry>

# 권한 토큰 정보 확인
cat ~/.docker/config.json

기존의 도커 자격 증명을 기반으로 시크릿 생성하기

kubectl create secret generic regcred \
    --from-file=.dockerconfigjson=/home/ubuntu/.docker/config.json \
    --type=kubernetes.io/dockerconfigjson

시크릿을 사용하는 파드 생성하기

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: regcred

쿠버네티스 테스트

  • 워커노드 리소스
    • 파드 리소스
      • CPU
      • Memory
  • Prometheus
  • 그라파나(Grafana)
profile
developer

0개의 댓글