Ansible - 조건적 실행 ( handler, when )
·
Infra/Ansible
[ Handler ]핸들러는 notify에 의해 호출되며 주로 서비스 재시작, 캐시클리어 등 후속 작업을 처리합니다.별로의 handler 폴더에 정의되어 실행할 수 있습니다.핸들러는 플레이북 실행 종료 시점에 호출됩니다.동일한 핸들러가 여러 태스크에서 호출되더라도 한번만 실행합니다.실행 순서는 notify에 나열된 순서가아니라 handler에 선언된 순서로 실행됩니다. [ Handler Example ]tasks:- name: Template configuration file ansible.builtin.template: src: template.j2 dest: /etc/foo.conf notify: - Restart apache - Restart memcachedhandlers..
Ansible - Inventory Build
·
Infra/Ansible
Invertory BasicsAnsible Inventory는 관리할 시스템 및 장비 목록을 정의한 파일입니다.이 파일을 통해 Ansible은 특정 호스트에 작업을 실행할 수 있습니다.기본적으로는 INI 또는 YAML 형식의 정적 파일을 사용하며, 동적 인벤토리도 지원합니다. hosts formatmail.example.com[webservers]foo.example.combar.example.com[dbservers]one.example.comtwo.example.comthree.example.comhosts.yaml formatungrouped: hosts: mail.example.com:webservers: hosts: foo.example.com: bar.example.com:..
쿠버네티스를 활용한 네이티브 데브옵스 - 8장 컨테이너 실행하기
·
Infra/Kubernetes
8.1 컨테이너와 파드- 파드는 동일한 환경에서 실행되는 컨테이너와 볼륨으로 구성된 집합체이다.- 파드에 있는 모든 컨테이너는 동일한 머신에 있다.- 파드는 서로 통신하며 데이터를 공유하는 컨테이너의 그룹이다.- 파드 내의 컨테이너는 디스크 볼륨을 공유할 수 있다. - 한 예로, 블로그 앱과 nginx 각각의 컨테이너는 같은 데이터를 공유할 수 있다.- 컨테이너는 가벼운 가상머신이라 부르기도 하며, 하나의 작업만 수행하는 것을 권장한다.- 한 예로, 데이터를 저장하는 캐시앱과 서비스앱 두개를 각각의 컨테이너로 구성한다. 8.2 컨테이너 매니페스트 containers: 각 컨테이너의 스펙에 name과 image 필드를 정의한다.image: 이미지에 태그를 지정하지 않으면 lastest로 지정된다. (ex...
쿠버네티스를 활용한 네이티브 데브옵스 - 7장 유용한 쿠버네티스 도구
·
Infra/Kubernetes
7.1 kubectl 마스터하기리소스 단축형 사용kubectl get po      (pod)kubectl get deploy  (deployment)kubectl get svc     (service)kubectl get ns      (namespace)kubectl get no      (node)kubectl get cm     (configmap) 도움말 보기 (kubectl -h)kubectl -h상세 커맨드 도움말kubectl --help"kubectl get -h 더 자세한 출력 결과 확인하기kubectl get podsNAME READY STATUS RESTARTS AGEdemo-6c7dbfffb4-bkkpp 1/1 Ru..
쿠버네티스를 활용한 네이티브 데브옵스 - 6장 클러스터 운영하기
·
Infra/Kubernetes
6.1 클러스터 사이징과 스케일링- 트래픽과 비용은 반비례한다. 6.1.1 클러스터 용량 계획 세우기마스터 노드- 안정적인 k8s cluster를 위한 최소한의 마스터노드 개수는 3개이다.- 단일 노드는 HA가 안되고, 2개의 노드는 과반수가 안되어 리더 선정에 문제가 발생한다. 워커 노드 - 노드 장애를 고려하여 최소 2개의 워커노드로 구성한다.- 즉, 모든 파드의 Replica를 최소 두개씩 실행하는 것을 권장한다.- k8s 스케줄러가 노드 간에 워크로드를 항상 균등할당하지 않기에, 노드는 많을 수록 좋다. 6.1.2 노드와 인스턴스- 노드의 여유 용량이 많아 비용 낭비가 발생하지 않게한다. - AWS로 노드 구성 시, 최소 인스턴스 스펙은 vCPU 1개 이상, 메모리 4GB 이상이다. 6.1.3 클..
쿠버네티스를 활용한 네이티브 데브옵스 - 5장 리소스 관리하기
·
Infra/Kubernetes
5.1 리소스 이해하기 - 쿠버네티스는 파드는 크게 CPU, Memory 두 종류의 리소스를 관리할 수 있다. 5.1.1 리소스 단위- CPU 리소스를 할당할 때 사용하는 단위 중 하나가 "millicore"이다.- 1m 는 CPU 리소스의 1/1000 단위로 표현한 것이다. ( 10m = 1/100 )spec: containers: - name: demo image: cloudnatived/demo:hello ports: - containserPort: 8888 resources: requests: memory: "10Mi" cpu: "100m" 5.1.3 리소스 상한- 사용할 수 있는 충분한 용량의 노드가 없으면, 파드는 대기 상태로 기다린다..
Docker Swarm - 시크릿
·
Infra/Docker
Docker Secrets 이란Docker Swarm에서 Secrets는 민감한 데이터를 안전하게 관리하는 방법입니다.docker secret create 명령을 통해 Secret을 생성하고, 서비스에서 사용합니다.Secret은 컨테이너 내에서 파일 형태로 마운트되며, 환경 변수나 설정 파일을 통해 서비스가 Secret을 읽을 수 있습니다.Secret은 클러스터 매니저 노드에서 안전하게 관리되며, 컨테이너가 필요할 때만 접근할 수 있습니다.docker secret ls, docker secret inspect로 Secret을 확인합니다.docker secret rm으로 삭제할 수 있습니다.  Docker Secrets 생성먼저, 민감한 정보를 Secret으로 생성합니다. 여기서는 MySQL 데이터베이스 ..
Docker Swarm - 스택
·
Infra/Docker
Stack 이란Docker Swarm에서 '스택(Stack)'을 배포하는 것은여러 서비스, 네트워크, 볼륨 등을 포함한 애플리케이션 구성을 YAML 파일로 정의한 후,Swarm 클러스터에 배포하는 방식입니다.Docker Compose 파일을 기반으로 Docker Swarm 클러스터에 스택을 쉽게 배포할 수 있습니다.  Stack 정의 (docker-compose.yml)Docker Swarm에서 스택을 배포하려면, 먼저 docker-compose.yml 파일을 만들어야 합니다. 이 파일에는 여러 서비스, 네트워크, 볼륨의 구성을 정의할 수 있습니다. 예시: docker-compose.ymlversion: "3.8"services: web: image: nginx:latest ports: ..
wave35
'Infra' 카테고리의 글 목록