Today I Learned

[쿠버네티스 인 액션] 2. 도커와 쿠버네티스 첫걸음 (2) 본문

카테고리 없음

[쿠버네티스 인 액션] 2. 도커와 쿠버네티스 첫걸음 (2)

하이라이터 2022. 7. 27. 00:39
728x90

2.2 쿠버네티스 클러스터 설치

  • 도커에서 직접 실행하는 대신 쿠버네티스 클러스터에 배포할 수 있다.
  • 쿠버네티스 클러스터 설치에 관한 자세한 설명은 http://kubernetes.io 문서에 있다.
  • 여기서는 로컬 머신에 단일 노드 쿠버네티스 클러스터를 싱행하는 방법과 구클 쿠버네티스 엔진에 실행중인 클러스터에 접근하는 방법을 다룬다.

2.2.1 Minikube를 활용한 단일 노드 쿠버네티스 클러스터 실행하기

  • Minikube -  로컬에서 쿠버네티스를 테스트하고 애플리케이션을 개발하는 목적으로 단일 노드 클러스터를 설치하는 도구

Minikube 설치

  • 설치를 위해서는 Minikube GitHub 리포지터리에 있는 설명을 따른다.
  • 실습 환경이 mac os라서 다음 명령어로 설치함
$brew install minikube

MiniKube로 쿠버네티스 클러스터 시작하기

  • 클러스터를 시작하는데 1분 이상 걸리므로 완료되기 전에 중단해선 안된다.

쿠버네티스 클라이언트 설치하기

  • 쿠버네티스를 다루려면 kubectl CLI 클라이언트가 필요하다.
  • 각 OS에 맞게 kubectl를 설치한다.
  • brew install minikube로 Minikube를 설치했다면 함께 설치된다.

클러스터 작동 여부 확인과 kubectl로 사용하기

  • kubectl cluster-info 명령어를 사용해 클러스터가 정상 작동하는지 확인할 수 있다.


2.2.2 구글 쿠버네티스 엔진을 활용한 관리형 쿠버네티스 클러스터 사용하기

  • 관리형 구글 쿠버네티스 엔진인 GKE 클러스터를 사용하면 완전한 다중 노드 쿠버네티스 클러스터를 살펴볼 수 있다.
  • GKE와 같은 관리형 솔루션을 사용하면 클러스터 노드와 네트워킹을 수동으로 설정할 필요가 없어 부담을 줄일 수 있다.

구글 클라우드 프로젝트 설정과 필요한 클라이언트 바이너리 다운로드

노드 세 개를 가진 쿠버네티스 클러스터 생성

  • 다음과 같이 노드 세 개를 가진 쿠버네티스 클러스터를 생성할 수 있다.
$gcloud container clusters create kubia --num-nodes 3

클러스터 개념 이해하기

  • 각 노드는 도커, Kubelet, kube-proxy를 실행한다.
  • Kubectl 클라이언트 명령어는 마스터 노드에서 실행중인 쿠버네티스 API 서버로 REST 요청을 보내 클러스터와 상호작용한다.

클러스터 노드를 조회해 클러스터 동작 상태 확인하기

  • kubectl 명령어로 모든 종류의 쿠버네티스 오브젝트를 조회할 수 있다.

오브젝트 세부 정보 가져오기

  • 오브젝트에 대한 상세정보는 kubectl describe 명령을 사용할 수 있다.
  • 출력결과는 CPU와 메모리, 시스템 정보, 노드에 실행중인 컨테이너 등을 포함한 노드 상태를 보여준다.
kubectl describe node gke-kubia-default-pool-b180865c-1n93

2.2.3 kubectl의 alias와 명령줄 자동완성 설정하기

별칭 설정하기

  • kubectl 명령어에 k와 같이 짧은 별칭을 추가하면 간단하게 명령어를 입력할 수 있다.
  • 다음 행을 ~/.bashrc나 이에 준하는 파일에 추가한다.
alias k=kubectl

kubectl의 탭 완성 설정하기

  • 탭 완성 기능을 활성화하면 다음과 같이 입력할 수 있다.
$kubectl desc<TAB> no<TAB> gke-ku<TAB>
  • bash에서 탭 완성을 활성화하려면 먼저 bash-completion 패키지를 설치하고 다음 명령어를 실행한다.
$source <(kubectl compltion bash)>
  • 주의할 점은 탭 완성은 전체 kubectl 이름을 사용할때만 동작한다는 것이다. 이 문제를 해결하려면 kubectl 완성 명령의 출력을 일부 변경해야한다.
$source <(kubectl completion bash | sed s/kubectl/k/g)

 

728x90
Comments