Index
- Docker
- Container Orchestration
- Provisioning
목표
이번엔 k8s를 이용해서 node에 container 배포를 진행해 보겠습니다.
설치할 application 은 storm 입니다.
1. Application Image 생성
1.1 storm Dockerfile
1 | FROM centos:centos7 |
1.2 생성된 Image 저장소에 push
2. Secrets 생성하기
private repository 를 사용하는경우 image를 pull받기 위해서는 인증 절차가 필요합니다. 그외 사용자 암호, oAuth 토큰 및 ssh키와 같은 민감한 정보를 저장하고 관리해주는 기능으로 k8s Secrets를 사용합니다. 이번 실습에서는 Docker Hub Secrets 를 생성해보도록 하겠습니다.
2.1 Docker Hub Private Registry 로그인
1 | docker login |
2.2 인증 token 정보 확인
- login을 하게되면
~/.docker/config.json파일이 생성됩니다. 파일 내용을 확인해봅니다.1
cat ~/.docker/config.json

2.3 인증 토큰을 사용하여 Secret 생성하기
1 | kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL --namespace=<namespace-name> |

3. yaml 파일을 이용한 배포
3.1 storm배포를 위한 yaml 파일 작성
1 | kind: Deployment |
3.2 생성된 yaml파일로 배포 해보기
- 아래 명령어로 yaml 파일을 통한 배포를 진행합니다.
1
kubectl create -f <yaml file>

3.3 App 접속 확인
- service를 조회하면 app의 접근포트인
9999포트가30000으로 포트포워딩 된것을 확인 할 수 있습니다. - 해당 서버의 ip / port를 이용해 정상적으로 접속되는 것을 확인 할 수 있습니다.

4. UI 를 이용한 배포
4.1 우측위 + 버튼을 클릭합니다.

4.2 Create from form 를 클릭해서 UI 배포를 진행합니다.
- Create from input 은 yaml 파일 형식을 직접 작성해서 배포하는 방식입니다.
- Create from file 은 yaml을 upload 해서 배포하는 방식입니다.

4.3 App의 기본정보를 입력합니다.
- App Name 에 배포되는 application 명칭을 작성합니다.
- Container Image 에 사용하려는 Image 명칭을 작성합니다.
- Number of pods 에는 생성하려는 pod의 갯수를 작성합니다.

4.4 Service 정보를 입력합니다.
- Service 는
NONEInternalExternal이 있습니다. 이번 실습에서는 외부에 오픈되는 App이기 때문에 External을 선택합니다. - Port 에는 application에서 사용하는 Port중 외부에 오픈되어야 하는 Port를 연결해 줍니다.

4.5 advance option을 작성합니다.
- Show advanced option을 클릭합니다.
- Description 에는 배포되는 application 의 세부 정보를 작성합니다.
- Image Pull Secret는 private repository를 사용하는경우 미리 설정한 secret을 선택해서 Image pull 받을때 인증을 하게됩니다. 미리 생성한
docker-hub를 선택합니다.
4.6 Deploy 를 클릭해서 배포를 시작합니다.

4.7 배포완료가 되면 초록색 으로 정상적으로 배포되었다는것을 확인 할 수 있습니다.

4.8 Application 접속
