Suyeon9911 / TIL

매일 오전에 적는 미라클 TIL 🥣
10 stars 0 forks source link

[Cloud] 클라우드 - 쿠버네티스 & 도커 #64

Closed Suyeon9911 closed 2 years ago

Suyeon9911 commented 2 years ago

용어정리

Kubeflow

GET/POST/PUT/DELETE

쿠버네티스

쿠버네티스 아키텍처

쿠버네티스 아키텍처 - 마스터 노드

쿠버네티스 아키텍처 - 워커 노드

쿠버네티스는 컴퓨터 클러스터에 어플리케이션을 배치하고 실행을 관리하는 운영수준의 오픈소스 플랫폼

Control Plane

Node

디플로이먼트

Kubectl

Pod 파드

노드

Kubelet

레플리카셋/셀렉터/레이블

스케일링/ 로드밸런싱

롤링 업데이트

Suyeon9911 commented 2 years ago

CLI

IDE - OpenPaaS 배포와 Release를 관리하기 위해 도움을 주는 커맨드 라인 유틸리티

-CLI는 모든 명령에 대해 이메일과 암호를 다시 묻는 대신 이 토큰을 사용할 수 있음

help 명령을 사용하여 필요에 따라 보다 자세한 도움말을 얻을 수 있음

명령 줄에서 다음을 사용할 수 있음 $ cf help restage $ cf restage --help

두 명령 모두 restage 명령에 대한 도움말과 동일한 결과를 표시 환경 변수 쌍을 설정하여 작업을 사용자 정의 할 수 있음

-a의 옵션은 CF CLI가 실행할 수 있는 모든 명령을 나열

$ cf login –a https://api. ktpaasta-v4.kr –skipssl-validation

App을 OpenPaaS에 배포하고 app을 Start

$ cf push [-b BUILDPACK_NAME] [-c COMMAND] [-d DOMAIN] [-f MANIFEST_PATH] [-i NUM_INSTANCES] [-k DISK] [-m MEMORY] [-n HOST] [-p PATH] [-s STACK] [-t TIMEOUT] [--nohostname] [--no-manifest] [--no-route] [--no-start

$ cf delete [--f] [--r] $ cf start $ cf stop $ cf restart $ cf restage $ cf marketplace [-s SERVICE_NAME]

$ cf create-service [-c PARAMETERS_AS_JSON] [-t TAGS] $ cf delete-service SERVICE_INSTANCE [-f]

$ cf bind-service [-c PARAMETERS_AS_JSON] $ cf unbind-service

$ cf routes $ cf delete-orphaned-routes [-f

CLI로 배포하기 : CF 명령어로 배포하기위해 manifest.yml 을 작성

배포 명령어 : $ cf push

명세서를 자동으로 읽어서 호스트 이름으로 해당 파일이 업로드 됨

배포 결과 running이 확인되면 배포 완료!

주의 사항

Suyeon9911 commented 2 years ago

IDE

= 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어

이클립스에서 클라우드 파운더리 설치 이클립스 플러그인으로 파스타 연동 0 이메일 비번 계정인증 - 서버 생성완료 - 개발 프로젝트 배포

어플리케이션 설정- 서브도메인명 설정 - 연결할 서비스 설정

개발하고 파스 서버를 지정하고 IDE에서 변경한 것을 반영해서 결과로 확인할 수 있음

Portal, CLI, IDE를 이용해서 앱을 배포 및 관리할 수 있음

애플리케이션 리스트: 클라우드 상에 올라가 있는 앱을 확인. (삭제도 가능)

앱 컨트롤 : 앱을 배포 업데이트 시작/중지/재시작

Suyeon9911 commented 2 years ago

도커

컨테이너 기반의 오픈소스 가상화 플랫폼

레이어

이미지 경로 (허브와 레지스트리)

Suyeon9911 commented 2 years ago

PaaS

물리서버에서 하이퍼바이저로 가상화 VM생성 VM에 garden을 이용해 컨테이너로 가상화 앱 실행

=> IaaS 자원 위에 여러 인스턴스들의 유기적인 조합으로 파스 동작

BOSH

IaaS 환경에서 Stemcell, Deployment, Releas를 이용하여 VM들을 관리

Suyeon9911 commented 2 years ago

https://tecoble.techcourse.co.kr/post/2021-08-14-docker/

Suyeon9911 commented 2 years ago

도커란?

도커는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 컨테이너는 라이브러리, 시스템 도구, 코드 등 소프트웨어 실행에 필요한 모든 것이 포함되어 있다. 즉, 도커는 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 도구이다. 도커를 통해 애플리케이션을 실행하면 독립적인 환경에서 일관된 결과를 보장한다. 도커의 핵심 개념은 이미지와 컨테이너다. 그럼 먼저 컨테이너를 알아보자.

Suyeon9911 commented 2 years ago

컨테이너

컨테이너는 격리된 공간에서 프로세스가 동작하는 기술이다. 기존의 가상화 방식인 OS 가상화가 아닌 프로세스를 격리하는 방식으로 동작한다. 리눅스에서 프로세스를 격리하는 방식을 리눅스 컨테이너라고 한다. 단순히 프로세스를 격리하기 때문에 가볍고 빠르다. 또한 CPU나 메모리는 프로세스가 필요한 만큼만 추가 사용하여서 성능적으로 거의 손실이 없다. 아래 그림은 도커(왼쪽)와 가상머신(오른쪽)을 나타낸 것이다.

Suyeon9911 commented 2 years ago

컨테이너는 다음과 같은 특징이 있다.

Suyeon9911 commented 2 years ago

이미지

컨테이너 실행에 필요한 파일과 설정을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다. 컨테이너는 이미지를 실행한 상태이다. 추가되거나 변하는 값은 컨테이너에 저장된다. 같은 이미지에서 여러 개의 컨테이너를 만들 수 있고 컨테이너의 상태가 바뀌거나 삭제되어도 이미지는 변하지 않고 그대로 남아있다. 도커 이미지는 Docker hub에 등록하거나 Docker Registry 저장소를 직접 만들어 관리할 수 있다.

이미지는 다음과 같은 특징이 있다.

Suyeon9911 commented 2 years ago

Dockerfile

도커 이미지를 만들기 위해 Dockerfile이라는 파일에 DSL(Domain Specific Language) 언어를 이용해 이미지를 생성할 수 있다. 단순 텍스트 파일로 일반적으로 소스와 함께 관리한다. 서버에서 프로그램을 설치하려고 할 때 Dockerfile 을 통하여 관리하면 된다. Dockerfile에서 사용할 수 있는 키워드는 20개 정도 있다. 여기서 중요한 건 FROM 과 RUN 이다. FROM 과 RUN 으로 이미지를 만들 수 있다.