본문 바로가기

전체 글102

[Docker-실습] 4.Container 만들기(2) (목표) 주어진 script를 실행하는 컨테이너를 빌드하시오. - 컨테이너 이름 : fortune:20.02 - dockerfile의 내용 - base image: debian - 컨테이너에 아래의 webpage.sh 파일을 복사 webpage.sh #!/bin/bash mkdir /htdocs while : do /usr/games/fortune > /htdocs/index.html sleep 10 done - 컨테이너에 fortune 애플리케이션 설치 - 컨테이너 실행 시 저장한 webpage.sh가 실행되도록 구성 1. 디렉토리 생성 $ mkdir fortune $ cd fortune (2) script 파일 생성 $ vi webpage.sh webpage.sh #!/bin/bash mkdir /h.. 2021. 8. 11.
[Docker-실습] 3.Container 만들기 [vi dockerfile 생성 -> docker build(이미지만들기) -> docker run] 1. node.js 애플리케이션 컨테이너 만들기 : hello.js (Application을 운영해주는 컨테이너) (1) 디렉토리 생성 $ mkdir hellojs $ cd /hellojs (2) hello.js 파일 준비 $ vi hello.js hello.js $ cat > hello.js const http = require('http'); const os = require('os'); console.log("Test server starting..."); var handler = function(request, response) { console.log("Received request from ".. 2021. 8. 9.
[Docker] 3.Container(3) Q1. 무엇을 컨테이너로 만드는가? - 개발한 애플리케이션(실행파일)과 운영환경이 모두 들어있는 독립된 공간. - 개발한 프로그램과 실행환경을 모두 컨테이너로 만들어, MSA(Micro Service Architecture) 환경이 Polyglot 애플리케이션 운영. 예를 들어, shopping cart는 java, competed order는 php로 Inventory&Item price는 node.js로 Application을 개발하는 데 가장 적합한 언어를 선택하여 하나의 플랫폼(E-commerce Platform)을 구현할 수 있다. - 위와 같이 개발될 경우, Shopping Cart에 업데이트할 사항이 있다면 해당 컨테이너만 업데이트시켜주면 된다. 독립된 공간으로 서비스가 되기 때문에 다른 컨.. 2021. 8. 3.
[Docker-실습] 2.Docker 명령어 [Docker Status 확인] $ systemctl status docker $ docker version [Docker Hub에서 Container 이미지 검색] : 내가 원하는 container image가 hub에 존재하는 지 검색. (예시는 nginx 검색) $ docker search nginx [컨테이너 이미지 다운로드 후 Image Layer 보기] System에 Docker가 설치되면 /var/lib 아래 docker 디렉토리가 있다. overlay2에 Container Image Layer가 들어간다. (1) container image를 확인 $ docker images 혹은 $ docker image ls 를 입력한다. (2) container image 다운로드 (예시는 ngin.. 2021. 8. 2.
[Docker] 2.Container(2) [컨테이너와 컨테이너 이미지의 구조] - 컨테이너는 하나의 Application 프로세스 - 컨테이너 1개 = Application 1개 - 컨테이너의 특징 : 완전하게 Application 들이 독립된 공간으로 분리되어 운영됨. ○ CPU, Memory, Network, Disk 등 H/W 리소스를 각각 따로 가지고 있다. ○ 또한, 사용되는 Hostname, User ID 도 모두 독립적. - 즉, Frontend 단의 Node.js 는 PHP, MySQL(DB)에 동작되면서 영향을 주지 않는다. [Docker Architecture] ※ Docker Host : Docker Daemon이 동작되고 있는 리눅스 커널이 있는 시스템 ○ Docker가 Container들을 실행할 수 있는 Platform.. 2021. 7. 30.
[Docker-실습] 1.Install Docker Engine on CentOS7 [Docker사이트 공식 설치 메뉴얼(리눅스)] - https://docs.docker.com/engine/install/ 1. OS 요구사항 - CentOS 7 or 8 Version 2. 이전 버전 제거 $ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine ※ /var/lib/docker/이미지, 컨테이너, 볼륨 및 네트워크를 포함한 의 내용 은 보존됩니다. 3. 저장소 설정 새 호스트 시스템에 처음으로 Docker Engine을 설치하기 전에 Docker 저장소를 설정해야 합.. 2021. 7. 29.
[Docker] 1.Container 1. 왜 리눅스에서 운영해야 하는가? - 리눅스 커널의 기능을 기반으로 컨테이너가 만들어짐. (1) chroot : 독립된 공간을 형성 (2) namespace : 독립된 공간에 6가지 isolate를 제공 (각 컨테이너가 마치 하나의 가상 시스템인 것처럼) (3) cgroup : 필요한만큼의 H/W를 지원. ※ Container Engine : Linux Kernel에 있는 Storage, Namespaces, Networking 을 Docker Platform 에서 쓸 수 있도록 지원해주는 것이 Container Engine이다. ※ Windows와 MacOS에는 kernel이 없으므로, Hypervisor 를 활성화시켜서 그 위에 Container를 돌린다. 즉, 라이센스 비용이 들어가지 않는 Li.. 2021. 7. 29.
[Kubernetes] 1 . GCP(Google Cloud Platfrom)에 Kubernetes 구성 [이론] (1) Kubeadm : 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구. 여러 대 서버를 쿠버네티스 클러스터로 손쉽게 구성할 수 있다. - 여러 대의 마스터 노드를 구성하고 그 앞에 로드밸런서. - 워커 노드들이 마스터 노드에 접근할 때는 로드밸런서를 거쳐 접근 - 쿠버네티스 클러스터의 데이터 저장소 역할을 하는 etcd 클러스터를 마스터 노드에 함께 설치해서 운용하는 방법. - 스택 etcd 라고 한다. - 필요에 따라 etcd 클러스터를 마스터 노드가 아닌 다른 곳에 구성해두고 사용할 수 있다. (2) Kubespray : 상용 서비스에 적합한 보안성과 고가용성이 있는 쿠버네티스 클러스터를 배포하는 오픈 소스 프로젝트. - Kubespray는 서버 환경 설정 자동화 도구인 앤서블(an.. 2021. 7. 15.
[GCP]Google Cloud Certified Associate Cloud Engineer (4) - Interacting with Google Cloud Platform Interacting with Google Cloud Platform 1. Interacting with Google Cloud Platform GCP를 이용하는 4가지의 방법이 있다. (1) Cloud Platform Console - Web-based administrative user interface. - GCP에 응용 프로그램을 빌드한다면, 당신은 이것을 사용해야 할 것이다. 그러나 응용 프로그램의 End user들은 그렇지 않다. - 이것을 이용하면 당신은 모든 당신의 프로젝트와 이들이 사용하는 모든 리소스를 보고 관리할 수 있다. 또한 GCP 서비스의 API들을 활성화하고 비활성화하고 탐색 할 수 있다. (2) Cloud Shell and Cloud SDK - GCP의 CLI 도구이다. 이는.. 2021. 5. 31.
[GCP]Google Cloud Certified Associate Cloud Engineer (3) - IAM (Identity and Access Management) IAM (Identity and Access Management) [IAM] : 관리자는 특정 리소스에 대해 조치를 취할 수 있는 사람을 승인할 수 있다. 1. Who - Google Account, Google Group, Service Account, entire G Suite, 또는 Cloud Identity Domain (1) Google account or Cloud Identity user (2) Service account (3) Google group (4) Cloud Identity or G Suite Domain 2. Can do what IAM Role 에 따라 정의, IAM Role은 Permission들의 모음. - 대부분의 경우 의미 있는 작업을 수행하려면 둘 이상의 권한이 필요.. 2021. 5. 29.
[GCP]Google Cloud Certified Associate Cloud Engineer (2) - Module Introduction Module Introduction 1. IAM - Google Cloud ID 및 액세스 관리를 사용. - IM 또는 IAM 이라고도 하며 누가 무엇을 할 수 있는지 제어. - 선택한 여러 인터페이스를 사용하여 연결. 2. Project - GCP에서 사용하는 리소스를 구성하는 주요 방법. - 관련 리소스를 그룹화. 일반적으로 공통된 비즈니스 목표가 있기 때문. 모든 GCP 리소스는 프로젝트에 속한다. 프로젝트는 청구 활성화 및 추가 및 제거, API 관리와 같은 GCP 서비스를 활성화하고 사용하기 위한 기초이다. 각 프로젝트는 별도의 구획이며 각 리소스는 정확히 하나에 속한다. 프로젝트에는 다른 소유자와 사용자가 있을 수 있다. 별도로 구축되며 별도로 관리된다. - 각 GCP의 프로젝트에는 사용자가 .. 2021. 5. 29.
[GCP]Google Cloud Certified Associate Cloud Engineer (1) Why choose GCP(Google Cloud Platform) ? [ Regions and Zones ] 영역을 지역 내의 단일 장애 도메인으로 생각하십시오. 내결함성 애플리케이션 구축의 일환으로 한 지역의 여러 영역에 리소스를 분산 할 수 있습니다. [ Product and Services ] GCP, Compute Engine (1) Compute Engine (2) Kubernetes Engine (3) App Engine (4) Cloud Functions GCP, Storage (1) Bigtable (2) Cloud Storage (3) Cloud SQL (4) Cloud Spanner (5) Cloud Datastore GCP, Big Data (1) Big Query (2) Pub/S.. 2021. 5. 29.