본문 바로가기
728x90
반응형
SMALL

Docker33

[AWS] 도커 컴포즈 배포 도커 컴포즈 (Docker Compose)  도커 컴포즈 (docker compose)는 여러 개의 컨테이너를 가동할 때 사용하는 도커 어플리케이션이다. 도커 컴포즈를 사용하기 위해 docker-compose.yml이라는 YAML 파일을 사용한다. sudo apt-get updatesudo apt-get install docker-compose-plugindocker compose version flasktest 디렉토리 vim requirements.txtscikit-learn==1.5.0flask==3.0.3psycopg2==2.9.9gunicorn==22.0.0vim DockerfileFROM python:3.11.9WORKDIR /usr/src/appCOPY . .RUN python -m pip .. 2024. 6. 11.
[AWS] 도커 컨테이너 nginx 배포 디렉토리 생성  docker 디렉토리에서 nginxtest 디렉토리를 생성한다. mkdir nginxtestcd nginxtest/ Dockerfile 생성 nginx를 foreground에서 실행하기 위해 CMD에 -g와 daemon off;를 추가한다. 컨테이너가 background로 실행되므로, nginx를 foreground에서 돌리지 않으면 nginx가 exited된다.  vim DockerfileFROM nginx:1.26.0CMD ["nginx", "-g", "daemon off;"] 도커 이미지 빌드  docker image build . -t mynginx01 빌드된 이미지를 확인한다. docker image ls 컨테이너 실행 ocker container run -d mynginx01d.. 2024. 6. 11.
[AWS] 도커 컨테이너 배포 파일 구조 확인 mv flaskapp myappmkdir flaskappmv myapp flaskappsudo apt install treetree ./ 라이브러리 버전 확인 pyenv activate py3_11_9pip list | grep -E 'scikit-learn|Flask|gunicorn|psycopg2' requirements 작성 flaskapp 디렉토리에서 requirements를 작성한다. vim requirements.txtscikit-learn==1.5.0flask==3.0.3psycopg2==2.9.9 Dockerfile 파일 생성 마찬가지로, flaskapp 디렉토리에서 Dockerfile를 생성한다.   vim DockerfileFROM python:3.11.9WORKDIR .. 2024. 6. 11.
[K8s] 크론잡 (CronJob) 크론잡 (CronJob)  크론잡은 일정한 기간마다 잡을 생성하여 수행하는 것으로 정기적이고 반복적인 작업을 만드는데 사용된다. 즉, 반복 일정에 따른 잡을 만든다. 파일 작성 vim job-cronjob02.ymlapiVersion: batch/v1kind: CronJobmetadata: name: cronjob-test02spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: nginx-test02 image: nginx:1.25 command: - /bin/sh .. 2024. 6. 9.
[K8s] 인그레스 배포 파일 생성 vim ingress02-deploy.ymlapiVersion: apps/v1kind: Deploymentmetadata: name: ingress-deploy-test02spec: replicas: 3 selector: matchLabels: app: web-deploy02 template: metadata: labels: app: web-deploy02 spec: containers: - name: nginx image: nginx:1.25vim ingress02-service.ymlapiVersion: v1kind: Servicemetadata: name: ingress-service-test02spec.. 2024. 6. 9.
[K8s] 인그레스 (Ingress) 인그레스 (Ingress)  인그레스 개념은 쿠버네티스 API를 통해 정의한 규칙에 기반하여 트래픽을 다른 백엔드에 매핑할 수 있게 해준다. 클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리한다. 인그레스는 쿠버네티스 외부에서의 요청을 쿠버네티스 내부로 이어준다. 인그레스 생성 vim ingress01-deploy.ymlapiVersion: apps/v1kind: Deploymentmetadata: name: ingress-deploy-test01spec: replicas: 3 selector: matchLabels: app: web-deploy01 template: metadata: labels: app: .. 2024. 6. 9.
[K8s] metalLB metalLB  MetalLB는 Load Balancer가 없는 Bare-metal K8s cluster를 위해  표준 라우팅 프로토콜을 사용하여  소프트웨어적으로 Network Load Balancer를 기능을 구현 해주는 솔루션이다. metalLB 설치 kubectl get configmap kube-proxy -n kube-system -o yaml | grep strictARPkubectl get configmap kube-proxy -n kube-system -o yaml | \sed -e "s/strictARP: false/strictARP: true/" | \kubectl apply -f - -n kube-systemkubectl get configmap kube-proxy -n kube-s.. 2024. 6. 9.
[K8s] 매니페스트로 디플로이먼트 실행 매니페스트 파일 작성 kubectl delete deployment deploy-nginxapiVersion: apps/v1 # 해당 오브젝트를 생성하기 위해 사용하는 쿠버네티스 API 버전kind: Deployment # 생성하고 싶은 오브젝트 종류metadata: # 오브젝트를 유일하게 식별할 수 있는 데이터 name: deploy-test01 # 오브젝트 이름spec: # 생성하고자 하는 오브젝트의 스펙 replicas: 3 # 복제된 (replicated) 파드 3개를 생성하는 레플리카셋 생성 selector: # 레플리카셋이 어떤 파드를 관리할지 정의 matchLabels: # 파드 템플릿의 라벨 (label)을 통해 레플리카셋이 관리할 파드를 정의 app: we.. 2024. 6. 8.
[K8s] 리플리카셋 조정 리플리카셋 조정 레플리카셋은 사용자가 지정한 개수만큼 복제 파드를 생성해주고 복제 컨트롤러를 이용해 해당 개수의 복제 파드가 정상 실행 중인지 항상 감시한다. kubectl create deployment deploy-nginx --image=nginx --replicas=3kubectl get deploy,rs,pokubectl get deploy,rs,po -o wide 파드 삭제 후 재생성 kubectl delete pod {파드 이름} 파드가 재생성되는 것을 확인할 수 있다. 2024. 6. 8.
[K8s] 매니페스트 (Manifest) 매니페스트 (Manifest)  매니페스트란 쿠버네티스 오브젝트를 생성하기 위한 메타 정보를 YAML로 기술한 파일이다. vim nginx-test01.ymlapiVersion: v1 # 해당 오브젝트를 생성하기 위해 사용하는 쿠버네티스 API 버전kind: Pod # 생성하고 싶은 오브젝트 종류metadata: # 오브젝트를 유일하게 식별할 수 있는 데이터 name: nginx01 # 오브젝트 이름spec: # 생성하고자 하는 오브젝트 스펙 containers: # 컨테이너 - name: nginx-test01 # 컨테이너 이름 image: nginx:latest # 컨테이너 생성을 위해 사용할 이미지kubectl apply -f {파일 이름}apply 명령어는 쿠버네티스 리소.. 2024. 6. 8.
728x90
반응형
LIST