본문 바로가기

IT 엔지니어

(232)
Labels/ Annotations 1. Label클러스터 내부에서 객체 구별위한 임의 식별자하나 이상의 레이블 존재 가능설정 형식 = 키 : 값ex) label : test✅ 역할Kubernetes 리소스 분류 및 선택(Select)selector로 사용 가능 Service, Deployment, ReplicaSet 연결 고리 역할을 함✅ 특징key-value 쌍 형태빠르게 조회/검색/선택 가능제한된 크기: key는 63자 이하총 label 수는 제한 있음 (보통 64개 이하 권장)용도가 시스템 로직에 직접 관여함ReplicaSet, Service 연결, 롤링 업데이트 등 핵심 기능 레이블 없는 파드 생성 YAML apiVersion: v1kind: Podmetadata: name: nolabelspec: containers: ..
K8S - ingress [Ingress]정의 및 역할기존의 서비스 거치지 않고 API 확인 후 POD 에 직접 접근 가능클러스터 밖에서 내부로 접근하는 요청 시 처리 방식1. HTTP/HTTPS 통해 외부에서 내부 접근 가능 유도 2. 클러스터 외부에서 접근 가능한 URL 제공3. 트래픽 로드밸런싱4. SSL/TLS 인증서 처리5. 도메인 기반 가상 호스팅 제공여러 서비스를 동일한 IP 주소 아래에서 운영 가능접근 관리가 효율적인 API 객체 2. 필요성서비스의 한계 극복( 하나의 서비스에 하나의 포트 )서비스 포트가 아닌 경로 기반 라우팅으로 컨테이너 접근 방식 3. 접근 방식 -> svc1-webserver POD -> svc2-webserver POD -> svc3-webserver POD 4. 구성요소Ingr..
K8S - Service [Service]Cluster IP 10.233.0.0/18SM : 10.233.0.0 - 10.233.63.255Service Pod: 10.233.64.00.00 - 10.233.255.255서비스 유형🔹 1. ClusterIP (기본값)역할: 클러스터 내부에서만 접근 가능한 고정 IP 제공외부 접근: ❌ (클러스터 내부에서만 사용 가능)특징 : 동일 레이블 가지는 파드에 대한 단일 지점 가상 IP 주소 제공서비스 유형 미지정 시 디폴트값 제공주 용도: 파드 간 통신, 마이크로서비스 구조에서 내부 백엔드 연결예시: 프론트엔드 → 백엔드, 백엔드 → DB1-1 . 자동할당vi cluster.ymlapiVersion: v1kind: Servicemetadata: name: mycluster sp..
K8S - STATEFULSET StatefulSet상태를 가지는(=stateful) 애플리케이션 관리 리소스apiVersion: ***apps/v1***kind: ***StatefulSet***metadata: name: setspec: replicas: 3 selector: matchLabels: app: webui template: metadata: name: mypod labels: app: webui spec: containers: - name: mycon image: nginx:1.14 kubectl describe sts [set] 🔧 StatefulSet의 주요 특징기능 설명고정된 이름(host..
k8S - REPLICASET 해당 노드 배포된 파드 삭제 시 해당 노드 네트워크 통신 불가 경우삭제 불가ReplicaSet 의 경우 kubectl edit rs [] 변경 시 미적용tag 명시 해줘야 추후 편집 시 충돌 없음Deploy,statefulset 경우kubectl edit deploy/sts [] 변경 시 자동 재생성kubectl scale rs my-rs --replicas 3kubectl scale deploy my-rs --replicas 3kubectl scale --replicas 5 sts/[set] [연산자]연산자 어떤 노드에 파드를 스케줄링 여부 결정 조건- In : key 와 values 지정 -> key,value 일치 파드 검색- Notin : key 일치 / value 불일치 파드 검색- Exsit..
K8S- daemonset 🔁 [클러스터 전체 배포 필요한 파드]✅ 1. DaemonSet기능: 클러스터의 모든 (또는 일부) 노드에 파드를 1개씩 배포사용 예시:로그 수집기 (예: Fluentd, Logstash)노드 모니터링 에이전트 (예: Prometheus Node Exporter)네트워크 플러그인 (예: Calico, Cilium)특징:새 노드가 클러스터에 추가되면 자동 파드 배포노드당 하나의 파드만 실행되도록 보장kubectl api-resourcesNAME SHORTNAMES APIVERSION NAMESPACED KINDapiVersion: apps/v1kind: DaemonSetmetadata: name: mydsspec: selector: matchLabels: app: webui templ..
K8S Controller ✅ 쿠버네티스 컨트롤러 정리컨트롤러 종류 역할 및 설명 사용 예시 특이사항DeploymentReplicaSet을 통해 파드를 관리하며 롤링 업데이트, 롤백 등 제공웹서버, 앱 서버 배포가장 많이 사용됨ReplicaSet지정된 수의 파드를 유지함Deployment 내부에서 사용됨단독 사용은 드묾Pod컨테이너 실행 단위nginx, redis 등 단일 실행컨트롤러 없이 사용 시 복구 불가StatefulSet고정된 이름, 순서, 저장소 등 상태가 중요한 파드 관리DB, Kafka, Zookeeper순서/볼륨 보장DaemonSet모든 노드에 1개씩 파드 배포로그 수집기, 모니터링노드 단위 실행Job한 번만 실행되는 작업DB 백업, 배치 처리실행 완료 후 종료CronJob주기적으로 실행되는 Job1시간마다 로그 정..
초기화/인프라 컨테이너 초기화 컨테이너순차적인 실행:초기화 컨테이너는 Pod 내의 주 컨테이너들보다 먼저 실행하나의 초기화 컨테이너가 끝나야만 다음 초기화 컨테이너가 실행모든 초기화 컨테이너가 종료되어야 주 컨테이너 시작Pod 상태 변경:초기화 컨테이너가 정상 완료 후 Pod는 Running 상태로 전환 이후 주 컨테이너 실행주 컨테이너와 다른 환경:초기화 컨테이너는 주 컨테이너와 동일한 Pod 안에서 실행되지만, 별도의 파일 시스템과 네트워크 환경 이미지는 주 컨테이너와 다르게 설정할 수 있습니다. 이를 통해 초기화 작업을 위한 도구나 스크립트를 실행주 용도:파일 준비: 파일 시스템의 초기화 작업(예: 데이터베이스 초기화, 로그 디렉토리 생성 등)서비스 의존성 해결: 주 컨테이너가 의존하는 서비스가 준비될 때까지 대기데이터 ..