본문 바로가기

전체 글

[K8S] 쿠버네티스 레이블 https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/labels/ 레이블과 셀렉터 레이블 은 파드와 같은 오브젝트에 첨부된 키와 값의 쌍이다. 레이블은 오브젝트의 특성을 식별하는 데 사용되어 사용자에게 중요하지만, 코어 시스템에 직접적인 의미는 없다. 레이블로 오브 kubernetes.io Label Node를 포함하여 Pod, deployment 등 모든 리소스에 할당 리소스의 특성을 분류하고, Selector를 이용해서 선택 오브젝트에 첨부된 key-value 한 쌍으로 적용 오브젝트의 특성을 식별하는 데 사용 레이블로 오브젝트의 하위 집합을 선택하고, 구성하는데 사용 레이블은 오브젝트를 생성할 때에 붙이거나 생성 이후에 붙이거나.. 더보기
[K8S] Ingress Controller Ingress는 클러스터 외부에서 내부 서비스로 들어오는 HTTP/HTTPS 트래픽을 관리하는 리소스이다.단순히 외부 요청을 내부 서비스로 전달하는 것 뿐 아니라, 도메인(URL) 기반 라우팅, SSL, 리버스 프록시 기능 등을 제공한다.👉 서비스들에 대한 단일 진입점을 만들어 내부의 서비스를 외부에서 접속 가능하도록 해준다. Ingress를 사용하면,LoadBalancer를 공유하여 비용 절감이 가능하며, TLS(SSL) 인증서 관리,  트래픽 라우팅 및 리다이렉션등이 설정 가능하다.→ 하나의 LL로 여러 서비스를 도메인 또는 경로 기반으로 분배 가능하다. 기존의 서비스 ?  ClusterIP: 내부 네트워크에서만 접근 가능 (외부에서 직접 접근 불가능)NodePort: 모든 노드의 특정 포트를 열어.. 더보기
[운영체제] 운영체제란? 운영체제? 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모습으로 대표적인 시스템 소프트웨어 커널모드(슈퍼바이저 모드) 사용자 모드 (보호모드) 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 있는 모드 운영체제의 커널이 동작함 하드웨어를 직접 제어할 수 있는 CPU명령어를 사용할 수 없는 모드 응용프로그램이 동작 커널(kernel) 커널 모드에서 동작하는 운영체제의 핵심 요소 응용 프로그램과 하드웨어 수준의 처리 사이의 가교 역할 구성방식: 일체형 커널, 마이크로 커널 개념 장점 단점 일체형 커널 운영체제의 모든 서비스가 커널 내에 포함됨 ex. UNIX, Linux 커널 내부 요소들이 서로 효율적으로 상호 작용함 한 요소라도 오류가 발생하면 .. 더보기
[K8S] Service Kubernetes의 Service는 클러스터 내에서 실행 중인 Pod 간의 네트워크 통신을 안정적으로 관리하고, 외부 클라이언트가 파드에 접근할 수 있도록 하는 추상화된 네트워크 리소스이다.Service는 파드의 동적인 IP 주소 문제를 해결하고, 여러 Pod에 트래픽을 분산(로드 밸런싱)시키는 역할을 한다. Service는 클러스터 전체에 걸쳐서 동작하기 때문에  클러스터 내의 모든 Pod에 access할 수 있도록 해준다.   Service의 주요 역할파드 간 통신 안정화: Service는 고정된 이름과 IP 주소를 제공하여 파드의 네트워크 위치 변화를 추상화한다.파드의 IP 주소는 재시작 시 변경될 수 있다.로드 밸런싱: 여러 복제본(replica) 파드에 트래픽을 균등하게 분산한다.외부 트래픽 .. 더보기
[K8S] Cronjob Controller Cronjob Controller ? 사용자가 원하는 시간에 Job 실행 예약 지원 Cronjob 안에 Job 컨트롤 기능 포함되어 있다. job controller로 실행할 Application pod를 주기적으로 반복해서 실행 Linux의 Cronjob의 스케줄링 기능을 Job Contoller에 추가한 API. 다음과 같은 반복해서 실행해야하는 Job을 운영할 때 사용 Data Backup Send email Cleaning tasks Cronjob Schedule: "0 3 1 * *" Minutes Hours Day of the month Month Day of the week (0 ~ 6) -> JobTemplate 안의 Spec은 완전히 동일한 것 알 수 있음 [master ~]$ cat >.. 더보기
[K8S] Job Controller Job이란 Kubernetes는 Pod를 running 중인 상태로 유지 Batch 처리하는 Pod는 작업이 완료되면 종료된다. Batch 처리에 적합한 컨트롤러로 pod의 성공적인 완료를 보장한다. - 비정상 종료 시 다시 실행 - 정상 종료 시 완료 [master ~]$ kubectl run testpod --image=centos:7 --command sleep 5 pod/testpod created [master ~]$ kubectl get pods --watch NAME READY STATUS RESTARTS AGE testpod 0/1 ContainerCreating 0 5s testpod 1/1 Running 0 9s testpod 0/1 Completed 0 14s testpod 1/1 R.. 더보기
[K8S] Statefulset Statefulset Pod의 상태를 유지해주는 컨트롤러 - Pod 이름 - Pod 의 볼륨(스토리지) Pod이름 : Hash값으로 Random으로 만들어진다. serviceName이라는 Field를 가지고 동작한다. # DaemonSet처럼 노드당 하나씩 보장해주는 것은 아님. # 파드의 이름을 보장해줄 뿐이다. [master ~]$ cat > rc-nginx.yaml apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: replicas: 3 selector: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: n.. 더보기
[K8S] DaemonSet DaemonSet전체 노드에서 특정 Pod가 한 개씩 실행되도록 보장각 노드에 동일한 워크로드 (ex: 로그 수입기, 모니터링 에이전트)와 같은 프로그램 실행 시 적용 DaemonSet의 주요 특징모든 노드에서 실행 보장:DaemonSet은 클러스터의 모든 노드에 동일한 Pod를 하나씩 실행 한다.새 노드가 클러스터에 추가되면 DaemonSet은 자동으로 해당 노드에 Pod를 생성시킨다.특정 노드에만 실행 가능:라벨과 Node Selector를 사용해 특정 노드에서만 실행하도록 제한 가능.노드에서 Pod 제거:노드가 삭제되거나 DaemonSet이 수정되면 Pod도 자동으로 제거.자동 관리:노드 추가, 삭제, 스케줄링 등 모든 작업을 DaemonSet이 자동으로 처리.DaemonSet의 사용 사례로그 수집.. 더보기