Web/Kubernetes

Kubernetes cluster (Minikube), kubectl 설치

tose33 2024. 1. 5. 14:50

https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9E%85%EB%AC%B8

 

초보를 위한 쿠버네티스 안내서 강의 - 인프런

쿠버네티스를 1도 모르는 입문자, 초보자를 위한 쿠버네티스 안내서 입니다. 초보자도 이해하기 쉬운 내용과 흐름으로 구성했어요., 데브옵스(DevOps) 입문자라면 주목! 쿠버네티스의 첫발을 함

www.inflearn.com

 

https://subicura.com/k8s/prepare/kubernetes-setup.html#%E1%84%80%E1%85%A2%E1%84%87%E1%85%A1%E1%86%AF-vs-%E1%84%8B%E1%85%AE%E1%86%AB%E1%84%8B%E1%85%A7%E1%86%BC

 

쿠버네티스 설치

쿠버네티스 실습을 위해 클러스터를 설치합니다.

subicura.com

 

 

클러스터

컨테이너화된 애플리케이션을 실행하는 노드(물리적 또는 가상 머신)의 집합.

마스터, 노드, etcd 등이 포함.

 

개발 vs 운영

 

  • 운영 환경에서는 최소 3대의 마스터 서버, 컨테이너 배포를 위한 n개의 노드 서버가 필요
    • 설치 과정 복잡하고 배포 환경(AWS,Google Cloud 등)에 따라 방법이 다르다 
  • 개발 환경에서는 이렇게 여러개의 서버는 불필요하기 때문에, 마스터와 노드를 하나의 서버에 설치해서 개발

하나의 서버에 마스터,노드 설치

  • 이런 하나의 서버로 이루어진 개발환경에서는 여러 노드에 스케줄링 테스트가 어렵고, 로드 밸런서와 Persistent Local Storage 를 가상으로 만들어야 하는 문제가 있다 -> 정확한 실습,테스트는 운영환경에서 진행해야함

 

Minikube

개발환경을 위해 마스터와 노드를 하나의 서버에 쉽게 설치해주는 여러 프로그램이 있다.

minikube, k3s, docker for desktop 등 ... 

 

Minikube 는 가상머신 위에 이런 개발환경을 구축한다. 

 

Minikube 명령어

# 버전확인
minikube version

# 가상머신 시작 (반드시 관리자권한으로 실행)
minikube start --driver=hyperv
# driver 에러가 발생한다면 virtual box를 사용
minikube start --driver=virtualbox
# 특정 k8s 버전 실행
minikube start --kubernetes-version=v1.23.1

# 상태확인
minikube status

# 정지 (minikube 는 정지할때 이전 상태 저장해놓음)
minikube stop

# 삭제
minikube delete

# ssh 접속
minikube ssh

# ip 확인
minikube ip

 

 

minikube status

 

host, kubelete, apiserver 이 running 중인 것을 볼 수 있다.

 

minikube ssh

 

ssh 로 가상머신 위에서 돌아가는 kubernates cluster 을 로컬에서 접근할수 있다.

진입후 'docker ps' 로 도커 컨테이너들을 볼수 있다.

 

이렇게 나는 도커 컨테이너를 따로 설치하지 않았지만 minikube 가 알아서 kubernates를 위한 컨테이너들을 생성한것을 볼수 있다.

 

 


kubectl

Minikube 로 쿠버네티스 클러스터를 설치했다.

이 클러스터와 소통은 kubectl 을 사용한다.

 

설치 명령어

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.23.5/bin/windows/amd64/kubectl.exe