일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 동시성
- Refactoring
- BlockChain
- guru
- 전문가를 위한 파이썬
- 알고리즘
- Container
- Python
- RabbitMQ
- rust
- IMAGE
- dockerfile
- AWS
- 이더리움
- fluent python
- 백준
- 러스트
- Thread
- Network
- Algorithm
- docker
- 블록체인
- BAEKJOON
- 플랫폼
- Ethereum
- 코어 이더리움 프로그래밍
- 파이썬
- Kubernetes
- function
- Fast API
- Today
- Total
글쓰기 | 방명록 | 관리 |
목록Infra (12)
Victoree's Blog
Kubernetes 리소스의 관리와 설정 Namespace : 리소스를 논리적으로 구분하는 장벽 Namespace란? 도커나 스웜모드 사용 시, 컨테이너를 논리적으로 구분하는 방법이 없음 포드, 레플리카셋, 디플로이먼트, 서비스 등의 쿠버네티스 리소스들이 묶여있는 하나의 가상공간 또는 그룹 리소스들을 구분지어 관리할 수 있는 논리 그룹 같은 네임스페이스 내의 서비스에 접근할때만 서비스명으로 접근 가능함 ..svc 기본적으로 default, kube-system, kube-public 세 개의 namespace가 생성됨 서비스, 레플리카셋과 같은 리소스들도 네임스페이스에 별도로 존재함 kube-dns(파드나 서비스등을 이름으로 찾을 수 있도록 하는 서비스)도 kube-system내에 존재 Namespace..
Kubernetes 시작하기 Kubernetes 고유 특징 모든 리소스는 오브젝트 형태로 관리 아래 요소들을 모두 오브젝트라고 간주함 서비스 : 컨테이너의 묶음 파드(Pods) : 컨테이너의 집합 컨트롤러(Replica Set) : 컨테이너의 집합을 관리하는 컨트롤러 사용자(Service Account) 노드(Node) 여러개의 컴포넌트로 구성 쿠버네티스 노드 마스터 : 클러스터를 관리 API-Server, 컨트롤러 매니저, 스케줄러, DNS Server, 프록시, 네트워크 플러그인 워커 : 애플리케이션 컨테이너가 생성 kubelet : 클러스터 구성을 위한 에이전트 Pod : 컨테이너를 다루는 기본 단위 컨테이너 어플리케이션의 기본 단위 하나의 완전한 어플리케이션 1개 이상의 컨테이너로 구성된 컨테이너..
Docker는 Virtual machine이 아니다! $ docker run --name ubuntu_test ubuntu 위 명령어를 실행시켜보면, 쉘창에서는 아무 변화없고 우분투 서버도 실행되지 않고 있다 $ docker ps -a d8f31b2635d9 ubuntu "/bin/bash" 19 seconds ago Exited (0) 17 seconds ago ubuntu_test Status가 "Exited"임을 볼 수 있다 도커 컨테이너는 Virtual Machine과 같이 하나의 온전한 서버를 제공하는 것이 아니라 명령을 실행하는 환경만 제공하고 그 명령을 실행할 뿐이다 우분투 컨테이너 실행 시, 서버를 실행시키는 것이 아니라 "/bin/bash"가 실행되는 것 일반적으로 OS를 실행시킨다? 기..
Docker Compose Docker Compose란? docker compose란 다중 컨테이너 도커 어플리케이션을 정의하고 실행하기 위한 도구 컨테이너를 이용한 서비스의 개발과 CI를 위해 여러 개의 컨테이너를 하나의 프로젝트로서 다룰 수 있는 작업 환경을 제공 여러 컨테이너의 옵션과 환경을 정의한 파일을 읽어 순차적으로 컨테이너를 생성함 $ docker-compose up Docker Compose 파일 작성하기 yml이 무엇일까 YAML ain't markup language의 약자 일반적으로 구성 파일 및 데이터가 저장되거나 전송되는 응용프로그램에서 사용됨 XML이나 json 포맷으로 많이 쓰였으나, 좀더 가독성있는 포맷으로 나타난게 yaml임 docker-compose.yml $ do..
Docker Swarm 도커 스웜 도커 스웜을 사용하는 이유 여러 대의 서버를 클러스터로 만들어 자원을 병렬로 확장 및 관리하기 적당한 성능의 서버 여러 대를 자원 풀로 만들어 사용 가능함 여러 대의 서버를 하나의 자원의 풀로 만든다는 것 새로운 서버나 컨테이너가 추가되었을 때, 이를 발견(Service Discovery)하는 작업 어떤 서버에 컨테이너를 할당할 것인가에 대한 스케줄러와 로드밸런싱 문제 클러스터 내의 서버가 다운되었을 때 고가용성을 어떻게 보장할 것인가 도커 스웜과 스웜 모드 두 가지 솔루션이 존재함 스웜 클래식과 도커 클래식 여러 대의 도커 서버를 하나의 클러스터로 만들어 컨테이너를 생성하는 기능을 제공 컨테이너를 특정 도커 서버에 할당할 수있고, 유동적으로 서버를 확장할 수 있음 분산..
DockerDemon 도커 데몬 명령어 # service docker start # service docker stop 우분투 도커 설치시 자동으로 서비스 등록됨 호스트가 재시작되더라도 자동 실행 레드햇 계열 자동 실행으로 설정되지는 않음 $ systemctl enable docker 수행 시, 자동으로 서비스 활성화됨 도커 서비스는 dockerd로 데몬을 실행함 /usr/bin/dockerd에 명령어가 존재함 API listen on /var/run/docker.sock 소켓이 입력을 받을 수 있는 상태가 되었음을 뜻함 도커 데몬 설정 도커 데몬 제어 : -H 기본 설정 docker demon 실행 시 도커 클라이언트(/usr/bin/docker)를 위한 유닉스 소켓인 "/var/run/docker.s..
Dockerfile 이미지 생성 방법 기본 플로우 아무것도 존재하지 않는 이미지(우분투, CentOS 등)로 컨테이너를 생성 어플리케이션을 위한 환경을 설치하고, 소스코드 등을 복사해 잘 동작하는 것을 확인 컨테이너를 이미지로 커밋 위 방법은 어플리케이션 동작 환경 구성을 위해 일일히 수작업으로 패키지 설치 및 소스코드(Git) 복사가 필요함 도커에서는 build 명령어 기반으로 이미지 생성이 가능 컨테이너에 설치해야하는 패키지, 추가해야하는 소스코드, 실행 명령어와 쉘 스크립트 등을 한 파일[Dockerfile]에 기록 도커는 Dockerfile을 읽어 컨테이너에서 작업 수행 후 이미지를 생성함 Dockerfile은 한줄이 하나의 명령어, 명령어를 명시한 뒤 옵션을 추가하는 방식 Dockerfile 예..
1. 도커 허브란 도커가 공식적으로 제공하는 이미지 저장소 docker create / run / pull 을 수행할 때, 도커 허브에서 해당 이미지를 검색한 후 내려받음 공식 라벨이 없는 이미지는 사용법을 찾을 수 없거나 제대로 동작하지 않게됨 $ docker search를 통해서 도커 엔진에서 이미지를 찾을 수 있음 2. 도커 이미지 생성 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 이미지 테그를 입력하지 않을 시, default는 latest docker commit \ > -a "victoria.k" -m "my_first_commit" \ > commit_test \ > commit:first a : author 이미지의 작성자를 나타내는 메타데..
1. Docker Logging 컨테이너의 표준 출력(StdOut)과 에러(StdErr) 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 명령어를 제공함 $ docker logs [컨테이너명] 컨테이너 내부에서 출력을 보여주는 명령어 $ docker logs --tail n [컨테이너명] : 최근 n개의 줄의 로그만 보여줌 $ docker logs -f [컨테이너명] : 로그를 스트림으로 확인할 수 있음 로그 저장방식 컨테이너 로그는 JSON 형태로 도커 내부에 저장됨 --log-opt 옵션으로 컨테이너 Json 로그 파일의 최대 크기를 지정할 수 있음 docker run -it --log-opt max-size=10k --log-opt max-file=3 --name log-test ubuntu..
1. 도커 네트워크 구조 1) $ ifconfig 리눅스 시스템의 네트워크 관리를 위한 필수 유틸리티 현재 시스템에 설정되어 있는 네트워크 인터페이스를 설정 또는 확인하는 명령어 서버가 통신하기 위해서는 네트워크 인터페이스(NIC, 랜카드)가 있어야 함 이를 설정, 변경, 확인하는 명령어 확인가능한 NIC 상황 내역 MAC 주소 eth0에 할당된 IP 주소 브로드캐스트 서브넷마스크 MTU (Maximum Transfer Unit) RX packets (부팅 후 현재까지 받은 패킷수) TX packets (부팅 후 현재까지 보내진 패킷 수) Collisions Interrupt 주소 현재 up 되어 있는지. 특정 네트워크 인터페이스의 UP/DOWN 가능 2) 도커 네트워크 컨테이너 내부에 IP를 순차적으로..