Docker Swarm - 네트워크
·
Infra/Docker
Docker Swarm의 네트워크네트워크 종류Overlay: 스웜 모드에서 사용하며, 여러 호스트 간에 네트워크를 생성하여 서비스가 서로 통신할 수 있게 합니다.Ingress: 서비스가 클러스터 외부에서 접근할 수 있도록 지원하는 네트워크입니다.Host: 컨테이너가 호스트 네트워크를 직접 사용하여 통신합니다.Bridge: 단일 Docker 호스트에서만 사용 가능한 네트워크입니다. docker network create --driver overlay Docker Swarm에서 네트워크 작업하기Docker Swarm 클러스터에 overlay 네트워크를 생성하면, 클러스터 내의 여러 노드에서 실행되는 컨테이너들이 서로 통신할 수 있습니다.docker network create --driver overlay m..
Docker Swarm - 서비스 배포 및 확장
·
Infra/Docker
서비스 배포(Deploy)서비스 배포는 Docker Swarm 클러스터에 컨테이너 기반 애플리케이션을 실행시키는 것을 의미합니다. 서비스는 단일 컨테이너로 이루어질 수도 있고, 여러 복제본으로 이루어질 수도 있습니다. 간단한 웹 애플리케이션 서비스 배포Nginx 웹 서버를 Docker Swarm에 배포하는 간단한 예제를 보겠습니다.이 예제에서는 nginx 이미지를 사용하여 웹 서버를 배포합니다.docker service create \ --name my-web \ --replicas 3 \ --publish published=80,target=80 \ nginx실행하면 3개의 Nginx 컨테이너가 Docker Swarm 클러스터에 배포되며,http://:80에서 웹 서버에 접근할 수 있습니다. W..
Docker Swarm - 노드의 승격, 레이블, 가용성
·
Infra/Docker
노드 승격 및 강등Docker Swarm에서 노드의 역할을 워커(worker)에서 매니저(manager)**로 승격하거나,반대로 매니저를 워커로 강등할 수 있습니다. 워커에서 매니저로 승격하면 해당 노드는 스웜의 관리 작업(서비스 업데이트, 노드 관리 등)을 할 수 있는 권한을 갖게 됩니다.매니저에서 워커로 강등하면 관리 권한을 잃고,단순히 워커 노드로만 역할(서비스의 컨테이너를 실행만)을 하게 됩니다. 스웜에서 매니저 노드 수는 홀수(1, 3, 5개 등)로 유지하는 것이 좋습니다.매니저가 짝수일 경우, 의사 결정이 어려워질 수 있으며과도한 매니저 노드는 성능 저하를 일으킬 수 있습니다. docker node promote ()워커를 매니저로 승격하기- worker-1이 매니저 노드로 승격예시docke..
쿠버네티스를 활용한 네이티브 데브옵스 - 4장 오브젝트 다루기
·
Infra/Kubernetes
4.1 디플로이먼트관리와 스케줄링- 쿠버네티스는 각 프로그램을 관리하기 위해 디플로이먼트 오브젝트를 생성한다.- 컨테이너 이미지명, 레플리카 수 등 컨테이너를 실행하기 위한 정보가 기록된다.- 쿠버네티스 컨트롤러는 디플로이먼트 리소스를 관리하며, 디플로이먼트 리소스가 특별한 이유 없이 레플리카 수를 채우지 못하고 실행 중이면, 컨트롤러는 새로운 레플리카를 생성한다. 컨테이너 재시작하기- 컨테이너가 비정상적이나, 정상적으로 kubectl로 컨테이너를 종료하는 경우에도디플로이먼트는 컨테이너를 재시작을 시킨다.- 쿠버네티스는 오래 실행되고 신뢰할 수 있도록 설계되어있기 때문에, 재시작을 기본 작동으로 수행한다.- 디플로이먼트의 역할을 관련된 컨테이너를 감시하고 지정된 수 만큼 항상 실행 중인지를 확인한다. ..
Docker Swarm - 시작 및 노드추가
·
Infra/Docker
1. 도커 스웜 시작하기Docker Swarm은 Docker의 오케스트레이션 도구로, 여러 Docker 호스트를 클러스터로 묶어 관리할 수 있게 해줍니다.  주요 기능은 다음과 같습니다:- 클러스터 관리: 여러 Docker 호스트(노드)를 하나의 클러스터로 구성하여 관리합니다.- 서비스 배포: 컨테이너를 여러 노드에 분산 배포하고, 필요한 수의 복제본을 유지합니다.- 로드 밸런싱: 클러스터 내에서 트래픽을 자동으로 분산하여 서비스의 가용성과 성능을 높입니다.- 고가용성: 노드가 실패해도 다른 노드에서 서비스가 계속 실행되도록 보장합니다. docker info도커 스웜 상태보기아래 명령어를 통해 도커 스웜이 실행되고 있는지 확인할 수 있습니다.docker info>>>...Swarm: inactive.....
쿠버네티스를 활용한 네이티브 데브옵스 - 3장 쿠버네티스 구축하기
·
Infra/Kubernetes
3.1 클러스터 아키텍처쿠버네티스는 여러 대의 서버가 하나의 클러스터로 연결되어 있다. 3.1.1 컨트롤 플레인 컨트롤 플레인클러스터의 두뇌 역할을 하며 컨테이너 스케줄링, 서비스관려, API관리 등의 작업을 수행한다. kube-apiserver- 컨트롤 플레인의 프론트엔드 서버로 API 요청을 처리한다. etcd- 어떤 노드가 존재하고 클러스터에 어떤 리소스가 존재하는지와 같은 k8s 정보를 저장하는 DB이다. kube-scheduler- 새로 생성된 파드를 실행할 노드를 결정한다. kube-controller-manager- 디플로이먼트와 같은 리소스 컨트롤러를 관리한다. cloud-controller-manager- 클라우드 기반 클러스터는 클라우드업체와 연동하여 로드벨런서나 디스크볼륨 같은 자원을..
Kubernetes - minikube 실행
·
Infra/Kubernetes
MinikubeMinikube는 도커 데스크톱과 유사하게 컴퓨터에서 실행되는단일 노드 쿠버네티스 클러스터를 제공한다.로컬에서 k8s를 테스트 해 볼 수 있는 환경을 제공한다. 도커 데스크톱 버전 설치brew install --cask docker k8s 설치brew install minikube 설치 확인which minikube>>>/opt/homebrew/bin/minikube  실행minikube start아래와 같이 도커데스크톱에서 '이미지'와 '컨테이너'에 minikube가 실행되는지 확인한다. 설정파일다른 k8s 클러스터와 같이 사용하고 있으면 config 파일을 분리해서minikube만 사용할 수 있도록 한다. cat ./kube/config_minikubeapiVersion: v1clust..
Kubernetes - Service와 이를 통한 Ingress
·
Infra/Kubernetes
yaml파일을 통하거나 deploy를 통해 파드를 생성하거나 pod는 service를 통해 외부에 접근이 가능하다.쿠버네티스에서 서비스는 파드의 논리적 집합과 그것들에 접근할 수 있는 정책을 정의하는 추상적 개념이다.Service.yaml에서 어떤 방식으로 외부에 노출시킬지에 대한 type에는 여러 종류가 있다.ClusterIP (default) - 클러스터 내부에서만 접근 가능한 IPNodePort - Port번호를 통해 외부에서 접근 (NAT 컨샙)Load Balancer - 외부의 Load Balancer를 사용하는 방법ExternalName - kube-dns 컴포넌트로 DNS를 이용하는 방법 서비스는 추상적이지만 service와 pods는 내부에서 각기 다른 IP를 갖는다.따라서 port를 가지..
wave35
'Infra' 카테고리의 글 목록 (2 Page)