기본 환경
참고 - k3d는 도커 컨테이너에 k3s가 설치되어 kubernetes를 구축하는 형태
single node cluster kubernetes를 구축할 예정
--write-kubeconfig-mode 644은 후에 kubectl을 설치 후 진행할 작업 때문에 붙여줌
$ curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
$ curl -sfL https://get.k3s.io | sh -s - --docker --write-kubeconfig-mode 644
WSL(ubuntu-20.04)를 이용해 설치하다 다음과 같은 오류가 발생했다.
System has not been booted with systemd as init system (PID 1). Can’t operate. Failed to connect to bus: Host is down
아무래도 WSL 설치를 통해 직접 실행되니 시스템 명령어를 사용하지 못하게 되어있는 듯 함.
$ sudo apt install daemonize dbus-user-session fontconfig
$ sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
$ exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME
$ snap version
$ systemctl start k3s
###1.1.2 에러 해결 2 (추천)
# 1. screen을 사용하여 백그라운드에서 k3s 서버를 실행하고 로그 출력을 /var/log/k3s.log에 저장
$ screen -d -m -L -Logfile /var/log/k3s.log /usr/local/bin/k3s server
# 새 창에서 사용하면 끝!
# 스크린 종료
$ screen -X -S <삭제할 스크린> kill
$ k3s kubectl get node
# 1. curl을 통해 kubectl 설치
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
# 2. chmod 명령어를 통해 실행 권한 부여
$ chmod +x ./kubectl
# 3. mv(파일이동)
$ mv ./kubectl /usr/local/bin/kubectl
# 4. kubectl 설치 확인
$ kubectl version
$ mkdir .kube # 이미 디렉토리가 만들어져 있는 경우도 있다.
$ sudo chmod -R 777 /etc/rancher/k3s/k3s.yaml
$ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
$ cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
# 빌드한 이미지를 압축파일로 만든다
$ docker save --output test-app-v1.0.0.tar test-app:v1.0.0
# 원격 호스트에 이미지 복사라는데 어떤 것을 하고 싶은 것인지 잘 모르겠음.
# 안해도 잘 되는 듯함.
$ rsync -v test-app-v1.0.0.tar remote:/home/ubuntu/test-app-v1.0.0.tar
# k3s로 이미지를 가져온다.
$ sudo k3s ctr images import /home/ubuntu/test-app-v1.0.0.tar
/usr/local/bin/k3s-killall.sh