Kubectl

kubectl은 쿠버네티스를 위한 커맨드라인 도구로, 쿠버네티스 API 서버와 통신하여 사용자 명령을 전달하는 CLI 도구이다.

image

쿠버네티스는 클러스터 시스템으로 master node와 worker node가 있다. Master node 안에는 API 서버가 존재하는데 이를 사용해 쿠버네티스 클러스터에 연결해 명령어를 주고 받는다. kubectl를 통해 API 서버에 인증을 하고 API 서버에 여러가지 쿠버네티스 명령어를 전달한다.

image

kubectl 설치

https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-using-native-package-management

1. Update the apt package index and install packages needed to use the Kubernetes apt repository

$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl

image

image

2. Download the Google Cloud public signing key

$ curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg

image

3. Add the Kubernetes apt repository

$ echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

image

4. Update apt package index with the new repository and install kubectl

$ sudo apt-get update && sudo apt-get install -y kubectl

image

kustomize

kustomize는 컨테이너 기반의 어플리케이션을 효율적으로 운영하도록 도와주는 클러스터 오케스트레이션 시스템이다. 오케스트레이션 시스템에 올라가게 될 어플리케이션 정보들을 쿠버네티스 매니페스트의 형태로 관리하는데 이러한 매니페스트의 관리는 kubectl에서 진행할 수 있지만 어플리케이션의 개수가 많아지면 관리가 불편해진다. 이를 해결하기 위해 다양한 오픈소스들이 생겨나는데 현재는 kustomize와 helm이라는 도구가 가장 많이 사용된다. kustomize는 kubectl 안에 내장된 함수이다. 쿠버네티스 매니페스트들을 chart 로 패키징하게 되는데 Helm은 이를 기반으로 어플리케이션을 관리하는 도구이다.

image

image

기본적인 쿠버네티스 매니페스트 파일 구조인 base에 overlay라는 파일을 patch 해서 여러 환경에 적용할 수 있다. 예를 들어 특정 러플리케이션을 스테이징 환경용으로도 배포하고 싶고, prod 환경용으로 배포하고 싶을 때 각각 환경별로 특정값을 다르게 할 수 있다.

kustomize 설치

https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/

바이너리를 직접 받아서 설치를 진행한다.

1. Download kustomize binary

curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/kustomize/${KUSTOMIZE_VERSION}/hack/install_kustomize.sh"  | bash

image

2. Install to /usr/local/bin

sudo install -o root -g root -m 0755 kustomize /usr/local/bin/kustomize

image

잘 설치된 것을 확인할 수 있다.

image