본문 바로가기

전체 글200

쿠버네티스(Kubernetes) 포트포워딩(PortForward), YAML/POD란? 생성 조회 및 삭제 먼저 포트포워딩부터 해보자. window powershell에서 실행한다. 1. 가상머신 실행 ssh Azure아이디@할당받은IP주소 2. 설치 curl -LO https://storage.googleapis.com/minikube/releases/v1.22.0/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube minikube --help curl -LO https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl 1) 버전 확인해보기 minikube .. 2024. 1. 12.
쿠버네티스(Kubernetes, k8s)란? 등장배경, 도커, 컨테이너와의 관계 쿠버네티스(Kubernetes, k8s)란? 컨테이너 오케스트레이션을 위한 솔루션으로, 다수의 컨테이너를 관리하는데 사용된다. 오케스트레이션이란 여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위이다. 쿠버네티스 등장배경 쿠버네티스의 탄생배경을 알기 위해서는 가상화 환경과 컨테이너 환경의 차이부터 알아야 한다. 우선 컨테이너 인프라 환경은 리눅스 운영 체제의 커널 하나에서 여러 개의 컨테이너가 격리된 상태로 실행되는 인프라 환경을 말한다. 다수의 관리자가 수백 또는 수천 대의 서버를 함께 관리하는 기업 환경에서 일관성을 유지하는 것이 중요하기 때문에 컨테이너 인프라 환경이 효과적인 것이다. 또한 가상화 환경에서는 각각의 가상 머신이 모두 독립적인 운영 체제 커널을 가지고 있어야 하기 때문에.. 2024. 1. 12.
[Docker] Azure 가상머신에서 Flask 접속해보기 2 이제 도커 허브에서 pull 한 후, 접속 테스트를 해보자. 먼저 포트 5000번으로 열어줄거기 때문에 인바운드 규칙을 추가해주어야 한다. 1. Azure 네트워크 설정에서 인바운드 규칙 설정 포트 규칙 만들기를 통해 다음과 같이 flask 5000 규칙을 만들어주었다. 2. docker hub에서 pull 하기 docker pull erica00j/github-actions-app:v1.0.0.0 3. 실행 docker run -p 5000:5000 --name demo6 erica00j/github-actions-app:v1.0.0.0 이제 할당받은 공용 IP주소:5000으로 접속해보자. 다음과 같이 나타나면 성공적으로 실행된 것이다. 여기서 의문점! 127.0.X, 172.17.X 등의 주소에서는 .. 2024. 1. 12.
[Docker] Azure 가상머신에서 Flask 접속해보기 1 Microsoft Azure는 GCP, AWS 등과 같은 퍼블릭 클라우드 플랫폼이다. 우선 Azure에 접속하여 가상머신을 만들어주고, 공용 IP 주소를 할당받는다. 1. window powershell에서 실행해보자. ssh AZURE아이디@공용IP주소 2. 비밀번호를 입력하고 도커를 설치해보자. 1) 패키지 매니저 업데이트 후 설치 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release 2) Docker의 GPG key 추가 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/sh.. 2024. 1. 12.
[Docker] Docker에 Flask App 배포해보기 지난번 포스팅한 Docker 동작 흐름대로 이번에는 Flask App을 직접 배포해보겠다. app.py, Dockerfile, requirements.txt 등과 함께 깃헙에 올려두었다. https://github.com/erica00j/flask GitHub - erica00j/flask Contribute to erica00j/flask development by creating an account on GitHub. github.com 1. Dockerfile을 사용하여 도커 이미지 빌드 (이미지 및 태그 변경 필요) docker build -t github-actions-app:v1.0.0 . 2. 이미지를 Docker Hub(Docker Registry)에 푸시 (이미지 및 태그 변경 필요) d.. 2024. 1. 11.
[Docker] 도커 컨테이너(Docker Container)와 이미지란? 도커(Docker)란? 도커는 개발자가 컨테이너화된 애플리케이션을 빠르게 빌드, 테스트 및 배포할 수 있게 해주는 소프트웨어 플랫폼이다. 도커 컨테이너 컨테이너를 사용하면 개발자가 소프트웨어를 패키징하여 모든 대상 시스템에서 실행할 수 있다. 쉽게 말해서, 컨테이너는 이미지를 실행한 상태를 말한다. 도커 컨테이너는 도커 엔진이 설치된 모든 머신 또는 가상 머신에서 실행된다. 도커 이미지 도커 이미지는 소스 코드, 라이브러리, 도구 및 응용 프로그램을 실행하는데 필요한 기타 파일을 포함하는 실행 파일이다. 하나의 베이스 이미지에서 도커 이미지를 무제한으로 생성할 수 있다. 또한 하나의 이미지는 여러 컨테이너를 생성할 수 있고, 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아 있는다. 도커의 동작 .. 2024. 1. 11.
[Algorithm] 구현 구현이란? 머리속에 있는 알고리즘을 소스코드로 바꾸는 과정을 말한다. 시뮬레이션 및 구현 문제는 문제에서 제시한 상황을 알고리즘으로 수행해내도록 구현하는 문제이다. 구현의 적용 자료구조를 활용하는 경우가 많다. BFS/DFS 탐색도 많이 나온다. 문제 분석, 코드 구조 설계, 예제 실행 확인하기 함수화를 잘하자 -> 논리가 복잡해질수록 실수를 줄일 수 있다. 가장 기본적인 반례는 입력 범위의 최솟값, 최댓값으로 주어지는 경우 연산 범위를 확인하여 알맞은 자료형 설정 2024. 1. 5.
[Algorithm] 벨만-포드 알고리즘(Bellman-Ford algorithm) 벨만-포드 알고리즘이란? 한 노드에서 다른 노드까지의 최단 거리를 구하는 알고리즘이다. 다익스트라 알고리즘에 비해 시간적 효율은 떨어지지만 가중치가 음수일 때 다익스트라 대신 사용한다. 벨만-포드의 특징 하나의 시작점에서 모든 정점까지의 최단 경로를 구하는 SSP(Single Source Shortest Path) 알고리즘 모든 정점을 V-1번 갱신한 뒤, 한 번 더 갱신을 시도하는 브루트포스적 접근 정점의 수를 V, 간선의 수를 E라고 할 때, 시간 복잡도는 O(VE) 2024. 1. 5.
[Algorithm] 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm) 플로이드-워셜 알고리즘이란? 변의 가중치가 음이거나 양인 가중 그래프에서 최단 경로들을 찾는 알고리즘이다. 다익스트라 알고리즘이 하나의 노드로부터 최단경로를 구하는 알고리즘인 반면, 플로이드-워셜 알고리즘은 가능한 모든 노드쌍들에 대한 최단거리를 구하는 알고리즘이다. 플로이드-워셜의 특징 가능한 모든 정점 2개의 조합에 대한 최단 경로를 구하는 ASP(All Pairs Shortest Path) 알고리즘 두 정점 사이의 최단 경로에 포함될 수 있는 모든 정점의 경우를 고려하는 dp 접근 정점의 수를 V, 간선의 수를 E라고 할 때, 시간 복잡도는 O(V^3) 2024. 1. 5.