515 words
3 minutes
[Kubernetes]01. 기본 컨셉과 설치
2025-03-07
2026-01-09

Overview#

1. Kubernetes#

Kubernetes#


Concept

  • Kubernetes : 컨테이너 자동 배포, 스케일링, 오케스트레이션을 지원하는 오픈소스 플랫폼. 선언적 구성과 자동화를 통해 desired state를 유지하도록 설계된 일종의 분산시스템. 핵심은 서비스 리커버리와 자동화.

특징#

  • Scalability: 확장성 및 고가용성을 제공.
  • Flexibility: cloud, on-premises, hybrid, multi-cloud 환경에서 사용 가능.
  • Self-Healing: failover, load balancing, auto-scaling을 지원.
  • Rich Ecosystem: 다양한 플러그인, 툴, 서비스를 제공.

2. 설치#

싱글노드 환경에 K3S 설치#

  • nixos환경에 k3s를 설치할 경우 nix configuration을 수정하는 것만으로 간단하게 k3s를 설치할 수 있다.
services.k3s.enable = true;
services.k3s.role = "server";
services.k3s.extraFlags = toString [
# "--debug" # k3s 서버용 추가 플래그
"--tls-san homeserver"
];

3. cli 환경 최적화#

kubectl alias 적용#

  • .zshrc에 alias를 추가하여 kubectl 명령어를 보다 단순화 할 수 있다.
Terminal window
alias k=kubectl
alias kg='kubectl get'
alias kd='kubectl describe'
alias kr='kubectl run'
alias klo='kubectl logs -f'
alias kc='kubectl create'
alias ke='kubectl edit'

krew tool 설치#

  • krew는 쿠버네티스용 플러그인 설치와 관리를 도와주는 도구이다.
  • nix home manager를 사용할 경우 아래와 같이 krew를 설치하고 사용할 수 있다.
home.packages = with pkgs; [
krew
];
  • k3s는 기본적으로 —write-kubeconfig-mode 플래그를 활성화 시켜야 krew를 사용할 수 있다.
services.k3s.enable = true;
services.k3s.role = "server";
services.k3s.extraFlags = toString [
"--write-kubeconfig-mode 644"
];

플러그인 목록 조회

Terminal window
krew search

설치 대상 플러그인#

kubectx#

  • kubectx는 쿠버네티스 클러스터를 쉽게 전환할 수 있도록 도와주는 플러그인
  • context를 전환할 때 사용
Terminal window
krew install ctx

kubens#

  • kubens는 어플리케이션 단위로 분리된 네임스페이스를 쉽게 전환할 수 있도록 도와주는 플러그인
  • namespace 조회 및 전환에 사용
Terminal window
krew install ns

kubeps1#

  • kubeps1은 현재 클러스터와 네임스페이스를 표시하는 프롬프트를 제공하는 플러그인

References#

  • 24단계 실습으로 정복하는 쿠버네티스
[Kubernetes]01. 기본 컨셉과 설치
https://yjinheon.netlify.app/posts/05system/k8s/k8s_01_install/
Author
Datamind
Published at
2025-03-07
License
CC BY-NC-SA 4.0