9월, 2020의 게시물 표시

Kubernetes - Pods

 Pods이란? 컨테이너의 집합 하나의 완벽한 어플리케이션을 표현함 ex) was(container_1) + log agent(container_2) + ... = Pod kubectl 보다는 주로YAML 파일로 생성 YAML 파일 내용은 일반적으로 아래 4가지로 구성 apiVersion: YAML 파일에 정의한 오브젝트의 API 버전 kind: 리소스 종류 metadata: 리소스 부가 정보 spec: 리소스 생성을 위한 정보 Pod 생성 yaml 파일 예제(nginx-pod.yaml) apiVersion: v1 kind: Pod metadata:         name: my-nginx-pod spec:         containers:                 - name: my-nginx-container                   image: nginx:latest                   ports:                           - containerPort: 80                             protocol: TCP pod 실행 $> kubectl apply -f {yaml_file_name} ex) kubectl apply -f nginx-pod.yaml pod 상태 확인 $> kubectl get pods 개별 pod의 세부 상태 확인 $> kubectl describe pods {pod_name} ex) kubectl describe pods my-nginx-pod pod의 컨테이너에 명령 전달하기 $> kubectl exec [option] {pod_name} -c {container_name} {command} ex) kubectl exec -it my-nginx-pod -- bash --: pod에 container가 하나 일때 pod(container들) log 확인 $> kubectl logs {pod_name} ex) kubectl logs my-ng

Docker Compose

도커 컴포즈란 컨테이너 CI 툴로 정의 할 수 있다. 기본적인 사용법은 도커를 cli run 명령으로 사용하던 것을 yml 파일로 정의해 두는 것이다. 기본 사용법 파일명: docker-compose.yml (default) 주의) 탭 사용이 안되니 스페이스 두칸으로 할것 myproject#> vi docker-compose.yml version: '3.0' services:   web:     image: alicek106/compsetest:web     ports:       - 80:80     links:       - mysql:db     command: sudo apachectl -DFOREGROUND   mysql:     image: alicek106/composetest:mysql     command: mysqld * yml 검증 myproject#> docker-compose config * 실행 myproject#> docker-compose up -d -> -p : 프로젝트명 지정 -> -f : 파일명 지정 -> -d : detach mode * 컨테이너 확인 myproject#> docker-compose ps -> 컨테이너 네이밍 규칙: [프로젝트명]_[서비스명]_[서비스내 컨테이너 번호] -> 프로젝트명은 명시적으로 주지 않으면 docker-compse.yml이 있는 폴더명 -> ex) myproject_web_1, myproject_mysql_1, ... * 스케일링 myproject#> docker-compose scale mysql=2 * 삭제 myproject#> docker-compose down yml properties version : 버전(1 / 2 / 2.1 / 3 / 더 나오겠지) services: 서비스 정의(대부분 cli run과 동일 기능) image: 사용할 이미지 설정 links: local에서 컨테이너명으로 link하던