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

리눅스31

[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.
[Linux] NVIDIA GPU 사용을 위한 Ubuntu에 Tensorflow 설치 NVIDIA Driver  NVIDIA에서 제품에 맞는 드라이버를 설치한다. WSL2 설치  PowerShell에서 WLS2를 설치한다. wls --install PowerShell에서 nvidia-smi 명령으로 GPU 서버를 확인한다. Ubuntu-22.04를 사용한다. nvidia-smi Miniconda 설치 아래의 명령어를 터미널에 입력해 스크립트 파일을 다운로드 후에 실행한다. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shsudo bash Miniconda3-latest-Linux-x86_64.sh 경로를 “/home/{사용자 이름}/miniconda3”로 설정한다.  # conda 경로 설정export P.. 2024. 5. 28.
[AWS] EC2 Jupyter 서버 원격 서버 접속 ssh 명령을 이용하여 로컬 컴퓨터에서 서버 컴퓨터로 원격 접속한다.  ssh -i @ 환경 설정을 위해 scp 명령어로 폴더를 전송한다. scp -ri @:  pyenv source ~/env/pyenv.sh 파이썬 기본 버전을 3.8.5로 설정한다. pyenv global 3.8.5 requirements.txt에 정의된 파이썬 패키지를 설치한다. pip install -r ~/env/requirements.txt 주피터 서버 설치 및 설정 주피터 서버 설정 파일 생성한다. jupyter notebook --generate-configjupyter lab --generate-config 상호작용할 수 있는 ipython을 실행한다.  ipythonIn [1]: from jupyt.. 2024. 5. 21.
[Linux] 로컬 및 서버간 파일 전송 scp  scp는 SecureCopy의 약자로, 원격 서버에 있는 파일과 폴더를 전송하거나 가져오기 위해 사용하는 명령어이다. ssh 원격 접속 프로토콜을 기반으로 하며, ssh와 동일한 22번 포트를 이용하기 때문에 password/identity file을 이용해 안전하게 송수신 할 수 있다. 로컬에서 AWS EC2 우분투 서버에 파일 전송 윈도우에서 리눅스 서버로 전송하는 경우, cmd 터미널에서 수행하며 파일 전송 방법은 다음과 같다. scp -i C:\Users\{PC 계정}\Downloads\{키페어}.pem C:\Users\{PC 계정}\Downloads\{파일명} ubuntu@{퍼블릭 IPv4 주소}:~/ 폴더를 전송하는 방법은 다음과 같다. scp -ri C:\Users\{PC 계정}\D.. 2024. 5. 17.
728x90
반응형
LIST