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

도커33

[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] 스테이트풀셋 스테이트풀셋  스테이트풀셋은 어플리케이션의 스테이트풀을 관리하는데 사용하는 워크로드 API 오브젝트이다. 파드 집합의 디플로이먼트와 스케일링을 관리하며, 파드들의 순서 및 고유성을 보장한다 . 디플로이먼트와 유사하게, 스테이트풀셋은 동일한 컨테이너 스펙을 기반으로 둔 파드들을 관리한다. 디플로이먼트와는 다르게, 스테이트풀셋은 각 파드의 독자성을 유지한다. 파드가 동일한 스펙으로 생성되었어도, 서로 교체는 불가능하다. 다시 말해, 각각은 재스케줄링 간에도 지속적으로 유지되는 식별자를 가진다. 헤드리스 서비스 생성 vim statefulset-service.ymlapiVersion: v1kind: Servicemetadata: name: sfs-service01spec: selector: app: .. 2024. 6. 9.
[K8s] 스토리지 볼륨 (Storage Volume) 스토리지 볼륨 (Storage Volume)  볼륨은 스토리지 어레이에서 스토리지 공간을 관리하고 구성하는 데이터 컨테이너이다. 볼륨은 스토리지 어레이에서 사용할 수 있는 스토리지 용량에서 생성되며 시스템 리소스를 쉽게 구성 및 사용할 수 있다. PersistentVolume PV는 관리자가 프로비저닝하거나, Storage class를 사용해서 동적으로 프로비저닝한 클러스터의 스토리지이다. sudo -icd /tmp/mkdir k8spvexit NFS (Network File System)은 네트워크로 연결된 다른 컴퓨터의 파일 시스템을 내 컴퓨터로 마운트해서 상대방의 파일 시스템 일부를 자시 자신의 디렉토리처럼 사용하는 프로토콜이다. 쉽게 말해, 저장 공간을 공유할 수 있도록 해주는 서비스이다. sud.. 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.
728x90
반응형
LIST