리눅스 한 학기 살기 (10) - Kubernetes 설치

정하람·2023년 11월 30일
7

리눅스 한 학기 살기

목록 보기
10/12
post-thumbnail

10주차. Kubernetes 11/3 ~ 11/9

나는 백엔드 개발 직군을 희망하고 있다.

현대의 클라우드 환경에서 쿠버네티스는 많은 기업에서 인프라 구조를 관리하고 서비스를 배포하는 데 사용되고 있습니다.

쿠버네티스의 이점.

  1. 스케일링 및 로드 밸런싱: 쿠버네티스는 애플리케이션을 쉽게 스케일링하고 로드를 분산시킬 수 있는 강력한 기능을 제공합니다.
  2. 자동화된 배포: 쿠버네티스는 애플리케이션의 자동 배포를 지원하여 개발자가 손쉽게 새로운 기능을 배포하고 업데이트할 수 있습니다.
  3. 확장성: 쿠버네티스는 여러 환경에서 동일한 방식으로 작동하므로, 애플리케이션을 다양한 클라우드 환경 또는 온프레미스 데이터 센터로 이관하기 쉽습니다.
  4. 고가용성 및 복원력: 쿠버네티스 클러스터는 고가용성을 제공하고, 노드나 컨테이너의 장애에 대한 자동 복원 메커니즘을 가지고 있습니다.
  5. 인프라 관리 간소화: 쿠버네티스는 인프라스트럭처의 추상화를 제공하여 개발자가 하드웨어 및 네트워크 디테일에 대해 더 이상 걱정하지 않고 애플리케이션에 집중할 수 있도록 도와줍니다.

위와 같은 이유로 백엔드 개발자가 쿠버네티스를 학습하면 클라우드 환경에서의 작업을 효과적으로 수행할 수 있으므로 한 번 리눅스에 설치해보겠다.

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

⇒ 쿠버네티스 설치 완료되었다!!!!!!!

profile
학생입니다

1개의 댓글

comment-user-thumbnail
2023년 12월 8일

안녕하세요 쿠버네티스 글 읽고 조금 댓글 남깁니다!
실무에서는 온프레미스 같은 경우 kubeadm, kubespray
클라우드 환경에서는 EKS, GKE 와 같은 서비스를 활용하게 되는데 minikube는 로컬환경에서 테스트 목적으로 사용하는게 좀 더 크기 때문에 리소스 생성해보고 테스트 용도라 한번 더 다른 방식으로도 접근해보시면 좋을 것 같습니다!

답글 달기