본문 바로가기

데이터 사이언스

[VirtualBox][Kubernates] BusyBox로 애플리케이션 상태 확인하기

1. BusyBox이란?

BusyBox는 Unix/Linux에서 자주 쓰이는 400개 가량의 명령어를 가진 오픈소스이다. BusyBox에서는 자주 쓰이지 않는 명령어 옵션들은 제거됐다. 모든 것이 1MB 아래로 존재하며, 이러한 작은 이미지가 인베디드 시스템IOT 도메인, 클라우드 컴퓨팅 세계에서 사랑받는 이유이다.

 

BusyBox는 점점 인기를 얻고 있으며, 작은 크기의 이미지를 제공하기에 Docker 사용자에게 사랑받는다.

 

 

2. BusyBox.yml 생성하기

vim 에디터로 busybox.yml 파일을 생성하고, 코딩해 준다.

vim busybox.yaml

 

 

아래는 busybox.yml에 들어가는 내용이다.

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox
  namespace: default
  labels:
    app: busybox
spec:
  replicas: 1
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
    spec:
      containers:
      - name: busybox-container
        image: busybox:latest
        # Keep the container running
        command: [ "/bin/sh", "-c", "--" ]
        args: [ "while true; do sleep 30; done;" ]
        resources:
          requests:
            cpu: 30m
            memory: 64Mi
          limits:
            cpu: 100m
            memory: 128Mi

 

 

그리고 kubernate에 busybox.yml 파일을 적용시킨다.

이는 kubuernate가 실행 중이어야 한다.

kubectl apply -f busybox.yml

 

 

 

아래는 실행화면이다.

apply로 생성이 되고, get pods로 잘 생성이 되는지 확인한다.

 

실행화면

그림1. busybox 생성하기

 

 

3. Pod의 IP 상태 확인하기

내 컴퓨터에는 developement라는 namespace를 가졌고 pod를 3개 가진다.

이의 ip를 확인하는 명령어이다.

여기 코드의 developement는 내가 생성한 namespace이므로 각자 만든 namespace에 맞게 수정해 주자.

kubectl get pods -n development -o wide

 

 

실행화면

그림2. pods의 ip 주소 확인하기

 

 

4. BusyBox에서 Application 상태 확인하기

먼저 생성한 BusyBox의 이름을 가져온다. 그림 1의 빨간색으로 밑줄 친 부분이다.

저기 busybox-6b95744666-czdp9는 자신의 BusyBox 이름으로 수정해 주자.

성공적으로 실행됐다면 쉘로 들어가게 된다.

kubectl exec -it busybox-6b95744666-czdp9 -- /bin/sh

 

여기서 아까 확인한 Pod의 IP 주소를 이용해서 http 연결을 시도해 본다.

wget 다음 부분의 ip 주소는 자신의 Pods의 Ip 주소로 수정해 주자.

여기서 10.2440.6:3000의 3000은 내가 Pod를 생성할 때 쓴 container port 번호이다.

Pod를 만들 때 쓴 yml파일에서 container port 번호를 확인하고 바꿔주자.

wget 10.244.0.6:3000

 

성공적으로 완료가 됐다면 saving to 'index.html'이라는 문구가 나올 것이다.

index.html 파일을 확인하고 싶다면 아래 명령어를 사용하자.

cat index.html

cat으로 확인하면 잘 통신함을 확인할 수 있다. 

쉘을 나가고 싶다면 exit으로 나가면 된다.

 

 

실행화면

그림3. BusyBox로 상태 확인하기

 

 

 

 

Reference

Linkedin/ Learning kubernates/ Kim Schlesinger