◼ 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: 파드 갯수 관..
◼ Cluster(클러스터) 쿠버네티스를 배포하면 얻는 것으로 컨테이너화된 애플리케이션을 실행하는 노드라고 하는 워커 머신의 집합을 뜻한다. 모든 클러스터는 최소 한 개이상의 컨트롤플레인과 워커 노드를 가진다. 클러스터가 하는 작업 원하는 상태(행해야 할 애플리케이션이나 워크로드, 사용하는 이미지, 사용할 수 있는 리소스 등)를 만든다. 원하는 상태는 매니페스트로 이루어진 구성 파일로 정의 원하는 클러스터 상태는 쿠버네티스 API로 정의 쿠버네티스는 원하는 상태에 부합하도록 자동으로 클러스터를 관리 ◼ Component(컴포넌트) 사전적 의미: 시스템이나 어떤단위의 일부분을 지칭할 때를 말하는 것 프로그래밍/엔지니어링: 더 큰 프로그램이나 구조물에서 식별 가능한 "일부분" 쿠버네티스에서는 크게 컨트롤플레..
조훈님의 k8s 강의 수강을 위해 환경 세팅 중 발생한 버전 문제 해결 내용을 정리합니다. 쉽게 시작하는 쿠버네티스(v1.20) - 인프런 | 강의 쿠버네티스를 정말 시작하는 단계에서 필요한 내용을 담았습니다. 🧭 이 강의를 통해 쿠버네티스를 가장 손쉽게 구조를 이해하며 시작할 수 있습니다. 🥇, 쿠버네티스 항해의 첫 걸음! 🚢성장 www.inflearn.com 에러 확인 인프런에 질문 주신 분과 동일한 에러가 나왔습니다. The IP address configured for the host-only network is not within the allowed ranges. Please update the address used to be within the allowed ranges and run th..
- Total
- Today
- Yesterday
- thetextbook
- docker-compose
- go
- cka
- k8s
- inflearn
- QUIC
- 덕타이핑
- 창업
- HTTP/2
- database
- Python
- Isolate level
- pytest
- buildkit
- HTTP/3
- 프리온보딩
- direnv
- Network
- Git
- 위코드
- web_server
- 원티드
- user-agent
- GitHub
- MSA
- Complier
- no-op
- http
- gitignore
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |