k3s의 탄생과정
: 쿠버네티스는 도입하고 어느정도 정착을 시킨 후에는 강력한 리소스 추상화와 다양한 관리 및 모니터링 기능의 덕을 톡톡히 볼 수 있음
: GKE와 같은 매니지드 서비스를 사용하지 않는한 초기 설정의 까다로움이 존재
: 첫 웹 서버 트래픽을 처리할 때 까지의 이해의 복잡함도 존재
: 이러한 어려움을 해결하기 위해 kubespray, kubeadm과 같은 도구를 사용
> 그러나 이러한 도구들이 쿠버네티스 생태계의 변화를 따라잡지 못할 경우 오류를 맞닥뜨리게 됨
※ GKE (Google Kubernetes Engine)
: 쿠버네티스를 자동으로 배포, 확장, 관리 할 수 있는 간편한 플랫폼
: 클러스터의 복잡성을 자동으로 관리
: 클릭 한 번으로 작동하는 클러스터 및 15000개 까지의 노드확장 가능
=> 쿠버네티스 관리툴
- 공식문서
: https://cloud.google.com/kubernetes-engine
k3s
: 컨테이너 관련 기술을 주로 개발하는 Rancher Labs에서 만든 쿠버네티스의 다른 버전
- 경량화
: 외부 클라우드 서비스와의 연동 기능을 최소로 줄임
: 고가용성 배포를 위해 기본으로 사용하던 etcd 의존성을 없에고 sqlite를 기본값으로 사용
: Docker와 같은 의존성을 모두 삭제하고 containerd와 같은 가벼운 대체제를 사용
: 기존 쿠버네티스에서 지원하는 과거버전의 API도 과감하게 지원하지 않음
- 간단한 설치
: 쉘 스크립틑 하나로 대부분의 배포판에서 설치 가능
: 설치후 자동으로 systemd 서비스를 만들기 때문에 사용자가 신경쓸 요소가 거의 없음
환경 구성
- 포트 설정
: 쿠버네티스 API 서버 접근을 위해 6443 포트 개방
- 설치
# apt 업데이트 및 업그레이드
apt update
apt upgrate
# k3s 다운로드 및 설치
curl -sfL https://get.k3s.io | sh -
# 자동 실행된 k3s 서비스 데몬 상태 확인
sudo systemctl status k3s
- 설치 확인
# Node 상태 확인
sudo kubectl get node
# Kubernetes 시스템 Pod 상태 확인
sudo kubectl get pod --namespace=kube-system
원격지에서 쿠버네티스 클러스터 접속
- /etc/rancher/k3s/k3s.yml
: 클러스터의 인증서와 사용자의 비밀번호 등 인증하는데 필요한 정보 파일
: 이 파일을 클립보드 복사 혹은 scp를 통해 로컬 컴퓨터로 복사
- k3s 설정파일 변경
:%s/127.0.0.1/your-k3s-instance-ip/g
:%s/default/your-k3s-name/g
- kubeconfig 환경변수 변경
export KUBECONFIG=$HOME/.kube/config-k3stest:$HOME/.kube/config:$KUBECONFIG
- context 변경
kubectl config use-context your-k3s-name
: 공인 IP를 알 수 없기 때문에 오류 발생
- /etc/systemd/system/k3s.service
# 원본
ExecStart=/usr/local/bin/k3s \
server \
# 아래와 같이 변경
ExecStart=/usr/local/bin/k3s \
server --tls-san YOUR-K3S-IP-ADDRESS-OR-DOMAIN \
: tls-san 명령어를 추가해주면 k3s가 인증서를 알아서 갱신함
- 서버 실행
# 원격 서버에서 실행
sudo systemctl daemon-reload
sudo systemctl restart k3s
# 로컬 환경에서 실행
kubectl get node
k3s 시작 및 파일 작성에 대해 참조
: https://cobain.me/2020/07/14/K3s-On-Mac.html
Refference
'Container > Kubernetes' 카테고리의 다른 글
다양한 쿠버네티스의 종류 (0) | 2023.06.04 |
---|---|
쿠버네티스를 공부하기 전에 알아야하는 기초지식 (0) | 2023.05.29 |
k3s vs minikube vs micro k8s 비교 (0) | 2023.01.11 |
쿠버네티스의 개요 (Kubernetes) (0) | 2021.10.19 |
쿠버네티스 계열 컨테이너 오케스트레이션 차이 (k8s / k3s / minikube / kind / kubeadm) (0) | 2021.09.14 |