DevOps/Kubernetes

쿠버네티스(Kubernetes) 설치

알로그 2022. 5. 7. 12:46
반응형

쿠버네티스(Kubernetes) 설치

 

개발 용도의 쿠버네티스 설치

  • Minikube
  • Docker for Mac/Windows

손쉽게 설치할 수 있지만 로컬 노드를 standalone 모드로 사용하기 때문에 쿠버네티스 기능을 완벽하게 사용하기에 적합하지 않다. 여러 서버의 자원을 클러스터링해 컨테이너를 배치하는 것이 핵심 기능인데, 1개의 노드로는 이런 기능을 확인하기가 어려운 단점이 있다.

 

 

서비스 테스트 또는 운영 용도의 쿠버네티스 설치

  • kops
  • kubespray 
  • kubeadm 
  • EKS, GKE 등의 managed 서비스

클라우드 플랫폼 환경과 온프레미스 서버 환경으로 나눠진다.

온프레미스에 구성한다면 인프라를 원하는 대로 구성할 수 있지만 운영 및 유지보수가 쉽지 않을 수 있다.

EKS, GKE를 사용하면 쿠버네티스 관리 및 유지보수까지 클라우드 제공자가 담당하지만, 쿠버네티스 전체적인 개념을 파악하기 쉽지 않은 단점이 있다.

 

 

쿠버네티스를 학습하는 것이 목적이기에 직접 여러 서버를 구성해서 kubeadm으로 쿠버네티스 클러스터를 설치해보자.

 

1. VirtualBox 설치

https://www.virtualbox.org/wiki/Downloads

 

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt

www.virtualbox.org

 

2. Ubuntu 20.04 기반 4개 노드 생성

  • 10.0.1.4 (master)
  • 10.0.1.5 (worker1)
  • 10.0.1.6 (worker2)
  • 10.0.1.7 (worker3)

 

3. 쿠버네티스 저장소 추가

$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg I apt-key add -
$ cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
> deb http://apt.kubernetes.io/ kubernetes-xenial main
> EOF

 

4. kubeadm 설치

$ wget -qO- get.docker.com | sh
$ apt-get install -y kubelet kubeadm kubectl kubernetes-cni

 

5. 클러스터 초기화

$ kubeadm init --apiserver-advertise-address 10.0.1.4 --pod-network-cidr=10.0.1.0/24
  • --apiserver-advertise-address: 마스터 노드에게 접근할 수 있는 IP
  • --pod-network-cidr: 컨테이너 네트워크 대역

 

중간에 출력된 3줄 명령어는 마스터노드에서 실행한다.

마지막에 출력된 kuberadm join ... 관련 명령어는 마스터노드를 제외한 워커노드에서 실행한다.

 

 

6. 컨테이너 네트워크 애드온 설치

컨테이너 간 통신을 위해 calico 네트워크 플러그인 설치한다.

calico.yaml 파일에서 --pod-network-cidr에 해당하는 IP 변경 필요하다.

$ kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

 

쿠버네티스 핵심 컴포넌트 실행 목록 및 등록된 노드 확인

$ kubectl get pods --namespace kube-system
$ kubectl get nodes

 

 

Reference.

http://www.yes24.com/Product/Goods/84927385

 

시작하세요! 도커/쿠버네티스 - YES24

본서는 도커를 처음 접하는 개발자를 위한 도커 컨테이너와 이미지의 기본적인 개념을 먼저 설명한 뒤, 도커 컴포즈와 스웜 모드를 통해 컨테이너 애플리케이션을 YAML 파일로 작성하고 클러스

www.yes24.com

 

반응형