전체 글 74

컨테이너 실행 단계, 도커 컨테이너와 도커 볼륨 생성하기, 도커 네트워크 이해하기

컨테이너 실행 단계 컨테이너 이미지 작성: 도커(Docker) 이미지가 가장 일반적으로 사용된다. 필요한 경우, Dockerfile을 작성해서 이미지를 빌드한다. 컨테이너 오케스트레이션 플랫폼(Kubernetes) 설정으로 컨테이너 자동 확장 및 배포 설정 Ex) GKE 컨테이너 클러스터 구성 컨테이너 배포: 이미지를 사용해서 애플리케이션 클러스터에 배포 모니터링: 컨테이너 실행되면 오케스트레이션 플랫폼으로 컨테이너 상태, 로그, 성능 등을 모니터리하고 관리한다. 도커 컨테이너와 도커 이미지 이미지: 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것이다. 여러 개의 계층으로 된 바이너리 파일로 존재하고, 컨테이너를 생성하고 실행할 때 읽기 전용으로 사용된다. 도커 이미지는 컨테이너를 실행하기 위..

DevOps/Docker 2023.07.14

도커 컨테이너 생성하기

다음 명령어를 순서대로 입력한다. # 설치된 도커 엔진 버전 확인 docker -v docker run -it ubuntu: # 도커 허브에서 이미지를 내려받는다 # 파일 시스템 확인 ls exit # 이미지 다운 확인 docker pull # 도커 엔진 이미지 목록 출력 docker images # 컨테이너 이름을 지정하여 생성 # docker -i -t: 컨테이너 내부로 진입하도록 attach 가능한 상태 및 표준 입출력이 활성화되어 상호작용이 가능한 셸 환경 설정 # docker -: Detached 모드(컨테이너를 백그라운드에서 동작)로 실행. 입출력이 없는 상태로 컨테이너를 실행 docker create -it --name # 컨테이너 시작 docker start # 컨테이너 내부로 들어감 do..

DevOps/Docker 2023.07.14

도커를 터미널에서 설치하기

1. 다음 명령어를 순서대로 입력한다. # root 사용자로 변경 sudo su - # 원격 Git 저장소를 로컬에 복제 git clone https://github.com/Kyeongrok/docker_minikube_kubectl_install cd docker_minikube_kubectl_install/ sh docker_install.sh cd git clone [https://github.com/](https://github.com/kny3037/spring-boot)[아이디]/[레포지토리] cd spring-boot # repository에 새로 추가된 패키지를 업데이트 apt update apt install maven # maven 패키지 설치 vim Dockerfile # vim: te..

DevOps/Docker 2023.07.14

[Git] push 시 [!rejected] 에러가 뜬다면 어떻게 해결할까?

push 시 [!rejdcted] 에러가 뜬다면? pull 안 받고 push 해서 뜨는 에러다. 지금 로컬 레포가 최신버전이라면 (즉, git이 내 로컬버전으로 덮어써져도 된다면) git push origin +main으로 강제 푸시해서 해결한다! # 로컬 레포지토리의 main 브랜치를 원격 origin 저장소의 main 브랜치에 강제로 푸시 git push origin +main "[!rejected]" 에러가 발생하는 경우는 일반적으로 원격 저장소에 이미 변경된 내용이 있어서 push 작업이 거부되어 발생한다. push를 강제로 수행하여 해당 에러를 해결할 수 있다.

Git 2023.07.14

[Git] Git vs SVN

커밋은 커밋 객체에 변경사항만 부분적으로 저장하지 않고 변경된 파일이 통째로 저장된다. SVN(Subvision)과 같은 버전 관리 시스템과 Git의 차이는 Git이 커밋에 변경된 부분만 저장하는 것이 아니라 전체 코드를 저장한다는 것이다. SVN(Subvision): 차이점만 저장하는 방식으로 맨 처음까지 거슬러 올라가며 바뀐점을 모두 반영하는 계산을 해야 한다. Git: 이전 버전에서 바뀐 커밋과 비교해서 연산을 한 번만 하고 이전 파일의 링크만 저장하기 때문에 용량도 적다는 특성이 있다. add . 한 후 commit(변경사항의 묶음으로 버전 저장)을 하는데 add 하면 untracted > staged 상태로 바뀐 뒤에 commit 할 수 있게 된다. add는 수정하지 않은 상태여도 일단 스테이지..

Git 2023.07.14

[Git] Git 초기설정, 인텔리제이에 깃을 연동하고 로컬 저장소에서 원격 저장소에 커밋하기

Git과 GitHub Git: 소스코드 버전 관리 시스템. 버전(내가 원하는 시점)으로 이동할 수 있게 하는 툴이다. GitHub: Git으로 관리하는 프로젝트를 올려둘 수 있는 클라우드 서버 서비스를 제공하는 Git 호스팅 사이트이다. 오픈소스: GitHub에 소스코드를 올려두면 시공간의 제약 없이 협업할 수 있다. 누구든지 기여할 수 있는 공개저장소 프로젝트를 오픈소스라고 한다. 클라우드 서비스란? 클라우드 서비스는 내 하드디스크가 아닌 인터넷을 통해 이용할 수 있는 서비스를 말한다. 어디서나 내가 올린 파일에 접근할 수 있다. 클라우드 컴퓨팅은 데이터 처리 또는 데이터 저장을 내 컴퓨터가 아닌 외부의 다른 컴퓨터로 하는 것을 의미한다. 초기 설정 github에 가입한다 git 설치 후 git bas..

Git 2023.07.14

[GCP] GKE 모니터링 로깅 솔루션

병목현상(bottleneck) 병목현상이란 병의 목 부분처럼 넓은 길이 갑자기 좁아짐으로써 교통 정체 현상, 컴퓨터 성능 저하 현상이 일어나는 것이다. 대규모 데이터를 한 번에 내보냈을 때 메모리가 이를 소화하지 못해서 성능이 떨어지는 현상이다. 로깅과 모니터링 로깅과 모니터링은 애플리케이션의 동작과 이벤트를 기록하고 분석하는 과정이다. 로그는 애플리케이션 실행 중에 발생하는 다양한 정보를 기록한다. 로그를 적절하게 모니터링하고 분석하여 병목 현상이 발생하는 지점을 식별하여 병목 현상 해결에 기여할 수 있다. 로깅 에이전트(Logging Agent) 로깅 에이전트는 애플리케이션에서 생성되는 로그를 수집하고 중앙 로깅 시스템으로 전송한다. 로그 수집, 로그 형식 변환(JSON, CSV), 필터링, 전송 및..

Cloud/GCP 2023.07.14

[Docker] 윈도우11 환경에 도커 설치하기

윈도우 11 환경에서 도커를 사용하려면 Windows Terminal과 WSL2를 설치해야한다. 1. Windows Terminal 설치하기 Microsoft Store에서 Windows Terminal를 검색 후 다운로드한다. 2. WSL2 설치하기 PowerShell을 관리자 권한으로 실행하고 다음 명령어를 입력한다. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart winver dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 3. WSL2 업그레이드 아래 링크에서 패키지를 다운..

카테고리 없음 2023.07.14

[Kubernetes] 컨트롤러와 객체

바라는 상태(Desired State) 쿠버네티스는 사용자 요청에 따라 현재 상태가 바라는 상태와 동일해지도록 사전 정의된 작업을 수행한다. 따라서 쿠버네티스에 장애가 발생해서 애플리케이션이 죽더라고 Desired State에 의해서 배포 상태를 되살릴 수 있다. (자가 치유) 에어컨 시스템에 비유하면 현재 온도를 사용자가 바라는 희망온도에 따라 변경시키기 위해 에어컨(쿠버네티스)이 작동한다. 쿠버네티스에서는 YAML 형식을 이용해서 선언형 명령을 내린다. 사용자는 쿠버네티스에 명령을 전달할 때 YAML 파일에 프로퍼티(property)를 추가 또는 수정한다. 컨트롤러(Controller) 컨트롤러는 루프를 돌며 오브젝트들을 지속적으로 모니터링한다. 쿠버네티스에는 바라는 상태라는 개념이 있는데, 사용자가..

DevOps/Kubernetes 2023.07.14

[Kubernetes] 쿠버네티스와 도커 : 쿠버네티스와 도커의 차이점, 클러스터 운영체제, 쿠버네티스를 사용하는 이유

쿠버네티스(Kubernets, k8s) 여러 서버로 구성된 클러스터 환경에서 여러 개의 컨테이너들을 자동화 배포, 확장, 스케줄링으로 관리하기 위한 컨테이너 오케스트레이션 플랫폼이다. *오케스트레이션이란 여러 개의 서버 위에서 컨테이너의 라이프사이클을 관리하는 것이다. 여러 노드에 여러 개의 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하고 환경 변수를 설정 등을 통해 컨테이너를 관리한다. 컨테이너들을 여러 서버에 걸쳐 여러 개를 실행시키기 위해 오케스트레이션을 통해 관리한다. 쿠버네티스의 기능 하드웨어 추상화 컨테이너의 실행 및 배포 컨테이너 이중화와 가용성 보장 컨테이너의 오토스케일링 컨테이너의 스케줄링 컨테이너의 네트워크 설정 관리 컨테이너의 health 상태 모니터링 컨테이너의 설정..

DevOps/Kubernetes 2023.07.13