본문 바로가기
GOORM

GOORM: Kubernetes-26

by hxunz 2021. 11. 29.
  1. Facts (사실, 객관)
    : 오늘은 IaC, Ansible  대해 배우고 실습 진행

  2. Findings (배운 점)
    : IaC (Infrastructure as Code)
     - 코드(소프트웨어)를 통한 인프라 환경 배포 및 관리
     - 자동화 언어로 원하는 구성을 정의
     - 장점 : 비용 및 시간 절감, 오류 및 보안 정책 위반 등의 위험요인 제거, 자동으로 빌드/리빌드 가능
     - 다양한 기능 제공 (체크인/체크아웃, 리비전, 롤백, 테스트, 배포 등의 기능 제공), 클라우드 환경 및 데브옵스 환경에 적합
     - 종류
    Chef Ruby 기반의 오픈소스
    개발자 측면에서 사용자 기반에 초점을 맞춘 도구
    마스터-클라이언트 모데로 구성
    마스터 제어에 별도의 워크스테이션 필요
    장점 모듈과 구성 레시피 모음이 풍부
    코드 중심의 접근 방식을 사용하여 구성에 대한 제어와 유연성 향상
    단점 Ruby 등의 절차적 언어 개발에 익숙하지 않으면 접근이 어려움
    대규모 코드 기반 복잡한 환경 발생
    Fabric Python 기반 도구
    다수의 원격 시스템에서 작업을 실행하기 위한 용도
    플러그인을 통한 고급 기능 확장 가능
    시스템과 서버 관리를 수행하며 응용프로그램 배포를 자동화
    장점 언어에 구애 받지 않음
    다른 도구보다 간단하고 쉬운 배포
    스크립트 기반 간소화
    단점 단일 실패 지점
    푸쉬 모델 사용으로 인해 연속 배치 모델에 부적합
    운영페제 및 패키지 관리자에 의존적
    Puppet Ruby 기반의 오픈소스
    JSON에 근접한 DSL을 사용해서 내부에서 작업
    오랜기간 사용해서 안정성 및 완성도가 좋음
    장점 Puppet Labs를 통해 커뮤니티를 지원
    완성도 높은 인터페이스
    모든 운영체제에서 지원
    설치 및 초기 설정이 간단
    단점 고급 작업을 위해서는 Ruby 사용 필요
    규모 확대 시 구성 파악 어려움
    코드 중심 접근 방식에 비해 제어가 적음
    SaltStack 마스터-클라이언트 모델 또는 비집중화 모델로 설정
    CLI 기반의 도구
    Python 기반으로 푸쉬방법과 SSH 통신 방법 제공
    클라이언트 및 구성 템플릿을 그룹화하여 환경 제어를 단순화
    장점 구성 및 사용법 간단
    DSL 기능이 풍부
    입력, 출력 및 구성이 모두 YAML로 매우 일관적
    높은 확장성과 복원력
    단점 새로운 사용자가 사용하기 어려움
    완성도가 떨어짐

    Ansible
     - 오픈소스 IT 자동화 도구, 시스템 구성 및 소프트웨어 배포 기능 제공, 지속적인 배포와 다운 타임 없는 롤링 업데이트 지원
     - 주요 목적은 단순성과 사용의 용의성, 보안과 신뢰성 중점
     - 장점 : SSH를 통한 구성으로 Agentless, YAML 언어 사용으로 접근성 높음, 쉽고 단순한 구조로 가독성 높음, 변수 기능 사용으로 재 사용성 증가, 다른 도구보다 훨씬 간소화, 다양한 플랫폼 지원
     - 단점 : DSL을 통한 로직 수행-수시로 문서확인이 필요, 변수 등록으로 인한 복잡성, 변수 값 확인의 어려움, 입력/출력/구성파일 간의 형식 일관성이 없음
     - 구성 : YAML 언어로 구성된 텍스트 파일, 하나 이상의 작업내용(플레이)의 집합
     - 컨트롤 머신(제어노드)
     - 관리 대상 호스트(관리노드) : 컨트롤 머신을 통해 모듈 설치 및 작업 실행, 단독 혹은 그룹으로 관리 가능
     - Ansible 방식 : 생산성을 저하시키는 복잡성, 가독성을 위한 최적화, 선언적인 사고

    Ansible 인벤토리
     - Ansible에서 관리하고자 하는 Managed Node를 기록한 파일
     - 정적 인벤토리에 관리 대상 호스트 지정 : 텍스트 파일로 INI / YAML 형식 등 사용, 호스트 그룹 사용 시 []로 그룹 이름 지정, 기본 그룹으로 all/ungrouped 제공, :children 접미사를 이용해 중첩 그룹 지정 가능, --list-hosts 옵션으로 확인 가능
     - 인벤토리에 변수 정의 : 특정 호스트 및 호스트 그룹에 대한 변수 지정 가능
     - 동적 인벤토리 : 외부 데이터베이스에서 제공하는 정보를 사용하여 동적으로 생성 가능
     - 인벤토리 호스트 참조 : 호스트 패턴은 프레이 또는 애드혹 명령의 대상이 될 호스트를 지정하는 데 사용, 이름을 이용해서 특정 단일 호스트 및 호스트 그룹 지정 가능, 이름 사용 시 와일드카드 문자 사용 가능, 리스트 형식으로 여러 호스트 지정 가능

'GOORM' 카테고리의 다른 글

GOORM: Kubernetes-28  (0) 2021.12.01
GOORM: Kubernetes-27  (0) 2021.11.30
GOORM: Kubernetes-25  (0) 2021.11.28
GOORM: Kubernetes-24  (0) 2021.11.25
GOORM: Kubernetes-23  (0) 2021.11.24

댓글