[K8s] Kubectl

심주흔·2024년 7월 25일

Kubernetes

목록 보기
2/3
post-thumbnail

Kubectl

쿠버네티스 클러스터를 관리하는 동작은 대부분 kubectl 커맨드라인 인터페이스로 실행할 수 있다.

명령어 구분

  • 쿠버네티스 자원 관리 : create, update, delete...
  • 디버그, 모니터링, 트러블 슈팅 : log, exec, cp, top...
  • 클러스터 관리 : cordon, top, drain, taint ...

설치 방법

참고
1. 설치하기 전 환경은 Mac Intel Ubuntu 환경에서 진행하고 있으니, 운영체제, 리눅스 별로 설치 방법이 다를 수 있음!
2. Kubectl 을 설치할 때 최신버전을 설치할 시 버전 차이로 인해 많은 오류가 발생할 수 있음. => 클러스터 버전을 확인하고 그 버전에 맞는 Kubectl 을 설치하는 것이 바람직함.

클러스터 버전 확인

kubectl version --short

필자는 v1.22.8인 것

Kubectl 설치

curl -LO "https://dl.k8s.io/release/클러스터 버전/bin/linux/amd64/kubectl"

여기서 <클러스터 버전> 에 v1.22.8 을 넣으면 설치가 된다.


기본 사용법

구조

kubectl 은 다음 형식으로 명령을 작성한다.
kubectl [command][TYPE] [NAME][flags]

[command] : 자원에 실행하려는 동작 create, get, delete
[TYPE] : 자원의 타입 pod, service, ingress...
[NAME] : 자원의 이름
[flags] : 부가적으로 설정할 옵션

간단한 echo 서버 구현

echoserver?
클라이언트가 전송해주는 데이터를 그대로 되돌려 전송하는 서버

echoserver 이름의 파드 생성

파드란?
쿠버네티스에서 컨테이너를 관리하는 관리하는 기본 단위

kubectl expose pod echoserver --type=NodePort --port=8080

쿠버네티스의 파드들에 접근할 때 필요한 echoserver 라는 이름의 서비스를 생성

kubectl expose pod echoserver --type=NodePort --port=8080

파드 생성확인

kubectl get pods 명령을 실행하여 설치 확인

NAME : 파드의 이름
READY : 숫자/숫자형태 로 파드의 준비 상태를 나타냄.
     - 0/1 : 파드는 생성되었으나, 준비가 되지 않음
     - 1/1 : 파드가 생성되었고, 사용할 준비가 되었음.
STATUS : 파드의 현재 상태를 나타냄
       Running : 실행
       Terminating : 생성하는 중
RESTARTS : 해당 파드가 몇 번 재시작했는지 표시
AGE : 생성 후 얼마나 시간이 지났는지 표시

서비스 생성확인

kubectl get service

NAME8 : 서비스의 이름 표시
TYPE : 서비스 타입을 뜻함
CLUSTER-IP : 현재 클러스터 안에서 사용되는 IP
EXTERNAL-IP : 클러스터 외부에서 접속할 때 사용하는 IP
PORT(S) : 해당 서비스에 접속하는 포트
AGE : 자원을 생성한 후 얼마나 시간이 지났는지 나타냄.


포트포워딩

kubectl port-forward svc/echoserver 8080:8080


추가 설정 및 삭제

서버를 실행한 상태로 다른 셀을 하나 더 추가적으로 연다.

실행

curl http://localhost:8080 으로 실행

로그 확인

kubectl logs -f echoserver


삭제

파드 삭제
kubectl delete pod echoserver

서비스 삭제
kubectl delete service echoserver

삭제 확인
kubectl get pods

profile
이봐... 해보기는 했어?

0개의 댓글