클라우드 & NoSQL 23

우분투에 Kubernetes 설치하기 (Installing Kubernetes on Ubuntu)

Spec - OS : ubuntu server 20.04 - vm : 2vm(2core, 4mb, 50GB) (master node, worker node) K8s 설치 이전에 Docker 설치를 우선 진행 한다. Before installing K8s, install Docker first. OS의 기본 환경 설정은 minimal로 설치 후 openssh 정도만 설치 해 주었다. ※ 모든 설치는 root 계정으로 진행한다. 공통 요소 1. Docker 설치 더보기 repository 설정하기 apt package index를 업데이트 하고 HTTPS를 통해 repository 를 이용하기 위해 pakcage 들을 설치 한다. $ apt-get update $ apt-get -y install \ apt..

RUN, CMD, ENTRYPOINT 명령어의 개념과 차이점

도커 파일(Dockerfile) 작성시 사용되는 명령문 중에 실행과 관련된 명령어는 RUN, CMD, ENTRYPOINT 가 있다. 각각의 명령어를 쉽고 빠르게 이해해보자. RUN RUN 명령문는 쉘(shell)에서 커맨드를 실행하는 것처럼 이미지 빌드 과정에서 필요한 커맨드를 실행하기 위해 사용된다. 보통 이미지 안에 특정 소프트웨어를 설치하기 위해서 많이 사용된다. FROM python:lastest RUN apt-get -y install vim RUN pip instlal -r requirements.txt RUN useradd -r username 실행 시점 : 이미지 빌드 ENTRYPOINT ENTRYPOINT 명령문는 CMD 명령문와 비슷하지만, 컨테이너를 띄울 때 항상 실행되야 하는 커맨드..

vscode에서 Github 연동 방법(파일 업로드)

신규 파일을 github에 업로드하는 방법 1. Github 레파지토리 생성 레파지토리 이름과 공개 유무 선택 후 README 체크 박스 선택시 기본 main Branch가 생성이 된다. 2. 생성된 레파지토리 URL을 복사한다. 3. vc code에서 해당 프로젝트 실행 후 레파지토리 초기화 4. 변경 사항 추가 및 커밋 + 버튼을 이용하여 변경 사항 -> 스테이징된 변경 사항으로 파일 이동 변경 내용에 대한 메시지를 입력 후 커밋 버튼을 누르면 로컬 Git에 커밋이 된다. ※ 변경 사항에서 + 버튼을 누르면 전체 파일을 일괄 추가를 할 수 있다. 5. 아래의 순서대로 명령어 실행 ※ Git의 기본 레파지토리는 mater 이기 때문에 Github 레파지토리인 main으로 변경 해주어야 한다. # 프로젝..

Docker log file 주기적으로 삭제 및 관리(logrotate 사용)

Docker container가 실행이 되고 삭제가 되기 전까지 로그파일은 용량을 지속적으로 차지한다. 그래서 주기적으로 로그파일을 백업 및 삭제 하는 방법을 알아보자. log 파일은 아래의 경로에 위치해 있으며 현재 로그 파일의 용량을 확인해보자. 1. container 용량 확인 # root 계정 필요 $ cd /var/lib/docker/containers/ $ du -hs * 36K 33aac3be35570e29fa284cefd60f5ad0980b07c41e75978007bf18fdcb38f5da 40K 48b82fb406673de55538fdf7f60dba0e74bc68508d77dfd6a6aa326f63e864b2 36K 69d6eeb5e635774976bc8aa5bd9fe9d3958b3e7c..

Docker, Docker-compose 수동 설치(Centos, ubuntu)

인터넷이 제공되지 않은 환경에서 Docker를 설치 해야 하는 경우가 발생한다. 그럴 경우 설치 파일을 미리 다운로드 받아서 설치를 진행 하면 된다. 1. CentOS 7.5 기준 설치 방법 - 인터넷이 제공되는 Centos 7.5 OS에서 아래와 같이 명령어를 통하여 rpm 파일을 다운로드 및 설치 한다. - Docker repository에 필요한 yum-utils 및 기본 도구 다운로드 및 설치(root 계정 기준) $ yum install -y yum-utils device-mapper-persistent-data lvm2 --downloadonly --downloaddir=/root/rpms/yum-utils $ cd /root/rpms/yum-utils $ rpm -Uvh --replacepk..

Elasticsearch Query

Elasticsearch를 사용하다 보면 Query를 자주 사용하게 된다. 최근 버전에서는 SQL 구문이 사용 가능하지만, 일반적으로 자주 사용하는 몇가지 쿼리를 알아보자. 쿼리는 Kibana에서 사용시 나타내는 방식으로 작성 하였으며, curl or API 사용시에도 동일하게 사용된다. ※ 엘라스틱 버전은 5.4 버전 기반이며, 최근버전에서는 type값 없이 조회가 가능하다. 조회 조회시 match와 term을 주로 많이 사용하며, 두가지의 사용 방법과 차이점에 대해서 알아보겠습니다. match 쿼리는 단어들이 최소 1개라도 들어 있다면 검색 결과에 포함 됩니다. # must를 사용해 2개이상의 조건을 포함할 수 있다. GET {index}/{type}/_search { "query": { "bool"..

Docker 명령어 정리

Docker를 사용하는데 자주 쓰이는 명령어 정리 입니다. Docker Image 목록 보기 # 아래의 2가지 명령어로 사용됨 $ docker image list $ docker image ls Image 가져오기 $ docker pull [image name]:[tag] # 예시 $ docker pull ceontos:7 Dockerfile 빌드 # -t 옵션을 입력하면 name tag를 등록할 수 있다. $ docker build -t [nametag] [경로] # 예시(현재 경로에 있기 때문에 . 사용) $ docker build -t docker/django . 컨테이너 생성 및 실행 run과 start의 차이는 run의 경우는 새로운 컨테이너를 생성하고 실행을 하지만, start 이미 생성된 컨..

Django & Nginx를 도커(Docker)로 실행하기 (with. docker-compose)

Django와 Nginx 도커 이미지(Image)를 생성하고, Docker-Compose를 이용하여 실행하고 관리하는 방법을 알아보자. Django의 Docker 이미지(Image)를 생성 해보자. 먼저 Docker의 폴더 구조를 먼저 확인해보자. docker_web ├─docker-compose.yml │ ├─django │ │ db.sqlite3 │ │ Dockerfile │ │ uwsgi.ini │ │ manage.py │ │ server.py │ │ requirements.txt │ │ │ ├─django │ │ │ settings.py │ │ │ urls.py │ │ │ wsgi.py │ │ │ __init__.py │ │ │ templates │ │ └──static │ │ │ └─applic..

SVN Lock 걸렸을때 해제 방법

SVN을 사용하다 보면 Lock이 걸려 커밋도 업데이트도 안되는 경우가 발생 합니다. 이럴 경우 해결 하는 방법을 알려드리겠습니다. lock이 걸린 폴더로 이동 wc.db 파일을 sql lite DB Browser 등을 이용하여 내용 확인 wc.db 내에 WC_LOCK, WORK_QUEUE 테이블 확인 SVN이 정상일 경우에는 이 두 테이블에는 아무런 데이터가 없어야 합니다. LOCK이 걸렸을 경우 이 두 테이블에 에러가 발생한 파일들 정보가 들어 있습니다. DELETE 쿼리를 이용하여 두개의 테이블을 삭제합니다. DELETE FROM WC_LOCK DELETE FROM WORK_QUEUE 변경 사항을 저장하고 LOCK 걸린곳에서 cleanup을 진행 후 update를 실행하게 되면 lock이 해제되어 ..

Cisco Nexus Set Config(nxapi, snmp)

대상 장비는 Cisco Nexus 9000 Switch 입니다. 개발 환경을 구축 하기 위해 Nexus 9000 Switch에 필요한 Config 정보를 세팅 하는 방법을 알아보겠습니다. 3K, 5K, 7K, 9K 등 다른 버전에도 대부분 동일하게 적용 됩니다. 1. Enable the NX-API nxapi feature. NX-OS의 경우 nxapi 기능이 있기 때문에 rest api를 이용하여 command 정보를 json 포맷으로 쉽게 조회가 가능하다. 기본적으로 disabled로 되어 있기 때문에 enabled하는 방법을 알아보겠습니다. N9K# conf t N9K# feature nxapi N9K# show feature | inx nxapi 참고 사이트 www.cisco.com/c/en/us..