INFRA/DevOps147 [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. [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. [k8s] LivenessProbe를 이용해서 Self-healing Pod 생성 Liveness Probe란? pod가 계속 실행할 수 있음을 보장 pod의 spec에 정의 apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: nginx name: nginx spec: containers: - image: nginx:1.14 name: nginx livenessProbe: //추가 httpGet: path: / port: 80 ports: - containerPort: 80 resources: {} dnsPolicy: ClusterFirst restartPolicy: Always status: {} LivenessProbe 매커니즘 httpGet probe : 지정한 IP주소, port, path에 HTTP .. 2022. 9. 13. [K8s] Container 정리와 Single / Multi Container Pod 생성 Pod란? container를 표현하는 k8s API의 최소 단위 pod에는 하나 또는 여러 개의 container가 포함될 수 있음 kubectl run 명령(CLI)으로 생성 pod yaml을 이용하여 생성pod 생성 방법 Single-container pod 생성 CLI kubectl run NAME --image=nginx:1.14 --port=80 yaml template kubectl create -f pod-nginx.yaml vi pod-nginx.yaml apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: nginx name: nginx spec: containers: - image: nginx:1.14 name.. 2022. 8. 29. [K8s] kubernetes namespace, yaml template Namespace란? k8s API중 하나 cluster 하나를 여러 개의 논리적인 단위로 나눠서 사용 k8s cluster 하나를 여러 팀이나 사용자가 공유 용도에 따라 실행하야 하는 app을 구분할 때 사용 -namespace , n 옵션을 사용해서 원하는 namespace에 pod 생성 가능 Namespace 생성 CLI blue라는 이름의 namespace 생성 및 확인 kubectl create namespace blue yaml green이라는 이름의 namespace 생성 kubectl create namespace green --dry-run -o yaml > green-ns.yaml vi green-ns.yaml apiVersion: v1 kind: Namespace metadata: n.. 2022. 8. 25. 이전 1 ··· 9 10 11 12 13 14 15 ··· 19 다음