나는 백엔드 개발 직군을 희망하고 있다.
현대의 클라우드 환경에서 쿠버네티스는 많은 기업에서 인프라 구조를 관리하고 서비스를 배포하는 데 사용되고 있습니다.
쿠버네티스의 이점.
위와 같은 이유로 백엔드 개발자가 쿠버네티스를 학습하면 클라우드 환경에서의 작업을 효과적으로 수행할 수 있으므로 한 번 리눅스에 설치해보겠다.
Ubuntu 20.04 에서 Kubernetes 설치하기
docker info // 도커 정상작동하는지 확인
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json":
dial unix /var/run/docker.sock: connect: permission denied
// 이런 퍼미션 에러 발생.
sudo usermod -aG docker haramjeong // 도커 그룹에 유저 추가.
→ 이제 정상 작동함.
// 1.minikube 설치
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.25.2/minikube-linux-amd64 && chmod +x minikube
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/
// 2.kubectl 설치
curl -Lo kubectl http://storage.googleapis.com/kubernetes-release/release/v1.23.6/bin/linux/amd64/kubectl && chmod +x kubectl
sudo install kubectl /usr/local/bin/
// 3.conntrack 설치
sudo apt-get install -y conntrack
// 4.minikube 시작
minikube start --vm-driver=none
에러 메시지를 보면 /usr/local/bin/minikube
파일을 실행할 수 없다는 내용이 있는데, 이는 일반적으로 실행 파일의 형식이 호스트 시스템과 호환되지 않아서 발생
→ 또 잘 보니 minikubu 가 amd64 로 설치됨
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.25.2/**minikube-linux-amd64** && chmod +x minikube
해결 방안
→ 위 과정에서
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
,
curl -LO https://dl.k8s.io/release/v1.28.4/bin/linux/arm64/kubectl
로만 수정해서(arm64로 바꿔서) 다시 시도
→ 바꿔서 시도.
→ 또 안 됨 ……..
→ 주어진 결과를 보면 Minikube 바이너리가 x86-64 아키텍처에 맞게 빌드되었다는 것을 알 수 있습니다. 그러나 이 시스템은 ARM64 아키텍처를 사용하고 있기 때문에 "cannot execute binary file: Exec format error" 에러가 발생합니다.
→ 에러 모양이 바뀌었다.
Minikube가 호스트 머신에서 crictl
이라는 도구를 찾을 수 없어서 에러 발생.
→ 설치 시도 했지만 시스템 패키지 관리자를 통해 사용할 수 없음.
⇒ GitHub에서 직접 crictl
바이너리를 다운로드하고 설치
⇒ 또 다른 에러가 발생 cri-dockerd
를 찾을 수 없다고 함.
https://github.com/Mirantis/cri-dockerd/releases
위 깃허브 링크에서 가져온 것으로 설치 이후 동작
→ 드디어 정상적으로 실행 된다.
// 5.쿠버네티스 설치 확인
kubectl version
⇒ 쿠버네티스 설치 완료되었다!!!!!!!
안녕하세요 쿠버네티스 글 읽고 조금 댓글 남깁니다!
실무에서는 온프레미스 같은 경우 kubeadm, kubespray
클라우드 환경에서는 EKS, GKE 와 같은 서비스를 활용하게 되는데 minikube는 로컬환경에서 테스트 목적으로 사용하는게 좀 더 크기 때문에 리소스 생성해보고 테스트 용도라 한번 더 다른 방식으로도 접근해보시면 좋을 것 같습니다!