개요 급격하게 확대되고 있는 오픈소스 시장에서 소프트웨어 업그레이드를 이용한 공격사례가 증가하고 있다. 어떠한 악성 코드가 반영되어 있는지 확인하기 어렵고, 어떠한 소프트웨어가 설치되어 있는지 확인하기 어려운 상태에서 인터넷 상에 떠도는 오픈소스 소프트웨어를 업그레이드 하거나, 파일을 반입하는 것은 공격의 대상으로 타켓팅 될뿐 아니라, 때로는 심각한 정보들를 유출하는 심각한 문제를 초래하기도 한다. 따라서 오픈소스를 구축하고 운영할 경우 업그레이드 관리에 많은 비용과 시간을 투자해야 함을 반드시 인지해야한다. 도커 이미지 역시 마찬가지이다. 이미지 내부에는 어떠한 파일과 소프트웨어가 설치되어 있는지 판단하기 어려운 상태에서 반입하는 경우가 많다. 따라서 이미지는 도커 허브와 같은 공식 사이트에서 검증된 ..
서론 마이크로서비스 환경에서 서비스를 잘 모델링하는 것 만큼 중요한 것이 바로 컨테이너 이미지를 설계하는 것이다. 어플리케이션을 잘 설계하여 소스도 경량화 되고, 확장성을 확보했다고 생각할 수 있지만, 사실은 어플리케이션을 감싸고 있는 컨테이너 이미지가 최적화되어 있지 않을 경우 어플리케이션의 경량화는 의미가 퇴색될 수 있다. 지금부터 살펴볼 내용은 컨테이너 이미지를 생성할때 고려해야 할 사항에 대해 본인의 노하우를 섞어 알아보도록 하자. 첫번째, 경량화 역시나 첫번째로 고려해야 할 부분은 바로 컨테이너 이미지의 경량화이다. 이미 수도 없이 강조했지만, 컨테이너 이미지는 작으면 작을 수록 좋다. Scalability를 강조하기 위해서는 무엇보다 가벼운 이미지가 중요하며 경량화를 위한 노력을 무엇보다 지속..
docker container는 host kernel을 공유하지만, 때로는 구분된 limit 정보를 구성해야할 경우가 발생한다. 예를 들어, nofile(open files)나 nproc(max user processes)의 경우 application의 요구사항에 따라 또는 솔루션의 요구사항에 따라 변경하여 적용할 필요가 있다. 아래는 docker container를 사용할 경우 ulimit을 일괄 변경하는 방법에 대해 알아보도록 하자. systemctl show docker 먼저, docker의 variable 정보를 확인한다. [root@ip-192-168-114-198 ~]# systemctl show docker Type=notify Restart=always NotifyAccess=main Re..
Docker는 기본 네트워크 대역을 172.17.xxx.xxx 대역을 사용한다. 이로 인해 내부망 환경이 구성된 경우 대역폭의 충돌이 발생할 수 있다. Network 대역의 충돌이라 표현했지만, 사실상 서로 다른 대역의 network라 볼 수 있다. 이로 인해 동일한 대역을 사용하는 두 영역간의 문제를 야기하는 것이 아닌 Docker를 기동한 서버에서 두 대역으로의 Out Bound Traffic에 문제를 발생 시킬 수 있다. 다음은 Docker로 기동된 Network 대역의 IP이다. [root@ciserver ~]# ifconfig -a br-36ef81a5d01f: flags=4163 mtu 1500 inet 172.19.0.1 netmask 255.255.0.0 broadcast 0.0.0.0 i..
개요 본 포스팅에서는 Docker 이미지 빌드를 위한 Dockerfile 작성 시 유의할 3가지 종류의 태그에 대해 살펴보도록 하자. Dockerfile은 Docker Image를 생성하기 위한 Docker Container의 형태를 정의하는 Template이라 할 수 있다. Admin은 Dockerfile에 정의된 태그를 기반으로 Docker Image를 생성하며, Docker Image는 실제 Container 서비스로 동작하게 된다. 즉 Image를 어떻게 생성하느냐에 따라 서비스 형태가 달라지고 유지보수 효율성을 확보할 수 있는지 결정되기 때문에 이는 컨테이너 서비스를 제공하기 위한 중요한 고려사항이라 할 수 있다. Dockerfile을 작성하기 위한 요소 중 다음에서 다룰 3가지 사항은 비슷한 ..
개요 컨테이너가 IT 시장을 잠식한지 벌써 수년이 흘렀다. 빠른 흐름의 변화에 따라 많은 프로젝트에서는 컨테이너 이미지를 적용하고 활용하고 있다. 특히 Docker는 대표적인 컨테이너 플랫폼으로 DockerHub라는 강력하고 다양한 이미지 레지스트리를 보유하고 있어 많은 사용자에게 Docker를 알리고 있다. 최근 흐름은 사실 Java와 맞먹을 정도의 인지로를 갖고 있다고 할까나.. 이러한 강력한 Docker Container를 활용하고 있지만, 한가지 심각한 문제점을 갖고 있다. 바로 컨테이너 이미지는 누가 작성한 것이고 어떻게 작성한 것인지 파악하기 어렵다는 점이다. 물론 Dockerfile 정보와 DockerHub의 Manifest 정보를 활용할 수도 있지만, 여전히 어떠한 파일이 사용되었는지는 알..
도커 이미지를 사용하여 빌드/배포를 수행하면, 버전 관리, 동일한 환경 항상 유지, 이관 편의성 등 다양한 장점을 갖고 있다. 이러한 이유로 도커 이미지는 도커 컨테이너로 기동되고 빌드/배포 자동화를 통해 손쉬운 개발 환경으로 사용되고 있다. 다만, 도커 이미지의 관리를 위해, 퍼블릭 공간의 DockerHub, 프라이빗 공간의 Docker Registry (Nexus3, Docker Image 등)는 무한으로 확장 가능한 공간을 제공하지는 않는다. 이로 인해 불필요한 이미지를 삭제하고 리소스 공간을 확보하는 것이 중요하다. 이미지의 경량화는 사실상 클라우드 환경에서 확장성과 민첩성을 높이기 위해 매우 중요한 요소이지만, 작은 이미지라도 500MB, 1GB 수준의 파일들이 매 빌드, 매 배포 마다 누적 된..
서론 앞선 포스팅에서 docker save와 docker load 그리고 docker export와 docker import 명령어를 사용하는 방법에 대해 살펴보았습니다. [Docker Command] docker 명령어 뽀개기 간단히 명령어에 대해 리마인드를 진행해 보자면 다음과 같습니다. 1) docker save / load (docker image를 tar 파일로 추출) [root@CIServer sysconfig]# docker save https:v1.1 -o save.tar [root@CIServer sysconfig]# ls -la save.tar -rw-------. 1 root root 167019008 Dec 2 01:08 save.tar [root@CIServer sysconfig]..
서론 본 포스팅에서는 Docker Container의 Exit Code에 대해 알아보도록 하겠습니다. 아래는 Kubernetes를 Kubespray로 기동한 이후의 docker ps 결과입니다. 아래와 같이 Docker Process 중 일부에서 Exited (n) About an hour ago 라는 메시지가 출력되는 것을 확인할 수 있습니다. 개인적으로도 Kubernetes를 처음 설치했을때 위와 같은 Exited Code 들이 혹시 설치가 제대로 되지는 않았던 것인지? 의문이 생기기도 했었으니 아마 저와 비슷한 고민을 하시는 분들이 더러 있을 것이라 생각됩니다. 먼저 결론부터 말하자면, Docker Process에 나타나는 Exit Code 들은 Bash Script의 Exit Code를 따라가며,..
Cgroup 드라이버 cgroups(control groups의 약자)는 프로세스들의 자원의 사용(CPU, 메모리, 디스크 입출력, 네트워크 등)을 제한하고 격리시키는 리눅스 커널 기능입니다. [root@ciserver ~]# ls -la /sys/fs/cgroup total 0 drwxr-xr-x. 13 root root 340 Sep 17 05:28 . drwxr-xr-x. 7 root root 0 Sep 17 05:28 .. drwxr-xr-x. 2 root root 0 Sep 17 05:28 blkio lrwxrwxrwx. 1 root root 11 Sep 17 05:28 cpu -> cpu,cpuacct drwxr-xr-x. 2 root root 0 Sep 17 05:28 cpu,cpuacct ..
- Total
- Today
- Yesterday
- 아키텍처
- kubernetes
- SWA
- MSA
- 쿠버네티스
- 마이크로서비스 아키텍처
- OpenStack
- node.js
- Docker
- aa
- k8s
- 마이크로서비스
- 오픈스택
- TA
- jeus
- API Gateway
- openstack tenant
- SA
- webtob
- nodejs
- JEUS6
- wildfly
- Da
- git
- Architecture
- JBoss
- JEUS7
- openstack token issue
- aws
- apache
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |