◼ OS Upgrade 유지보수(security patch 등)의 이유로 cluster에서 node를 안정적으로 내리려면 어떻게 해야 하는가? 5분 안에 node를 살린다면 pod가 실행되지만 5분이 지나면 pod가 제거(terminated)된다. kube-controller-manager --pod-eviction-timeout (Default: 5m) replicaSet으로 관리되고 있던 pod라면 다른 node에 배지가 되지만 그렇지 않으면 사라진다. 안전한 방법은 아래와 같다. kubectl drain node01 node01안에 있는 pod들이 축출 되면서 다른 node로 스케줄링된다. node01에 cordon이 되면서 스케줄링이 안되게 된다. kubectl uncordon node01 nod..
◼ Rolling Updates and Rollbacks application update 하는 deployment strategies로 두 가지 방법이 있다. Recreate 기존에 배포된 모든 application을 삭제하고 updated된 application을 한 번에 배포하는 전략 삭제되고 생성되는 과정에서 application이 작동이 안되는 downtime이 존재한다. Rolling update Rolling Update rolling update: application이 downtime 없이 점진적으로 updated 되는 것 rollout: application을 update하는 것 따로 설정하지 않으면 rolling update가 default이다. deployment가 rollout을 ..
◼ Mornotiring node 갯수, 몇개가 healthy 한지, resource metrics(cpu, memory) 등등 확인 필요 k8s에는 builtin solution이 없고 훌륭한 open source 들이 있다. Metrics Server 대표적으로 metric Server는 node와 pod 정보를 수집하여 in memory에 저장한다. 따라서 disk에 저장 되지 않아 history를 보려면 다른 solution을 사용해야 한다. 클러스터에 하나 존재 각각의 node에 위치한 agent인 kubelet이 metric 서버에 전달 한다. kubelet 안에 있는 sub component인 cAdvisor가 pod와 node등의 metric 정보를 읽어온다 top 명령어로 resource..
◼ Schedule manually nodeName nodeName is the simplest form of node selection constraint, but due to its limitations it is typically not used podSpec의 field scheduler는 어떤 노드에 pod를 배치해야 할지 결정이 나면 nodeName이름을 붙인다. scheduler가 없다면 직접 nodeName에 node이름을 적어서 배치시킬 수 있다. 이미 배포한 pod를 직접 스케줄링하려면 Binding 리소스를 만들고 직접 api 요청을 해야 한다. limitions nodeName에 해당하는 node가 없다면 pod는 실행되지 않고 경우에 따라 삭제될 수도 있다. node의 자원이 충분..
◼ Cluster Architecture Master/Worker Nodes Master Node: Control Plane 컴포넌트가 위치한 노드로 클러스터를 관리하는 노드 Worker Node: application을 서비스하는 노드 Control Plane ETCD: key, value 로 구성되어 있는 클러스터의 database Schedule: Container가 적절한 node에 배치될 수 있게 해 준다(container 및 noded의 크기, policy 등을 고려) Controller manager: 상황에 따라 새로운 container를 만들거나 삭제를 담당 node controller: node 상태 관리(작동하는지 안하는지 등) Replication controller: 파드 갯수 관..
- Total
- Today
- Yesterday
- gitignore
- 위코드
- user-agent
- QUIC
- Git
- cka
- Complier
- HTTP/2
- GitHub
- no-op
- direnv
- 덕타이핑
- http
- inflearn
- pytest
- docker-compose
- thetextbook
- Python
- 원티드
- 창업
- web_server
- HTTP/3
- buildkit
- go
- Network
- k8s
- database
- Isolate level
- MSA
- 프리온보딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |