전체 글 (248) 썸네일형 리스트형 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 안에서 실행되지만, 별도의 파일 시스템과 네트워크 환경 이미지는 주 컨테이너와 다르게 설정할 수 있습니다. 이를 통해 초기화 작업을 위한 도구나 스크립트를 실행주 용도:파일 준비: 파일 시스템의 초기화 작업(예: 데이터베이스 초기화, 로그 디렉토리 생성 등)서비스 의존성 해결: 주 컨테이너가 의존하는 서비스가 준비될 때까지 대기데이터 .. K8S - Load Balance ✅ 핵심 요약kubectl port-forward는 "Pod 전체"에 대해 동작하고,Pod 안에 있는 특정 컨테이너를 직접 선택해서 포워딩하지는 않습니다.즉, Pod 안의 여러 컨테이너가 각각 다른 포트를 사용하면,그 포트들로 Pod 전체에 포트 포워딩을 할 수 있어요.어떤 컨테이너가 그 포트를 리슨 중인지에 따라 응답이 달라지는 거죠.🛠 예시: 외부에서 각각 접근mypod 안에 다음과 같은 구조가 있다고 가정할게요:mycon2 → 81번 포트에서 Nginx 실행mycon3 → 82번 포트에서 Nginx 실행그리고 kubectl port-forward를 다음처럼 실행합니다:kubectl port-forward pod/mypod 8081:81 8082:82외부의 localhost:8081 → Pod 내부.. 이전 1 2 3 4 5 6 7 ··· 31 다음