본문 바로가기

ubuntu53

[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.
[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.
[K8s] Job Controller Job이란? pod의 정상적인 종료를 관리 K8s는 pod를 running 중인 상태로 유지 Batch 처리하는 pod는 작업이 완료되면 종료됨 Batch 처리에 적합한 controller로 pod의 성공적인 완료를 보장 비정상 종료 시 다시 실행 정상 종료 시 완료 definition apiVersion: batch/v1 kind: Job metadata: name: centos-job spec: # completions: 5 # parallelism: 2 activeDeadlineSeconds: 5 template: spec: containers: - name: centos-container image: centos:7 command: ["bash"] args: - "-c" - "echo 'Hello.. 2022. 10. 24.
[k8s] Statefulset Statefulset이란? pod의 상태를 유지해주는 controller pod 이름 pod의 볼륨(스토리지) daemonset처럼 node 당 pod 1개를 보장하지 않음 definition apiVersion: apps/v1 kind: StatefulSet # kind 종류 확인 metadata: name: sf-nginx spec: replicas: 3 serviceName: sf-service # serviceName 존재 selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14​ [ Han.. 2022. 10. 19.
[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.
[K8s] Deployment Deployment란? ReplicaSet을 제어해서 pod수를 조절하는 부모역할 Rolling update & Rolling back pod를 점진적으로 새로운 것으로 update하여 deployment update가 서비스 중단 없이 이루어질 수 있도록 하는 것 Rolling update : kubectl set image deployment = --record --record : update 과정을 history로 기록 Rolling back : kubectl rollout history deployment kubectl rollout undo deploy 롤링 업데이트 수행하기 definition apiVersion: apps/v1 kind: Deployment # kind 값만 다를 뿐 Repl.. 2022. 10. 4.
[K8s] Pod에 Resource 할당(cpu/memory requests, limits) & K8s Pod 환경변수 설정과 실행 패턴 Resource requests pod를 실행하기 위한 최소 resource 양을 요청 Resource limits pod가 사용할 수 있는 최대 resource 양을 제한 memory limit을 초과해서 사용되는 pod는 종료(OOM Kill)되며 다시 scheduling 된다 limits만 설정할 경우 자동으로 limits와 동일한 값으로 requests 설정됨 Container resource 설정 예 container별로 resource 설정 apiVersion: v1 kind: Pod metadata: name: nginx-pod-env spec: containers: - name: nginx-container image: nginx:1.14 ports: - containerPort: 80 p.. 2022. 9. 21.
[K8s] Init container & Infra container Init container란? main container를 실행하는데 필요한 초기화 및 환경 구성 app container 실행 전에 미리 동작시킬 container init container가 모두 실행된 후에 app container를 실행 Init Containers 참고 [ Hands - on ] : init container init container 2개가 실행되어야 main container가 실행되는 yaml 파일 생성 vi init-container-exam.yaml apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybo.. 2022. 9. 14.