전체 글131 [k8s] 19. Pod - ReadinessProbe, LivenessProbe 어떤 상황에 쓰는가 파드를 만들면, 컨테이너가 생기고, 파드와 컨테이너 상태가 Running이 되고 앱도 구동이 됨 서비스와 파드가 연결이 되고, 서비스의 아이피가 외부에 알려지고, 외부에서 사람들이 서비스를 통해 접근 한 서비스에 2개의 파드가 연결되어 있으니 50%씩 트래픽이 나눠진다고 하자 ReadinessProbe를 사용하는 상황 갑자기 노드2가 다운되고 그 위에 파드2도 다운됨 사람들은 남은 하나의 노드에만 접속을 하게됨 죽은 파드2는 Auto Healing 기능을 통해 다른 노드3 위에 재생성 되려고 함 파드2와 컨테이너가 Running이 되어 서비스와 연결되지만 앱이 Booting 중인 상황이 발생 이 때, 트래픽이 파드2로 오게되면 사용자는 에러페이지를 보게 됨 이 때, ReadinessP.. 2021. 2. 17. [k8s] 18. Pod - Lifecycle Pod - Lifecycle Lifecylce 사람은 삶이 있음 파드도 사람의 삶처럼 라이프 사이클이 있음 각 단계에 따라 행하는 행동이 다름 여러 기능들이 파드의 특정 단계와 관련이 있음 내용이 복잡하지만 꼭 이해해야 함 Pod의 라이프사이클 파드 생성 후 내용을 보면 Status 밑에 많은 내용이 있음 Status 안에 Phase가 있음 Phase: 파드의 전체 상태를 대표하는 속성 Conditions: 파드가 생성되면서 실행하는 단계와 상태를 알려줌 파드 안에 Container들이 있음 Containers의 State는 Container를 대표함 Phase, Conditions Phase: Pending, Running, Succeeded, Failed, Unknown 5개의 상태가 있음 Condi.. 2021. 2. 16. [k8s] 17. DaemonSet, Job, CronJob - 실습 DaemonSet, Job, CronJob 실습 1. DaemonSet DaemonSet - HostPort apiVersion: apps/v1 kind: DaemonSet metadata: name: daemonset-1 spec: selector: matchLabels: type: app template: metadata: labels: type: app spec: containers: - name: container image: kubetm/app ports: - containerPort: 8080 hostPort: 18080 DaemonSet - NodeSelector apiVersion: apps/v1 kind: DaemonSet metadata: name: daemonset-2 spec: se.. 2021. 2. 14. [k8s] 16. DaemonSet, Job, CronJob DaemonSet, Job, CronJob 1. DaemonSet 노드들이 있고 자원들이 다 다를 때, ReplicaSet은 스캐줄러에 의존하여 파드를 노드에 배치 자원이 많으면 노드에 파드를 많이 배치하고, 자원이 없으면 적게 배치 DaemonSet은 노드의 자원과 상관없이 각 노드마다 같은 파드를 배치시킴 자원과 관계없이 파드를 동일하게 배치해야하는 서비스 Prometheus: 노드의 성능수집용 fluentd: 노드의 로그수집용 GlusterFS: 노드의 자원을 갖고 네트워크 파일 시스템 구축용 특징 셀렉터와 템플릿이 있어서 모든 노드에 템플릿으로 파드를 만들고 셀렉터로 파드를 데몬셋과 연결시킴 만약 노드들의 OS 종류가 달라 노드의 라벨이 붙어있고, os:ubuntu에 파드를 설치하고 싶지 않은 상.. 2021. 2. 14. [k8s] 15. Deployment - 실습 Deployment 실습 1. Recreate 실습 Deployment - Recreate apiVersion: apps/v1 kind: Deployment metadata: name: deployment-1 spec: selector: matchLabels: type: app replicas: 2 strategy: type: Recreate revisionHistoryLimit: 1 template: metadata: labels: type: app spec: containers: - name: container image: kubetm/app:v1 terminationGracePeriodSeconds: 10 kind는 Deployment selector에 type:app Pod는 2개 Recreate.. 2021. 2. 14. [k8s] 14. Deployment - Recreate, RollingUpdate Controller - Deployment 현재 서비스를 업데이트 할 때 재배포를 하기 위함 대표적으로 ReCreate, Rolling Update, Blue/Green, Canary 방식이 있음 1. ReCreate Deployment를 만들면 v1 파드들이 만들어 짐 파드 하나당 자원 하나 사용한다고 가정 먼저 파드 삭제 후, Downtime동안 자원을 사용하지 않음 그 다음 파드 v2를 만들고 다시 자원 할당 단점은 Downtime이 발생해서 일시적으로 중단가능한 서비스에만 쓰임 2. Rolling Update ReCreate과 달리 v1을 삭제하지 않고 v2를 생성 자원은 3개가 되고, 접속하는 사람은 v1이나 v2에 접속하게 됨 v1을 삭제하고, v2 생성 마지막으로 남은 v1을 삭제하여 v2로.. 2021. 2. 13. 이전 1 ··· 9 10 11 12 13 14 15 ··· 22 다음