클라우드/쿠버네티스(Kubernetes)

리눅스 → 도커 → 쿠버네티스 실습 시나리오

두뚜 2021. 9. 30. 11:00

도커 환경과 쿠버네티스 환경에서 실제 앱을 구동시키는 실습

리눅스 → 도커 → 쿠버네티스 실습 시나리오

 

# 리눅스

 

1. 최초의 리눅스 서버에서 Hello world 라는 node.js 앱을 만들어 띄워 보기

 

→ 리눅스에는 node.js를 실행할 수 있는 패키지가 깔려있어 앱이 구동이 된다.

 

2. 도커가 깔려있는 다른 서버에서 앞에서 만든 Hello world 앱을 가져올것

 

→ 이 서버에는 node.js가 깔려있지 않기 때문에 실행 되지 않는다.

 

 

# 도커를 이용해 컨테이너를 만든다.

 

1. 여러가지 컨테이너 이미지들을 공개적으로 올릴 수 있는 도커허브에서 node.js 이미지를 실행할 수 있는 컨테이너 이미지를 가져온다.

 

2. 복사해온 Hello world 앱을 하나의 컨테이너로 만든다.

 

더보기

Dockerfile                

FROM node:slim

EXPOSE 8000

COPY hello.js

CMD node hello.js

 

3. 컨테이너가 만들어지면 도커를 컨테이너로 구동시켜 외부에서 서비스를 할 수 있도록 open한다.

 

 

# 쿠버네티스를 사용하여 앱을 띄운다.

 

1. 컨테이너 이미지를 다시 도커허브에 올린다

 

2. 파드안에 컨테이너를 만들때 방금 올린 허브에서 이미지를 가져와 파드를 구동

 

→ pod를 만들 yaml 파일

더보기

pod

apiVersion
kind: Pod
metadata:
  name: hello-pod
  labels:
  app: hello
spec:
  containers:
  - name: hello-container
    image: ldhkube/hello
    ports:
    - containerPort: 8000

 

3. 외부에서 접근할 수 있는 서비스를 만든다.

 

→ service를 만들 yaml 파일

더보기

apiVersion
kind: Service        # 서비스를 만든다
metadata:
  name: hello-svc    # 서비스의 이름
spec:
  selector:
    app: hello
  ports:
    - port: 8200        # 외부로 오픈 시킬 포트
      targetPort: 8000  #컨테이너 포트
  externalIPs:
  - 192.168.0.30        # 외부에서 이 ip로 접근할 수 있다

 

 

 

 

출처:

https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88 인프런 강의를 보고 정리 하였습니다.