
이번글은 제가 클론코딩하면서 실습한 EKS에서 대해 전체적인 flow를 정리하고자 합니다. 그렇기에 해당 실습을 해보지 않은 분들은 글을 읽기 어려울수도 있습니다. https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR/10-intro Workshop Studio catalog.us-east-1.prod.workshops.aws 해당 링크를 통해 참고 워크샵 진행순서 AWS Cloud9을 통한 실습 환경 구축 도커를 이용하여 컨테이너 이미지 생성 컨테이너 이미지를 ECR에 업로드 Amazon EKS 클러스터 구축 및 서비스 배포 Container Insights 사용해보기 파드 및 클러..

항상 새로운 기술을 배우고 도입하는데 고민해야하는것이 있다 왜 기술을 사용해야하지? 라는 의문을 갖는다 지금도 k8s를 막 배우기 시작한 초짜인데 왜 k8s를 써야하는지 모르겠다. (아직 학부생이고, 현업정도의 스케일을 가진 app을 사용해보지 않아서 그런거 같음) 해당 글을 적으면서 왜 k8s를 사용해야 하는지 정리하려고 한다. 뇌피셜이 좀 있기때문에 틀린 내용이나 다르게 생각할 수 있음 Docker만으로 안되나? 물론 Docker만으로도 가능하다. 하지만 가벼운 어플리케이션에서만 가능한거 같다. 간단하게 WAS 서버 1개가 있고 그에 연결된 DB가 있는 간단한 프로젝트(학부생에서 할 수 있는 대부분 토이 프로젝트) 는 Docker로 컨티이너화 해서 하는것이 오히려 효울적이라 생각한다. k8s를 사용하..

컨테이너 쿠버네티스를 다루는데 가장 핵심적인 개념은 컨테이너임 지금까지 컨테이너화 까지 이루어지게된 배경이다 1. 예전에는 하나의 os에서 여러 APP을 구동 -> 리소스 할당문제 발생 2. VM 사용 -> 리소스 할당문제는 어느정도해결 -> 각 app마다 격리된 환경으로 보안 및 리소스 문제 해결 -> 하지만 VM각각 OS를 가지기에 무겁고 비효율적일 수 있음 3.컨테이너 -> VM가 큰 차이는 OS를 공유하기에 가볍다고 여겨짐 -> 격리된 환경제공 쿠버네티스(Docker와 비교) 나는 처음에 쿠버네티스랑 docker랑 같은 개념인줄 알았음 backend에서 spring,django와 같은 느낌인줄 하지만 docker랑 쿠버네티스는 완전 다른것임 docker는 app을 이미지화 해주고 해당 이미지를 통..
docker info 도커에 대한 상세 정보 [root@kubemaster kubespray]# docker info Client: Debug Mode: false Server: Containers: 22 Running: 20 Paused: 0 Stopped: 2 Images: 26 Server Version: 18.09.7 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log..
기존 DockerFile FROM openjdk:11-jre EXPOSE 9100 WORKDIR /usr/app ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java", "-jar", "-Xms2048M", "-Xmx2048M", "/app.jar"] FROM: openjdk:11-jre docker-hub에서 "openjdk:11-jre"이미지를 가져온다 (기존에 로컬에 있는경우는 해당 이미지를 pull하지 않고(dockerhub 들리지않고) 바로 가져옴) EXPOSE 9100 해당 EXPOSE는 실제 docker가 외부에 9100포트로 공개할것이다. 딱 여기서 끝임 이것만으로 "docker run"했을때 -p 옵션 주지 않으..

Docker Volume의 종류 도커 볼륨이라는것이 처음 공부했을때 좀 헷갈린 기억이 많은거 같아서, 특히 볼륨하고 바인드마운트가 헷갈려서 이참에 정리하려고 글씁니다. 일반적으로 컨테이너내에서 생성된 데이터는 컨테이너가 삭제될때 같이 삭제됩니다. -> memory에 저장되는것과 비슷한 느낌 개발하면서 경우에 따라 어떤 데이터는 컨테이너가 삭제/stop 되어도 유지되길 원하는 데이터가 있을 수 있음습니다. 그리고 해당 데이터 파일을 개발자가 직접 다루어 볼 수 있으면 좋은 데이터도 있을것이고 (바인드마운트) 저장만되도록 원하는경우가 있을것입니다.(볼륨) 즉 도커에서 데이터를 저장/보관 하는 방법을 정리하자면, 1. tmpfs mount (램 디스크) 와 같은 방식 2. Volume 3.Bind Mount ..

Docker가 뭔데? 도커란 리눅스 컨테이너 기반으로 만들어진, 오픈소스 가상화 플랫폼이다. 참고로 Go언어로 작성되었음 컨테이너?? 가상머신?? 가상머신(Virtual Machine) 가상머신란 다음 사진과 같이 하나의 HOST에서 여러개의 OS를 생성하는 방식이다. 각 할당받은 OS를 GuestOS라고 하며, 서로 완전히 독립된 공간을 할당받는다. 독립된 공간을 할당받는것은 좋지만, 각각의 GuestOS를 위한 library, Kernel등 OS에 필요한 파일들을 각각 가지고 있어야 하기에 크기가 무겁다고 할 수 있다 VM(Virtual Machine)의 한 예시이다. 리눅스를 구해오고싶었는데 잘안나옴... 다음과 같이 하나의 컴퓨터에서 Window를 여러개 띄운것을 확인할 수 있다. 컨테이너(Con..
https://velog.io/@sa1341/Jenkins%EC%97%90%EC%84%9C-EC2%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0 Jenkins에서 EC2로 배포하기 GitHub와 젠킨스를 SSH로 연동했다면, 이제 AWS(Amazone Web Service)에서 제공하는 가장 유명한 EC2(Elastic Compute Cloud)에 배포를 해봤습니다.먼저, Jenkins에서 제공해주는 플러그인 중에 SSH로 EC2에 jar 배포 velog.io ssh over설정