본문 바로가기

점진적과부하57

[k8s] NodePort NodePort란? 모든 node를 대상으로 외부 접속 가능한 port를 예약 Default NodePort 범위 : 30000 - 32767 ClusterIP를 생성 후 NodePort를 예약 definition apiVersion: v1 kind: Service metadata: name: nodeport-service spec: type: NodePort clusterIP: 10.100.100.200 # 생략 시 random 생성 selector: app: webui ports: - protocol: TCP port: 80 targetPort: 80 nodePort: 30200 # 생략 시 random 생성 [ Hands - on ] Deployment를 통해서 pod 생성 apiVersion: a.. 2022. 11. 15.
[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] 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.