용어정리::helm,gittea, yaml

YP J·2024년 3월 5일

helm

  • 쿠버네티스 클러스터 내에서 애플리케이션의 패키징, 설정, 배포를 간소화 하는 도구이다

  • 쿠버네티스 리소스를 관리하는 차트 라는 형식의 패키지를 사용

  • helm 사용 하면 쿠버네티스 애플리케이션을 쉽게 설치, 관리 할수 있으며, 애플리케이션의 배포 및 관리 프로세스를 표준화 할수 있따.

  • Chart

    • 애플리케이션과 관련 리소스의 설치 및 구성 정보를 담은 패키지
    • 차트는 쿠버네티스를 설치하기 위한 레시피
  • Release

    • 차트가 쿠버네티스 클러스터에 배포될때 생성되는 인스턴스.
    • 하나의 차트로부터 여러 릴리즈를 생성할수 있으며,각각 독립적으로 관리 된다.
  • 의존성 관리

    • 차트는 다른 차트에 의존할수 있다.
    • Helm은 이러한 의존을 자동으로 관리한다.
  • 롤백 및 업데이트

    • helm 사용하면 쉬워진다.

gittea

  • Gitea는 오픈 소스의 가벼운 코드 호스팅 솔루션으로, Git 저장소를 자체 호스팅할 수 있게 해줍니다.
  • 사용자가 완전히 제어할수 있는 개인적인 Git 서비스 제공
  • 기능성 UI: 이슈 트래킹, 코드 리뷰, Wiki, 웹 훅(Webhooks) 등 GitHub에서 기대할 수 있는 대부분의 기능을 제공합니다.

Helm을 통해 쿠버네티스 클러스터에 Gitea를 쉽게 배포하고 관리할 수 있으며, 이를 통해 개발 프로세스를 더욱 효율적으로 만들 수 있습니다.

yaml

  • 데이터 직렬화 포멧중 하나

  • 주로 설정파일, 데이터교환, infra struter 오케스트레이션(예. 쿠버네티스 매니페스트파일) 등에 사용

    매니페스트파일?
    아래에 따로 설명

  • YAML은 JSON과 비슷하지만 사람이 읽고 쓰기 쉽도록 설계 되어있고 주석도 가능(#)

  • 형식

    sclars
    1. key : value
    
    List
    2. key : 
    		- a
          - b 
          - c
    Map
    3. Person:
    		name: jay
          hobbies:
          	- a
              - b
              - c

kustomization.yaml

kubernets 매니페스트 파일

  • 매니패스트 파일은 쿠버네티스 리소스(예. 포드, 서비스, 볼륨) 등을 정의하는 파일이다.
  • YAML or JSON 형식으로 작성할 수 있다.
  • 이 파일은 쿠버네티스 오브젝트의 원하는 상태를 달성하기 위해 필요한 작업을 자동으로 수행한다.
  • 이러한 방식으로 Infrastructure as Code , Iac 하는 방법론을 구현할 수있다.

매니페스트 파일 기본 구성

  • apiVersion
    • 사용하는 쿠버네티스 API버전을 명시.
  • kind
    • 생성하려는 쿠버네티스 리소스의 종류를 나타낸다.
  • metadata
    • 리소스에 대한 메타데이터를 제공 . 이름, 네임스페이스, 레이블, 어노테이션 등
  • spec
    • 리소스의 원하는 상태를 상세하게 기술한다.
    • spec 상태는 kind에 따라 크게 달라진다.
  • 예ㅈㅔ
apiVersion: v1
kind: Pod
metadata

kind 필드: 생성하려는 리소스 종류

  • Pod
    • 가장 기본적인 배포단우, 하나이상의 컨테이너 포함
    • 이 컨텡너들은 스토리지, 네트워크를 공유하고 서로 통신 가능
    • 포드는 일반적으로 하나의 애플리케이션 인스턴스 또는 밀접하게 연관된 몇개의 애플리케이션 컨테이너를 실행하기 위해 사용됨
  • Service
    • 서비스는 포드 집합에 대한 안정적인 네트워크 주소를 제공한다.
    • 쿠버네티스 클러스터 내에서 실행중인 포드는 동적으로 생성되고 제거 될수 있으며 IP주소가 자주 변경된다.
    • 서비스를 사용하려면 클라이언트는 포드의 현재 IP 주소를 몰라도 되며
    • 서비스를 통해 포드에 지속적으로 접근 할 수있다.
    • 서비스는 로드밸런싱, 이름 기반의 접근, 포트번호를 통한 접근 등을 제공한다.
  • Deployment
    • 포드와 레플리카셋의 선언적 업데이트를 제공
    • 사용자는 애플리케이션의 원하는 상태
    • 예를들어 실행해야 할 포드의수, 사용해야할 컨테이너 이미지 등) 을 정의 할수 있다.
    • 쿠버네티스 시스템이 이상태를 달성 하도록 한다.
    • 디플로이먼트는 애플리케이션의 롤아웃(새버전 배포), 롤백(이전버전으로 돌아가기), 스케일링(포드수 조정) 등을 관리하는데 사용된다.
  • 포드가 애플리케이션의 실행 단위를 나타낸다면,
  • 서비스는 이 포드들에 대한 안정적인 접근 방법을 제공하고,
  • 디플로이먼트는 애플리케이션 배포와 관리를 단순화합니다
  • 이를 통해 개발자와 시스템 관리자는 애플리케이션의 배포, 확장, 업데이트를 보다 쉽게 관리할 수 있습니다
그외의
Core Types
Pod: 가장 기본적인 배포 단위로, 하나 이상의 컨테이너를 포함합니다.
Service: 포드 집합에 대한 안정적인 접근 방법을 제공하는 네트워크 서비스입니다.
ConfigMap: 구성 데이터를 키-값 쌍으로 저장하여 애플리케이션에 주입할 수 있게 하는 리소스입니다.
Secret: 비밀번호, OAuth 토큰, ssh 키와 같은 민감한 정보를 저장하는 리소스입니다.
Namespace: 클러스터 내의 리소스를 논리적으로 분리하는 단위입니다.
Workload Types
Deployment: 애플리케이션의 선언적 업데이트와 자동 롤백을 관리합니다.
ReplicaSet: 지정된 수의 포드 복제본이 실행되도록 보장합니다.
StatefulSet: 순서가 지정된 포드의 집합을 관리하며, 주로 상태를 유지하는 애플리케이션에 사용됩니다.
DaemonSet: 모든 (또는 일부) 노드에서 하나의 포드 복제본이 실행되도록 보장합니다.
Job: 한 번 실행되고 종료되는 작업(배치 작업)을 수행하는 포드의 집합입니다.
CronJob: 예약된 시간에 주기적으로 Job을 실행합니다.
Network and Policy Types
Ingress: 클러스터 외부에서 내부 서비스로의 HTTP/HTTPS 접근을 관리합니다.
NetworkPolicy: 포드 간, 또는 포드와 다른 네트워크 엔드포인트 간의 네트워크 트래픽을 제어하는 정책입니다.
ResourceQuota: 네임스페이스별 리소스 사용량을 제한합니다.
LimitRange: 리소스 할당(예: CPU, 메모리)의 최소 및 최대 값을 설정합니다.
Storage Types
PersistentVolume: 스토리지 볼륨의 생명 주기를 포드와 독립적으로 관리합니다.
PersistentVolumeClaim: 사용자가 동적으로 스토리지 볼륨을 요청할 수 있게 하는 리소스입니다.
StorageClass: 다양한 스토리지 유형을 정의하고, 동적 볼륨 프로비저닝을 가능하게 합니

정리 해야해

profile
be pro

0개의 댓글