728x90 반응형 SMALL 리눅스34 [Docker] Package 'docker-ce' has no installation candidate Package 'docker-ce' has no installation candidate 우분투 환경에서 docker 커맨드를 찾지 못하는 경우에 다음 명령어를 실행한다. $ sudo apt-get update$ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"$ apt-get u.. 2024. 6. 19. [Apache Airflow] Email 오퍼레이터 Email 오퍼레이터 Airflow에서 기본 제공하는 오퍼레이터 중 하나이며, Email 전송할 수 있는 오퍼레이터이다. 기존 airflow 컨테이너를 종료한다. ubuntu~$cd airflowubuntu~$sudo docker compose down 구 컨테이너의 restart policy 변경 후 종료한다. ubuntu~$sudo docker update --restart=no $(sudo docker ps -a -q)ubuntu~$sudo docker stop $(sudo docker ps -a -q) 새 컨테이너를 시작한다. ubuntu~$sudo docker compose up 구글 계정 설정 Gmail 계정 내 설정하기에서 G-mail → 설정 → 모든 설정보기 → 전달 및 POP/IMAP .. 2024. 6. 17. [AWS] 도커 PostgreSQL 배포 PostgreSQL 이미지 docker image pull postgresdocker image ls PostgreSQL 컨테이너 실행 docker container run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres docker container ls PostgreSQL 컨테이너 내부 docker container exec -it {컨테이너 ID} /bin/bashpsql -U postgresALTER USER postgres WITH PASSWORD 'postgres';CREATE DATABASE ml; \listpostgres=# \qexit 데이터 보관 docker container stop {컨테이너 ID}do.. 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. [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] 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] 디플로이먼트 (Deployment) 디플로이먼트 (Deployment) 디플로이먼트는 파드 (pod)와 레플리카셋 (ReplicaSet)에 대한 선언적 업데이트를 제공한다 (ex: 파드 상태 업데이트, 스케일 업 등). 디플로이먼트를 활용해 새로운 레플리카셋을 생성하거나 기존에 존재하는 디플로이먼트를 제거하고 새로운 디플로이먼트를 선언할 수 있다. 레플리카셋을 직접적으로 관리하는 것은 안된다. 레플리카셋 (ReplicaSet) 레플리카셋은 여러 개의 파드를 항상 안정적으로 유지하는 것이 목적이다. 레플리카셋은 주로 특정 개수의 파드 실행을 보장하는데 사용한다. 예를 들어, 3개의 파드가 실행되어야 할 때, 3개 중 1개가 정지되면 새로운 파드를 생성해서 3개 파드의 개수를 맞춘다. 디플로이먼트는 레플리카셋보다 상위 개념이다. 디플로이.. 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. [AWS] Flask에 PostgreSQL 적용 pyenv pyenv로 파이썬 3.11.9 버전을 활성화시킨다. pyenv activate py3_11_9 초기 디렉토리에서 flaskapp 디렉토리를 생성한다. mkdir flaskapp flask vim 에디터로 main 파이썬 파일을 생성한다. vim main.pyimport numpy as npfrom sklearn.linear_model import LinearRegressionimport psycopg2from flask import Flask, request, jsonifyapp = Flask(__name__)np.random.seed(0)X = np.random.rand(10, 1)y = 2 * X + 1 + 0.1 * np.random.randn(10, 1)model = LinearR.. 2024. 5. 31. 이전 1 2 3 4 다음 728x90 반응형 LIST