본문 바로가기

kubernetes68

[K8s] Cluster IP ClusterIP란? selector의 label이 동일한 pod들의 그룹으로 묶어 단일 진입점(Virtual IP)을 생성 cluster내부에서만 사용 가능 랜덤하게 loadbalacing을 하지만 균등하게 서비스 될 수 있도록 지원 type 생략 시 default 값으로 10.96.0.0/12 범위에서 할당됨 clusterIP는 IP 중첩을 방지하기 위해 주로 고정시키지 않고 사용함 definition apiVersion: v1 kind: Service metadata: name: clusterip-service spec: type: ClusterIP clusterIP: 10.100.100.100 selector: app: webui ports: - protocol: TCP port: 80 targe.. 2022. 11. 9.
쿠버네티스 서비스(Kubernetes Service) 안녕하세요~ BTC Hallo팀입니다. 이번시간에는 GKE 활용과 관련해서 쿠버네티스 서비스에 대해서 알아보겠습니다. 쿠버네티스 서비스는 동적으로 변하는 IP를 가지는 Pod들에 고정된 방법으로 접근하고, 동일한 서비스를 제공하는 Pod 그룹에 접근하는 단일 진입점을 생성하는 리소스이다. 각 서비스에는 서비스가 존재하는 동안 변하지 않는 IP와 port가 있다. 클라이언트는 해당 IP:port에 연결할 수 있고, 이 연결은 서비스를 제공하는 Pod 중 하나로 라우팅된다. 서비스 타입 ClusterIP 동일한 서비스를 지원하는 Pod는 하나 이상 존재할 수 있다. 이때 ClusterIP를 통해 백엔드의 동일한 서비스를 제공하는 Pod들로 로드밸런싱이 가능하다. Selector의 Label이 동일한 Pod를.. 2022. 11. 1.
[k8s] Cronjob Cronjob이란? 사용자가 원하는 시간에 job 실행 예약 지원 Jon controller로 실행할 application pod를 주기적으로 반복해서 실행 Linux의 cronjob의 스케줄링 기능을 job controller에 추가한 API Data backup, Send emails, Cleaning tasks과 같은 반복해서 실행하는 job을 운영해야 할 때 사용 Crobjob Schedule : “분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6)” Minutes (from 0 to 59) * * * * * : 1분마다 실행 */5 * * * * : 5분마다 실행 Hours (from 0 to 23) Day of the month (from 1 to 31) Month (fro.. 2022. 11. 1.
쿠버네티스 이론 STEP14 Resource Management ABTCEFG♪ 안녕하세요, 여러분! BTC_김쿼카입니다. 이번 시간에는 쿠버네티스의 리소스 관리에 대해 알아보는 시간을 가질게요. 쿠버네티스에서는 pod를 실행하기 위해 node의 리소스를 사용합니다. 스케줄러는 pod를 자원의 여유가 있는 node에 배포하게 되는데 이때 사용되는 기준은 각 node의 cpu, memory의 사용량 등이 대표적입니다. 리소스 단위 cpu : 1000m(밀리 코어) == cpu : 1 Core memory : 256Mi == memory : 256Mb apiVersion: v1 kind: Pod metadata: name: resource-limit-pod labels: name: resource-limit-pod spec: containers: - name: nginx.. 2022. 10. 12.
[K8s] DaemonSet DaemonSet이란? node당 pod가 1개씩 실행되도록 보장 log 수입기, 모니터링 에이전트와 같은 프로그램 실행 시 적용 definition apiVersion: apps/v1 kind: DeamonSet # kind값과 replicas 유무의 차이 이외에는 ReplicaSet과 동일 metadata: name: daemonset-nginx spec: selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 [ Hands -on ] 1. daemonset 배포 vi daemonset-exa.. 2022. 10. 11.
쿠버네티스 이론 STEP13 Scheduling 3 Cordon & Uncordon & Drain pod- scheduling 정책을 변경할 수 있는 명령어 kubectl cordon, drain, taint cordon kubectl cordon 특정 노드를 선택하여 스케줄 대상에서 제외시킴. 현재 노드에 배포된 pod는 그대로 유지하면서 추가적인 pod의 배포를 제한하는 명령어. cordon명령어를 실행하면 선택한 특정 노드가 SchedulingDisabled 상태가 됨 uncordon kubectl uncordon 특정 노드를 SchedulingDisabled 상태를 제거하고 노드에 pod가 정상적으로 스케줄링 될 수 있도록 복구하는 명령어. drain kubectl drain 선택한 특정 노드가 SchedulingDisabled 상태가 될 뿐만 아니라 노드에 남아있는 pod를 모두 삭제하고 재.. 2022. 10. 5.
쿠버네티스 이론STEP11 Scheduling 1 Taint & Toleration ABTCEFG♪ 안녕하세요, 여러분! BTC_김쿼카입니다. 쿠버네티스의 스케줄링에 대해 알아보는 첫번째 시간! 오늘은 taint와 toleration에 대해 알아보도록 해요. taint Node에 적용되는 속성으로, Node에 스케줄링될 Pod를 제한할 수 있는 기능을 제공함 노드마다 설정 가능하며, 설정한 노드에는 pod가 스케줄 되지 않음 taint 옵션 NoSchedule toleration이 없으면 pod가 스케줄되지 않음 기존에 실행되던 pod에는 적용되지 않으며 앞으로 실행될 Pod에 대해서만 스케줄링 제한 PreferNoSchedule toleration이 없으면 pod가 스케줄되지 않음 기존 실행 중인 Pod에는 적용되지 않으며, 앞으로 생성될 Pod도 스케줄링 되는 것을 선호하진 않지만 .. 2022. 9. 27.
[K8s] ReplicationController & ReplicaSet ReplicationController란? 요구하는 pod의 개수를 보장하며 pod 집합의 실행을 항상 안정적으로 유지하는 것을 목표 요구하는 pod의 개수가 부족하면 template를 이용해 pod를 추가 요구하는 pod 수 보다 많으면 최근에 생성된 pod를 삭제 기본구성 selector replicas template 반드시 selector의 key, value 값을 labels로 가지고 있어야 함 definition apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: replicas: 3 selector: app: web template: metadata: name: nginx-pod labels: app: web s.. 2022. 9. 26.