쿠버네티스는 대규모 클러스터 환경에서 컨테이너화된 애플리케이션을 자동으로 배포하고 확장, 관리하는데 필요한 여러가지 요소들을 자동화하는 오픈소스 플랫폼이다.
데브옵스(DevOps) 혹승 시스템 운영자 관점에서 바라본 쿠버네티스의 가장 큰 특징은
컨테이너 환경의 쿠버네티스는 기존 가상 머신 환경과 몇가지 기본 철학이 다르다. 대표적으로 '애완동물 vs 가축'의 개념이다.
- kubespray는 다양항한 설치 옵션 및 운영체제를 지원하는 앤서블(Ansible)기반의 쿠버네티스 설치 자동화 도구
- K3s는 랜처(Rancher)에서 지원하는 솔루션으로 경량화된 쿠버네티스 설치 도구로서 Edge, IoT, 단일노드 등 시스템 자원이 부족한 다양한 환경에 적합
단일 노드로 구성된 클러스터도 기본적인 쿠버네티스 명령어 및 작업 수행은 가능하지만 각 노드 간 워크로드 분배, 노드 페일오버(failover)등의 클러스터 관리 업무는 수행하기가 어렵다.
쿠버네티스의 모든 작업은 컨트롤 플레인 노드의 API파드와 통신하는 과정을 거쳐 실행된다. 원격서버와 로컬호스트에서 실행하는 모든 명령어는 동일하게 쿠버네티스의 API가 처리한다.
$ kubectl version --client
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.2", GitCommit:"5835544ca568b757a8ecae5c153f317e5736700e", GitTreeState:"clean", BuildDate:"2022-09-21T14:33:49Z", GoVersion:"go1.19.1", Compiler:"gc", Platform:"darwin/arm64"}
Kustomize Version: v4.5.7
쿠버네티스는 원격 클러스터의 API서버 통신에 필요한 인증 정보를 kubeconfig(${HOME}/.kube/config)
파일에서 관리한다.
이 파일의 정보는
$ kubectl config view
명령어를 통해 조회할 수 있다.