Container 썸네일형 리스트형 [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의 사용 사례로그 수집.. 더보기 [K8S] Deployment - RollingUpdate Deployment : Rolling update를 위해 만들어진 API resourceReplicaSet을 컨트롤해서 Pod수 조절Rolling update & Rollling Back A rolling update allows a Deployment update to take place with zero downtime. It does this by incrementally replacing the current Pods with new ones. The new Pods are scheduled on Nodes with available resources, and Kubernetes waits for those new Pods to start before removing the old Pods.=> .. 더보기 [K8S] ReplicaSet ReplicaSet (RS)- ReplicaController와 같은 역할(=Pod의 갯수 보장)을 하는 컨트롤러- ReplicaController보다 풍부한 Selector 지원 # Self HealingKubernetes는 ReplicaSets 및 Replication Controller를 통해 Self Healing 응용프로그램을 지원한다. Replication Controller 는 POD 내의 응용프로그램이 충돌할 때 자동으로 POD가 다시 생성되도록 도와준다.응용프로그램의 replicas가 항상 충분히 실행될 수 있도록 도와준다.selector: matchLabels: component: redis matchExpressions: - {key:tier, operator: In, .. 더보기 [K8S] ReplicationController Controller란?Pod 의 개수를 보장Replication Controller (가장 BASIC한 Controller)요구하는 Pod의 개수를 보장하며 파드 집합의 실행을 항상 안정적으로 유지하는 것을 목표요구하는 Pod의 개수가 부족하면 template을 이용해 Pod cnrk요구하는 Pod 수보다 많으면 최근에 생성된 Pod 삭제기본 구성 : selector를 replicas 갯수만큼 만들려고 보장해준다selectorreplicastemplate구식의 기술로 최근에는 Replica Set으로 대체되고 있다. # 실습[master ~]$ cat > rc-nginx.yaml apiVersion: v1kind: ReplicationControllermetadata: # ReplicationCont.. 더보기 이전 1 ··· 6 7 8 9 10 11 다음