Network & Server Factory

개인 공부 기록

DevOps 24

[Docker] 컨테이너 네트워크와 볼륨 정리

컨테이너는 기본적으로 자기만의 네트워크와 파일시스템을 가집니다. 이 글에서는 컨테이너끼리 이름으로 통신하는 bridge 네트워크, 밖에서 접속하게 하는 포트 매핑, 컨테이너를 지워도 데이터를 남기는 볼륨과 바인드 마운트를 Redis 예제로 정리합니다.컨테이너부터 Kubernetes까지 시리즈 4편입니다. 이전 글은 [Docker] Dockerfile 작성과 멀티 스테이지 빌드 정리이고, 전체 순서는 시리즈 목차에 있습니다.1. 네트워크 드라이버1편에서 본 것처럼 컨테이너는 NET namespace로 자기만의 네트워크 인터페이스와 IP를 가집니다. 이 인터페이스를 어디에 연결할지 정하는 것이 네트워크 드라이버이고, 한 대의 호스트에서는 대부분 bridge를 씁니다. 방식동작용도bridge호스트 안에 가상 ..

DevOps/Docker 2026.09.28

[Docker] Dockerfile 작성과 멀티 스테이지 빌드 정리

Dockerfile은 이미지를 만드는 순서를 적은 파일입니다. 이 글에서는 명령마다 이미지에 무엇이 남는지, 빌드 캐시를 잘 타도록 순서를 정하는 방법, CMD와 ENTRYPOINT의 차이, 그리고 빌드 도구를 최종 이미지에서 빼는 멀티 스테이지 빌드를 Go 웹 서버 예제로 정리합니다.컨테이너부터 Kubernetes까지 시리즈 3편입니다. 이전 글은 [Docker] 이미지와 레이어 정리이고, 전체 순서는 시리즈 목차에 있습니다. 명령어 하나하나의 설명은 [Docker] Dockerfile 명령어 정리에 있습니다.1. Dockerfile이 이미지가 되는 과정docker build를 실행하면 현재 폴더(빌드 컨텍스트)를 BuildKit이라는 빌드 엔진에 보내고, Dockerfile을 위에서부터 한 줄씩 실행..

DevOps/Docker 2026.09.28

[Docker] 이미지와 레이어 정리

이미지는 컨테이너를 만드는 읽기 전용 틀이고, 여러 레이어를 겹쳐 만든 파일시스템입니다. 이 글에서는 레이어가 어떻게 쌓이고 공유되는지, 컨테이너가 파일을 바꿀 때 무슨 일이 일어나는지, 이미지 이름의 태그와 digest가 어떻게 다른지 정리합니다.컨테이너부터 Kubernetes까지 시리즈 2편입니다. 이전 글은 [Docker] 컨테이너 개념 정리이고, 전체 순서는 시리즈 목차에 있습니다.1. 이미지와 컨테이너이미지는 앱을 실행하는 데 필요한 파일과 실행 설정(어떤 명령으로 시작할지, 어떤 환경 변수를 쓸지)을 담은 읽기 전용 묶음입니다. 컨테이너는 이 이미지로 만든 실행 중인 인스턴스입니다. 붕어빵 틀 하나로 붕어빵을 여러 개 굽듯이, 이미지 하나로 컨테이너를 여러 개 띄울 수 있습니다. 항목이미지컨테..

DevOps/Docker 2026.09.28

[Docker] 컨테이너 개념 정리

컨테이너는 앱과 실행에 필요한 파일을 한 묶음으로 만들어, 호스트의 커널 위에서 격리된 프로세스로 실행하는 방식입니다. 이 글에서는 가상 머신과 무엇이 다른지, 리눅스의 namespace와 cgroup이 격리를 어떻게 만드는지, Docker가 어떤 구성 요소를 거쳐 컨테이너를 띄우는지 정리합니다.컨테이너부터 Kubernetes까지 시리즈 1편입니다. 전체 순서는 시리즈 목차에 있고, Docker 설치는 [Docker] Docker 설치와 자주 쓰는 명령어 정리를 참고합니다.1. 컨테이너가 필요한 이유"제 PC에서는 되는데 서버에서는 안 돼요"는 대부분 실행 환경 차이에서 생깁니다. 파이썬 버전, 설치된 라이브러리, OS 설정이 조금만 달라도 같은 코드가 다르게 동작합니다. 컨테이너는 앱과 앱이 쓰는 라이..

DevOps/Docker 2026.09.28

[CI/CD] GitHub, Jenkins, ArgoCD로 dev/prd 배포 아키텍처 설계

앞의 네 글에서 GitHub, Jenkins, ArgoCD를 하나씩 다뤘습니다. 이 글에서는 이 도구들을 묶어서, 브랜치 전략부터 dev와 prd 환경 분리, 커밋 push에서 AKS 자동 배포까지 이어지는 아키텍처를 설계합니다. 설계 위주의 글이고, 매니페스트 저장소 구성과 ArgoCD 설정은 실제로 만들어 검증한 결과를 함께 붙였습니다.1. 전체 아키텍처먼저 전체 그림입니다. 개발자가 코드를 push하면 Jenkins가 이미지를 만들어 ACR(Azure Container Registry)에 올리고, 매니페스트 저장소의 이미지 태그를 바꿉니다. 각 AKS 클러스터 안의 ArgoCD가 그 변경을 보고 자기 환경에 배포합니다.Jenkins는 ACR과 매니페스트 저장소까지만 다루고, 클러스터 반영은 각 AK..

DevOps/CI & CD 2026.09.27

[ArgoCD] ArgoCD 설치와 사용법 정리

ArgoCD는 Git에 적어 둔 매니페스트대로 쿠버네티스 클러스터를 맞춰 주는 배포 도구입니다. 이 글에서는 k3s 클러스터에 ArgoCD v3.5.3을 설치하고, 앱 등록, 첫 배포, 새 버전 배포, 롤백까지 직접 해 보면서 꼭 알아야 할 개념만 정리합니다.1. ArgoCD가 하는 일[CI/CD] CI/CD와 GitOps 개념 정리에서 정리한 것처럼, GitOps에서는 배포하고 싶은 상태를 Git에 커밋하면 클러스터 안의 에이전트가 그 상태를 가져와 적용합니다. 이 에이전트가 ArgoCD입니다. 그래서 ArgoCD를 쓰면 배포 명령을 직접 치는 대신 Git에 커밋하는 것이 배포가 됩니다. 처음 쓸 때 알아 둘 용어는 네 가지입니다. 화면과 CLI 출력에 계속 나오기 때문에 이것만 알면 나머지는 써 보면..

DevOps/CI & CD 2026.09.27

[Jenkins] Jenkins 설치와 사용법 정리

Jenkins는 코드를 가져와 테스트하고 빌드하는 일을 자동으로 돌려 주는 CI 서버입니다. 이 글에서는 Jenkins 2.568.3을 설치하고 잡 만들기, 빌드와 실패 확인, API로 빌드 실행, 에이전트 연결까지 직접 해 보면서 필요한 개념만 정리합니다.1. Jenkins가 하는 일[CI/CD] CI/CD와 GitOps 개념 정리에서 나눈 흐름에서 Jenkins는 CI를 맡습니다. 코드가 바뀌면 저장소에서 코드를 받아 테스트하고, 통과하면 배포할 결과물(이미지나 파일)을 만듭니다. 만든 결과물을 클러스터에 반영하는 CD는 [ArgoCD] ArgoCD 설치와 사용법 정리에서 다룬 ArgoCD가 맡습니다. 화면에 계속 나오는 용어는 다섯 가지입니다. 용어뜻JobJenkins가 할 일의 정의, 어떤 명령을..

DevOps/CI & CD 2026.09.27

[GitHub] 브랜치, Pull Request, Webhook 사용법 정리

CI/CD는 GitHub에 코드가 올라오는 순간 시작합니다. 이 글에서는 실무에서 많이 쓰는 GitHub flow로 브랜치를 만들고, Pull Request를 어떤 방식으로 합칠지, main을 어떻게 보호할지, Jenkins가 변경을 알 수 있게 Webhook을 어떻게 설정하는지를 로컬 실습과 함께 정리합니다.1. CI/CD에서 GitHub가 하는 일[CI/CD] CI/CD와 GitOps 개념 정리에서 정리한 흐름의 첫 단계가 GitHub입니다. 개발자가 작업 브랜치를 push하고 Pull Request(PR)를 열면, CI가 빌드와 테스트를 돌려 결과를 PR에 남기고, 리뷰 승인까지 받으면 main에 합칩니다. main이 바뀌면 GitHub가 Webhook으로 CI 서버에 알려 배포용 빌드가 시작됩니다..

DevOps/CI & CD 2026.09.27

[CI/CD] CI/CD와 GitOps 개념 정리

CI/CD는 코드를 합치고, 검사하고, 운영에 내보내는 과정을 자동으로 돌리는 방식이고, GitOps는 그중 배포를 "Git에 커밋하면 클러스터가 알아서 따라오는" 방식으로 바꾼 것입니다. 이 글에서는 GitHub, Jenkins, ArgoCD로 이어지는 배포 흐름을 먼저 그림으로 보고, 로컬 Git 저장소로 배포 이력 확인, 롤백, 매니페스트 검사를 직접 해 봅니다.1. CI와 CD를 한 줄씩CI/CD는 한 단어처럼 쓰이지만 실제로는 세 가지를 묶은 말입니다. 팀에서 "CD 하고 있어요"라고 할 때 사람마다 뜻이 다른 경우가 많아서, 저는 아래처럼 나눠서 말합니다. 용어한 줄 설명예시CI (지속적 통합)코드를 자주 합치고, 합칠 때마다 자동으로 빌드와 테스트Pull Request를 열면 테스트가 자동으..

DevOps/CI & CD 2026.09.27

[Ansible] CentOS 7 서버 3대로 Ansible 실습 환경 구성

ESXi 위에 CentOS 7 서버 3대(Master 1, Worker 2)를 만들어 Ansible 실습 환경을 구성했습니다. Master에 Ansible을 설치하고, Worker를 인벤토리에 등록한 뒤 SSH 키를 배포해 ping 모듈로 연결을 확인했습니다.1. 환경서버IP역할Ansible_master192.168.1.101Ansible 설치 (제어 노드)Ansible_worker1192.168.1.102관리 대상Ansible_worker2192.168.1.103관리 대상OS: CentOS 7 (ESXi 가상 머신)리눅스 설치 과정은 생략합니다.2. 구성 과정2.1 Ansible 설치 (Master)Master 서버에 EPEL 저장소를 추가하고 Ansible을 설치합니다.[root@Ansible_mas..

서울
--:--:--
-전체 글
-카테고리
오늘 방문