2.1 도커를 사용한 컨테이너 이미지 생성, 실행, 공유하기
1) Docker File 작성 및 컨테이너 안에서 실행시킬 애플리케이션 준비
2) 컨테이너 이미지 생성
도커 데몬에 Docker file 및 필요한 애플리케이션 파일을 업로드 + 빌드 수행
이 때, 로컬에 필요한 이미지 레이어가 존재하지 않는다면 도커 허브에서 기반 이미지 레이어를 pull 하여 빌드
docker build -t kubia . // 현재 디렉토리(.)에 있는 도커파일을 기반으로 이름이 kubia 인 이미지 생성
3) 컨테이너 이미지 실행
docker run --name kubia-container -p 8080:8080 -d kubia
// kubia 이미지를 이용해서 kubia-container 를 생성 + 실행
// -d: 백그라운드로 실행
// -p: 로컬 호스트의 8080 포트와 컨테이너 내부의 8080 포트 연결
4) 컨테이너 내부 탐색
메인 프로세스가 실행되고 있는 컨테이너에서 bash 를 실행시켜 내부 탐색
docker exec -it kubia-container bash
bash 실행 후 파일 탐색(ls), 프로세스 조회(ps aux) 명령어들을 수행하면... 컨테이너 내부에서 독립적으로 있는 파일들, 프로세스들을 확인 가능
5) 컨테이너 중지와 삭제
docker stop kubia-container // 컨테이너 실행 중지
docker rm kubia-container // 컨테이너 삭제
2.2 쿠버네티스 클러스터 설치
로컬에서 단일 노드 클러스터를 만들어 개발 / 테스트 : minikube
다중 클러스터 및 자동 노드 설정 : 구글 쿠버네티스 엔진(GKE)
kubectl 클라이언트 명령어를 입력하면 마스터 노드의 API 서버에 REST 요청이 보내져 서로 상호작용 가능
2.3 쿠버네티스에 첫번째 애플리케이션 실행하기
1) 파드 생성(yml, json 파일로 쿠버네티스 클러스터를 실행해야 하지만 일단 간단하게 실행)
kubectl run kubia --image=luksa/kubia --port:8080 --generator=run/v1
--generator=run/v1 을 붙이면 레플리케이션컨트롤러가 생성된다고 하는데 해당 옵션이 deprecated 되어서(?) 해당 옵션은 못쓰는 거 같다
명령 실행시 레플리케이션 컨트롤러가 파드 생성
생성된 파드는 마스터 노드 내 스케줄러에 의해 워커 노드로 배정
워커 노드의 kubelet 이 도커 실행
도커 빌드시 이미지가 없다면 도커 허브에서 이미지를 가져와 빌드 + 컨테이너 실행
2) 서비스 생성
파드마다 가지고 있는 내부의 ip 를 서비스를 통해 외부의 ip 로 고정
파드 복제본이 여러개인 경우 외부의 고정(정적) ip 를 통해 내부의 파드에 로드밸런싱 되어 접근
kubectl expose rc kubia --type=LoadBalancer --name kubia-http
// 레플리케이션 컨트롤러 kubia 에 대해 kubia-http 서비스를 생성
minikube 의 경우에는 LoadBalancer 타입으로 EXTERNAL-IP 를 받을 수 없어서...(pending) minikube service 명령어를 통해 파드에 접근 가능하다...
3) 레플리케이션컨트롤러
파드 인스턴스 생성, 실행
복제 수를 설정했을 때 현재 파드 수와 목표 파드 수를 파악하여 조정하는 역할
파드가 사라지면 새로운 파드 생성
kubectl scale rc kubia --replicas=3
// 레플리케이션이 파드를 생성할 수 있도록 의도한 레플리카 수 지정
4) 쿠버네티스 대시보드
minikube dashboard
+ 스터디를 하면서 레플리케이션컨트롤러는 이제 안쓰고 높은 버전으로 가면서 Replicaset 이 권장된다는 것을 알게 되엇다
'2023~ > 쿠버네티스 인 액션' 카테고리의 다른 글
Ch 06 볼륨: 컨테이너에 디스크 스토리지 연결 (0) | 2024.11.17 |
---|---|
Ch05 서비스: 클라이언트가 파드를 검색하고 통신을 가능하게 함 (0) | 2024.10.13 |
Ch04 레플리케이션과 그 밖의 컨트롤러: 관리되는 파드 배포 (0) | 2024.10.10 |
Ch03 파드: 쿠버네티스에서 컨테이너 실행 (0) | 2024.09.30 |
Ch 01 쿠버네티스 소개 (0) | 2024.09.24 |
댓글