본문 바로가기

728x90

Infra/도커 & 쿠버네티스 기초

(13)
쿠버네티스 (4) kubectl 커맨드 옵션 // create, delete, get, set, apply, scale, log 등이 있음
쿠버네티스 (3) 매니페스트 파일 - 정의 파일 - etcd에 바림작한 상태를 등록 - YAML, JSON 지원 - 이름은 자유되, 조직에 맞게 사용 - 리소스 단위로 작성 (파드, 서비스, 디플로이먼트, 레플리카세트) 매니페스트 작성 내용 - API 그룹 및 리소스 유형 (kubectl api-resources) - 메타데이터와 스펙 - 레이블과 셀렉터 (레이블로 복잡한 액션을 지정 가능) 파드 작성 apiVersion: v1 kind: Pod metadata: name: apa000pod labels: app: apa000kube spec: containers: - name: apa000ex91 images: httpd ports: - containerPort: 80 디플로이먼트 작성 - 앞서 작성한 파드를 이용해 디..
쿠버네티스 (2) 파드 - 컨테이너와 볼륨을 함께 묶은 것 - 기본적으로 파드 하나가 컨테이너 하나이지만 컨테이너가 여러 개인 파드도 존재 서비스 - 여러 파드들이 모인 것이 서비스 - 서비스가 관리하는 파드는 동일한 구성을 가짐 - 로드 밸런서의 역할을 수행하며 각 서비스는 고정 IP를 가짐 레플리카세트 - 파드의 수를 관리 - 레플리카세트가 관리하는 동일한 구성의 파드를 레플리카로 부름 - 직접 조작이 어렵기 때문에 디플로이먼트와 함께 쓰임 - 디플로이먼트가 파드가 사용하는 이미지 정보 등을 가지고 있음
쿠버네티스 (1) 쿠버네티스 - 여러 개의 컨테이너를 관리하는 일 (자동으로 바람직한 상태를 유지) - 어떤 일을 할 수 있는 가에 초점을 맞춰서 공부 - 여러 대의 물리적 서버가 존재하는 것을 전제로 함 - CNI를 설치해야 동작함 클러스터의 구성 - 전체 제어를 맡는 마스터 노드와 동작을 담당하는 워커 노드로 구성됨 - 노드는 물리적인 서버와 같은 개념 - 마스터 노드에는 k8s, CNI, etcd가 설치된다. - 워커 노드에는 k8s, CNI, container engine이 설치된다. 컨트롤 플레인 마스터 노드 - kube-apiserver: 외부와 통신하는 프로세스, kubectl로부터 명령을 전달받아 실행 - kube-controller-manager: 컨트롤러를 통합 관리, 실행 - kube-scheduler..
도커 컴포즈 도커 컴포즈 - 텍스트 파일에 시스템 구축 명령어들을 정리해서 시스템을 한 번에 시작 및 폐기 - Dockerfile은 이미지 만드는 용이며, 도커 컴포즈는 볼륨과 네트워크도 구성 가능 - 쿠버네티즈는 여기서 한 층 들어가 컨테이너 관리까지 가능 설정 파일 - docker-compose.yml 파일을 사용 - 정의 파일은 한 폴더에 하나만 존재할 수 있음 실습 services: db: # We use a mariadb image which supports both amd64 & arm64 architecture image: mariadb:10.6.4-focal # If you really want to use MySQL, uncomment the following line #image: mysql:8.0..
도커 허브 도커 허브 - 이미지를 공유할 수 있는 원격 저장소이다. - 도커 팀에서 공식적인 이미지를 제공하기도 한다. - 아래 이미지처럼 레포지토리를 만들 수 있다. 1. 태깅 docker tag ac826143758d tmddnr3163/my_collection:1 - 원래 이미지 이름을 버리고 태그로 바꾸고 복제 - 주소/레포명:버전 2. 등록 docker push tmddnr3163/my_collection:1
컨테이너 개조 컨테이너 개조 - 공식 배포되는 버전을 입맛에 맞게 수정 - 파일 복사 및 마운트를 활용하는 방법과 리눅스 명령어를 실행하는 방법이 존재 docker exec -it apaThree /bin/bash - bash 쉘 실행, 이때 bash가 돌고 있으므로 아파치가 잠시 멈추게 됨 - 또한, bash는 컨테이너 내부 이므로 도커 명령어를 사용하려면 exit를 해야함
컨테이너로 이미지 만들기 이미지 - commit 커맨드 활용 - Dockerfile 스크립트 작성 후 build commit 커맨드 활용 docker run --name apaThree -d -p 8082:80 httpd - 오늘도 아파치 컨테이너 등장 docker commit apaThree apa_img - 이미지 생성 Dockerfile 스크립트 작성 후 build FROM httpd COPY index.html /usr/local/apache2/htdocs - Dockerfile 작성 docker build -t apa_img2 /Users/sean/documents/apa_folder - 재료 폴더 경로를 기입해주면서 이미지 빌드

728x90