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

AWS29

[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] 잡 (Job) 잡 (Job)  잡은 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도한다. 파일 생성 vim job-cronjob01.ymlapiVersion: batch/v1kind: Jobmetadata: name: job-test01spec: template: spec: containers: - name: nginx-test01 image: nginx:1.25 command: ["echo", "Hello, Kubernetes!"] restartPolicy: Never backoffLimit: 3 잡 실행 kubectl apply -f job-cronjob01.ymlkubectl get jobkube.. 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] nginx nginx Nginx는 경량 웹 서버이다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다. nginx 설치 sudo apt updatesudo apt install nginxsudo systemctl status nginx 서비스 접속을 위한 포트포워딩 방법 1 kubectl get all --namespace mynginx 루트로 접근하여 EXTERNAL-IP를 추가해준다.  sudo -i cd /etc/nginx/sites-enabled/ sudo vim defaultproxy_pass http://{EXTERNAL-.. 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] 스테이트풀셋 스테이트풀셋  스테이트풀셋은 어플리케이션의 스테이트풀을 관리하는데 사용하는 워크로드 API 오브젝트이다. 파드 집합의 디플로이먼트와 스케일링을 관리하며, 파드들의 순서 및 고유성을 보장한다 . 디플로이먼트와 유사하게, 스테이트풀셋은 동일한 컨테이너 스펙을 기반으로 둔 파드들을 관리한다. 디플로이먼트와는 다르게, 스테이트풀셋은 각 파드의 독자성을 유지한다. 파드가 동일한 스펙으로 생성되었어도, 서로 교체는 불가능하다. 다시 말해, 각각은 재스케줄링 간에도 지속적으로 유지되는 식별자를 가진다. 헤드리스 서비스 생성 vim statefulset-service.ymlapiVersion: v1kind: Servicemetadata: name: sfs-service01spec: selector: app: .. 2024. 6. 9.
728x90
반응형
LIST