SK플래닛 ai활용 데이터엔지니어 과정 2기/쿠버네티스

쿠버네티스 - 2

dev-lee 2026. 3. 23. 17:33

쿠버네티스 플러그인 정리

목차

  1. 쿠버네티스 플러그인이란?
  2. CLI 플러그인 매니저 krew
  3. 네임스페이스 생성
  4. AWS 자격 증명 우선순위
  5. 리소스 삭제

1. 쿠버네티스 플러그인이란?

쿠버네티스 플러그인(Kubernetes Plugins)은 쿠버네티스의 기본 기능에 없는 특수한 기능을 추가하거나 기존 기능을 확장하기 위해 사용하는 확장 프로그램이다.

쿠버네티스는 처음부터 모든 기능을 담고 있지 않다. 핵심 기능(코어)은 가볍게 유지하고, 나머지는 사용자의 환경(AWS, Google Cloud, 온프레미스 등)에 맞춰 플러그인으로 끼워 쓸 수 있도록 설계되어 있다.

왜 플러그인이 필요한가?

모든 회사의 네트워크 환경이나 스토리지가 같을 수 없기 때문이다. AWS 디스크를 쓰는 회사도 있고, 자체 서버실의 SSD를 쓰는 회사도 있다. 쿠버네티스 개발팀이 이 모든 장치용 코드를 직접 짤 수 없으므로, 표준 규격을 만들어두고 각 장치 제조사가 플러그인을 만들어오는 방식으로 설계되어 있다.

3대 플러그인 규격

① CNI (Container Network Interface)

컨테이너 간의 네트워크 통신을 담당한다. 컨테이너에 IP를 할당하고 서로 통신할 수 있게 연결해 준다.

  • 예시: Calico, Flannel, Cilium, AWS VPC CNI (EKS에서 사용)

② CSI (Container Storage Interface)

쿠버네티스와 외부 저장소(EBS, NFS 등)를 연결해 주는 통로다. 퍼시스턴트 볼륨(PV)과 관련이 깊다.

  • 예시: AWS EBS CSI Driver, Azure Disk CSI

③ CRI (Container Runtime Interface)

쿠버네티스가 컨테이너를 실제로 실행하기 위해 사용하는 엔진 규격이다. 과거에는 도커를 직접 사용했으나 현재는 이 규격을 따르는 엔진을 사용한다.

  • 예시: containerd, CRI-O

요약하면, 쿠버네티스라는 본체에 내가 원하는 기능을 조립해서 쓸 수 있게 해주는 연결 잭이라고 이해하면 된다.


2. CLI 플러그인 매니저 krew

krew란?

krew는 kubectl 전용 플러그인 관리 매니저다. macOS의 brew, Ubuntu의 apt와 비슷한 역할을 한다. 현재 90가지 이상의 플러그인을 설치할 수 있다.

krew 설치

curl -fsSLO https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew-linux_amd64.tar.gz
tar zxvf krew-linux_amd64.tar.gz
./krew-linux_amd64 install krew
tree -L 3 /root/.krew/bin

# PATH 추가
export PATH="${PATH}:/root/.krew/bin"
echo 'export PATH="${PATH}:/root/.krew/bin"' >>~/.bashrc

krew 기본 명령어

kubectl krew update          # 플러그인 목록 업데이트
kubectl krew search          # 플러그인 검색
kubectl krew list            # 설치된 플러그인 확인
kubectl krew install <name>  # 플러그인 설치

kube-ctx (컨텍스트 전환)

여러 클러스터를 빠르게 전환할 수 있다.

# 설치
kubectl krew install ctx

# 컨텍스트 목록 확인
kubectl ctx

# 컨텍스트 전환
kubectl ctx <컨텍스트 이름>

kube-ns (네임스페이스 전환)

현재 작업 중인 네임스페이스를 빠르게 전환할 수 있다.

# 설치
kubectl krew install ns

# 네임스페이스 목록 확인
kubectl ns

# 네임스페이스 전환
kubectl ns kube-system

# default 네임스페이스로 복귀
kubectl ns -
# 또는
kubectl ns default

기타 유용한 플러그인

# 한 번에 설치
kubectl krew install df-pv get-all ktop neat oomd view-secret
플러그인 용도 명령어
get-all 네임스페이스 내 모든 리소스 조회 kubectl get-all -n kube-system
ktop 리소스 사용량 시각화 kubectl ktop
oomd 메모리 초과(OOM) 파드 확인 kubectl oomd
df-pv 퍼시스턴트 볼륨 스토리지 사용량 확인 kubectl df-pv
view-secret 시크릿 복호화 kubectl view-secret
neat YAML 출력 정리 kubectl neat

3. 네임스페이스 생성

네임스페이스를 만들고 그 안에 파드와 로드밸런서를 배포하는 흐름이다.

# 네임스페이스 목록 확인
kubectl get ns

# web 네임스페이스 생성
kubectl create ns web

# web 네임스페이스로 전환
kubectl ns web

# web 네임스페이스에 nginx 배포
kubectl create deployment websrv --image=nginx --port=80 --replicas=2
kubectl expose deployment websrv --port=80 --type=LoadBalancer

위 명령을 실행하면 web 네임스페이스 안에 파드 2개와 LoadBalancer 타입의 서비스가 생성된다.


4. AWS 자격 증명 우선순위

AWS CLI가 자격 증명을 찾는 순서는 다음과 같다. 위쪽 항목이 발견되면 아래쪽 항목은 무시된다.

우선순위 자격 증명 방식
1 커맨드 라인 옵션 (--profile, --region 등)
2 환경 변수 (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
3 AWS 자격 증명 파일 (~/.aws/credentials)
4 AWS 구성 파일 (~/.aws/config)
5 컨테이너 자격 증명 (ECS 등)
6 EC2 인스턴스 프로파일 자격 증명 (EC2 IAM Role)

핵심은 aws configure를 통해 생성된 ~/.aws/credentials 파일이 존재하면, EC2에 부여된 IAM Role보다 파일에 저장된 키가 우선 적용된다는 점이다.

자격 증명 확인 및 관리

# 현재 유효한 자격 증명 확인
aws sts get-caller-identity

# 환경 변수 자격 증명 확인 및 삭제
vi /etc/profile
vi ~/.bashrc
vi ~/.bash_profile

5. 리소스 삭제

# EKS 클러스터 삭제 (약 5분 소요)
eksctl delete cluster --name eks-demo

이후 AWS 콘솔에서 다음 순서로 삭제한다.

  1. CloudFormation 스택 삭제
  2. 로드밸런서 삭제
  3. VPC 삭제

'SK플래닛 ai활용 데이터엔지니어 과정 2기 > 쿠버네티스' 카테고리의 다른 글

쿠버네티스 - 6  (0) 2026.03.25
쿠버네티스 - 5  (0) 2026.03.25
쿠버네티스 - 4  (0) 2026.03.25
쿠버네티스 - 3  (0) 2026.03.25
쿠버네티스 - 1  (0) 2026.03.23