chore: reorganize all image files and linted documents (#80)

* [PUBLISHER] upload files #62

* [PUBLISHER] upload files #63

* [PUBLISHER] upload files #64

* [PUBLISHER] upload files #65

* [PUBLISHER] upload files #66

* [PUBLISHER] upload files #67

* PUSH NOTE : test-document.md

* PUSH NOTE : 09. Lp Functions.md

* PUSH ATTACHMENT : mt-09.png

* PUSH NOTE : 03. Measure Spaces.md

* PUSH ATTACHMENT : mt-03.png

* PUSH NOTE : 08. Comparison with the Riemann Integral.md

* PUSH ATTACHMENT : mt-08.png

* PUSH NOTE : 07. Dominated Convergence Theorem.md

* PUSH ATTACHMENT : mt-07.png

* PUSH NOTE : 06. Convergence Theorems.md

* PUSH ATTACHMENT : mt-06.png

* PUSH NOTE : 05. Lebesgue Integration.md

* PUSH ATTACHMENT : mt-05.png

* PUSH NOTE : test-document.md

* [PUBLISHER] upload files #68

* [PUBLISHER] upload files #69

* PUSH NOTE : 08. Comparison with the Riemann Integral.md

* PUSH ATTACHMENT : mt-08.png

* PUSH NOTE : 02. Construction of Measure.md

* PUSH ATTACHMENT : mt-02.png

* DELETE FILE : _posts/2023-09-09-test-document.md

* DELETE FILE : _posts/Mathematics/Measure Theory/2023-09-09-test-document.md

* [PUBLISHER] upload files #70

* PUSH NOTE : Rules of Inference with Coq.md

* PUSH NOTE : 수학 공부에 대한 고찰.md

* PUSH NOTE : 04. Measurable Functions.md

* PUSH ATTACHMENT : mt-04.png

* PUSH NOTE : 07. Dominated Convergence Theorem.md

* PUSH ATTACHMENT : mt-07.png

* PUSH NOTE : 08. Comparison with the Riemann Integral.md

* PUSH ATTACHMENT : mt-08.png

* PUSH NOTE : 05. Lebesgue Integration.md

* PUSH ATTACHMENT : mt-05.png

* PUSH NOTE : 03. Measure Spaces.md

* PUSH ATTACHMENT : mt-03.png

* PUSH NOTE : 09. Lp Functions.md

* PUSH ATTACHMENT : mt-09.png

* PUSH NOTE : 06. Convergence Theorems.md

* PUSH ATTACHMENT : mt-06.png

* PUSH NOTE : 02. Construction of Measure.md

* PUSH ATTACHMENT : mt-02.png

* PUSH NOTE : 01. Algebra of Sets and Set Functions.md

* PUSH ATTACHMENT : mt-01.png

* PUSH NOTE : 블로그 이주 이야기.md

* PUSH ATTACHMENT : blog-logo.png

* PUSH ATTACHMENT : github-publisher.png

* PUSH NOTE : 05. Services - Enabling Clients to Discover and Talk to Pods.md

* PUSH ATTACHMENT : k8s-05.jpeg

* PUSH NOTE : 18. Extending Kubernetes.md

* PUSH ATTACHMENT : k8s-18.jpeg

* PUSH NOTE : 11. Understanding Kubernetes Internals.md

* PUSH ATTACHMENT : k8s-11.jpeg

* PUSH NOTE : 04. Replication and Other Controllers - Deploying Managed Pods.md

* PUSH ATTACHMENT : k8s-04.jpeg

* PUSH NOTE : 10. StatefulSets - Deploying Replicated Stateful Applications.md

* PUSH ATTACHMENT : k8s-10.jpeg

* PUSH NOTE : 02. First Steps with Docker and Kubernetes.md

* PUSH ATTACHMENT : k8s-02.jpeg

* PUSH NOTE : 06. Volumes - Attaching Disk Storage to Containers.md

* PUSH ATTACHMENT : k8s-06.jpeg

* PUSH NOTE : 12. Securing the Kubernetes API Server.md

* PUSH ATTACHMENT : k8s-12.jpeg

* PUSH NOTE : 07. ConfigMaps and Secrets - Configuring Applications.md

* PUSH ATTACHMENT : k8s-07.jpeg

* PUSH NOTE : 13. Securing Cluster Nodes and the Network.md

* PUSH ATTACHMENT : k8s-13.jpeg

* PUSH NOTE : 09. Deployments - Updating Applications Declaratively.md

* PUSH ATTACHMENT : k8s-09.jpeg

* PUSH NOTE : 17. Best Practices for Developing Apps.md

* PUSH ATTACHMENT : k8s-17.jpeg

* PUSH NOTE : 16. Advanced Scheduling.md

* PUSH ATTACHMENT : k8s-16.jpeg

* PUSH NOTE : 08. Accessing Pod Metadata and Other Resources from Applications.md

* PUSH ATTACHMENT : k8s-08.jpeg

* PUSH NOTE : 15. Automatic Scaling of Pods and Cluster Nodes.md

* PUSH ATTACHMENT : k8s-15.jpeg

* PUSH NOTE : 01. Introducing Kubernetes.md

* PUSH ATTACHMENT : k8s-01.jpeg

* PUSH NOTE : 03. Pods - Running Containers in Kubernetes.md

* PUSH ATTACHMENT : k8s-03.jpeg

* PUSH NOTE : 14. Managing Pods' Computational Resources.md

* PUSH ATTACHMENT : k8s-14.jpeg

* [PUBLISHER] upload files #71

* PUSH NOTE : test-document.md

* PUSH NOTE : test-document.md

* PUSH ATTACHMENT : test-image.png

* DELETE FILE : assets/img/posts/test/test-image.png

* [PUBLISHER] upload files #72

* PUSH NOTE : test-document.md

* PUSH ATTACHMENT : test-image.png

* DELETE FILE : assets/img/posts/test/test-image.png

* [PUBLISHER] upload files #73

* PUSH NOTE : test-document.md

* PUSH ATTACHMENT : test-image.png

* chore: remove test files

* [PUBLISHER] upload files #74

* PUSH NOTE : 01. Algebra of Sets and Set Functions.md

* PUSH ATTACHMENT : mt-01.png

* DELETE FILE : assets/img/posts/Mathematics/Measure Theory/mt-01.png

* [PUBLISHER] upload files #76

* PUSH NOTE : 01. Algebra of Sets and Set Functions.md

* PUSH ATTACHMENT : mt-01.png

* [PUBLISHER] upload files #77

* PUSH NOTE : 09. Lp Functions.md

* PUSH ATTACHMENT : mt-09.png

* PUSH NOTE : 08. Comparison with the Riemann Integral.md

* PUSH ATTACHMENT : mt-08.png

* PUSH NOTE : 07. Dominated Convergence Theorem.md

* PUSH ATTACHMENT : mt-07.png

* PUSH NOTE : 06. Convergence Theorems.md

* PUSH ATTACHMENT : mt-06.png

* PUSH NOTE : 05. Lebesgue Integration.md

* PUSH ATTACHMENT : mt-05.png

* PUSH NOTE : 04. Measurable Functions.md

* PUSH ATTACHMENT : mt-04.png

* PUSH NOTE : 03. Measure Spaces.md

* PUSH ATTACHMENT : mt-03.png

* PUSH NOTE : 01. Algebra of Sets and Set Functions.md

* PUSH ATTACHMENT : mt-01.png

* chore: remove images

* [PUBLISHER] upload files #78

* PUSH NOTE : 09. Lp Functions.md

* PUSH ATTACHMENT : mt-09.png

* PUSH NOTE : 08. Comparison with the Riemann Integral.md

* PUSH ATTACHMENT : mt-08.png

* PUSH NOTE : 07. Dominated Convergence Theorem.md

* PUSH ATTACHMENT : mt-07.png

* PUSH NOTE : 06. Convergence Theorems.md

* PUSH ATTACHMENT : mt-06.png

* PUSH NOTE : 05. Lebesgue Integration.md

* PUSH ATTACHMENT : mt-05.png

* PUSH NOTE : 04. Measurable Functions.md

* PUSH ATTACHMENT : mt-04.png

* PUSH NOTE : 03. Measure Spaces.md

* PUSH ATTACHMENT : mt-03.png

* PUSH NOTE : 01. Algebra of Sets and Set Functions.md

* PUSH ATTACHMENT : mt-01.png

* PUSH NOTE : 18. Extending Kubernetes.md

* PUSH ATTACHMENT : k8s-18.jpeg

* PUSH NOTE : 17. Best Practices for Developing Apps.md

* PUSH ATTACHMENT : k8s-17.jpeg

* PUSH NOTE : 16. Advanced Scheduling.md

* PUSH ATTACHMENT : k8s-16.jpeg

* PUSH NOTE : 15. Automatic Scaling of Pods and Cluster Nodes.md

* PUSH ATTACHMENT : k8s-15.jpeg

* PUSH NOTE : 14. Managing Pods' Computational Resources.md

* PUSH ATTACHMENT : k8s-14.jpeg

* PUSH NOTE : 13. Securing Cluster Nodes and the Network.md

* PUSH ATTACHMENT : k8s-13.jpeg

* PUSH NOTE : 12. Securing the Kubernetes API Server.md

* PUSH ATTACHMENT : k8s-12.jpeg

* PUSH NOTE : 11. Understanding Kubernetes Internals.md

* PUSH ATTACHMENT : k8s-11.jpeg

* PUSH NOTE : 10. StatefulSets - Deploying Replicated Stateful Applications.md

* PUSH ATTACHMENT : k8s-10.jpeg

* PUSH NOTE : 09. Deployments - Updating Applications Declaratively.md

* PUSH ATTACHMENT : k8s-09.jpeg

* PUSH NOTE : 08. Accessing Pod Metadata and Other Resources from Applications.md

* PUSH ATTACHMENT : k8s-08.jpeg

* PUSH NOTE : 07. ConfigMaps and Secrets - Configuring Applications.md

* PUSH ATTACHMENT : k8s-07.jpeg

* PUSH NOTE : 06. Volumes - Attaching Disk Storage to Containers.md

* PUSH ATTACHMENT : k8s-06.jpeg

* PUSH NOTE : 05. Services - Enabling Clients to Discover and Talk to Pods.md

* PUSH ATTACHMENT : k8s-05.jpeg

* PUSH NOTE : 04. Replication and Other Controllers - Deploying Managed Pods.md

* PUSH ATTACHMENT : k8s-04.jpeg

* PUSH NOTE : 03. Pods - Running Containers in Kubernetes.md

* PUSH ATTACHMENT : k8s-03.jpeg

* PUSH NOTE : 02. First Steps with Docker and Kubernetes.md

* PUSH ATTACHMENT : k8s-02.jpeg

* PUSH NOTE : 01. Introducing Kubernetes.md

* PUSH ATTACHMENT : k8s-01.jpeg

* [PUBLISHER] upload files #79

* PUSH NOTE : 02. Construction of Measure.md

* PUSH ATTACHMENT : mt-02.png
This commit is contained in:
2023-09-10 17:38:27 +09:00
committed by GitHub
parent e5f865ff0c
commit 3c0c6a13ca
54 changed files with 266 additions and 132 deletions

View File

@@ -7,10 +7,12 @@ title: "15. Automatic Scaling of Pods and Cluster Nodes"
date: "2021-07-18"
github_title: "2021-07-18-15-autoscaling"
image:
path: /assets/img/posts/k8s-15.jpeg
path: /assets/img/posts/Development/Kubernetes/k8s-15.jpeg
attachment:
folder: assets/img/posts/Development/Kubernetes
---
![k8s-15.jpeg](../../../assets/img/posts/k8s-15.jpeg) _How the autoscaler obtains metrics and rescales the target deployment (출처: https://livebook.manning.com/book/kubernetes-in-action/chapter-15)_
![k8s-15.jpeg](../../../assets/img/posts/Development/Kubernetes/k8s-15.jpeg) _How the autoscaler obtains metrics and rescales the target deployment (출처: https://livebook.manning.com/book/kubernetes-in-action/chapter-15)_
### 주요 내용
@@ -22,6 +24,7 @@ image:
이번 장에서는 pod 나 노드의 상태에 따라 자동으로 scaling 하는 방법을 알아본다.
## 15.1 Horizontal pod autoscaling
---
Horizontal pod autoscaling 은 **Horizontal controller** 가 pod 의 replica 수를 알아서 조절하는 것이다.
@@ -75,6 +78,7 @@ HPA 를 실제로 생성하기 위해서는 다음 명령어를 입력하면 된
```bash
$ kubectl autoscale deployment <DEPLOYMENT_NAME> --cpu-percent=<PERCENT> --min=<MIN> --max=<MAX>
```
- `PERCENT` 는 target value 로 지정할 CPU utilization 이다.
- `MIN`, `MAX` 는 scaling 으로 조절할 수 있는 pod 개수의 최솟값/최댓값이다.
@@ -156,6 +160,7 @@ https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkth
> Documentation 에서는 특별한 언급을 찾지는 못했다. 일단 `autoscale` 명령어로 `--min=0` 을 주고 생성해도 1 로 설정하는 것이 확인되었다.
## 15.2 Vertical pod autoscaling
---
만약 vertical scaling 이 지원됐다면, pod manifest 에서 resource requests 를 수정하는 방식으로 지원했을 것이라고 한다. 하지만 이미 생성된 pod 의 resource requests 는 수정이 불가능하다.
@@ -175,6 +180,7 @@ Experimental feature 중에, 새로 생성된 pod 의 CPU/메모리 requests 를
책이 쓰여질 당시 vertical pod autoscaling proposal 이 finalize 되고 있었다고 한다. 공식 문서를 참고해 달라고 한다.
## 15.3 Horizontal scaling of cluster nodes
---
Scaling 을 하다 보면 존재하는 노드의 자원을 다 쓰거나 기타 이유로 scheduling 이 불가능해지는 상황이 올 수도 있다.
@@ -201,7 +207,7 @@ Scheduler 가 scheduling 에 실패했을 때, Cluster Autoscaler 가 동작하
노드가 삭제될 것이라고 마킹되면, unschedulable 이라고 마킹되며, pod 들은 전부 삭제된다. 삭제되기 위해서는 애초에 모든 pod 들이 Replication 에 의해 관리되고 있었을 것이므로, 삭제된 pod 대신 다른 노드에 pod 가 자동으로 띄워진다.
> `kubectl cordon <node>` 를 하면 노드가 unschedulable 상태가 된다. 하지만 pod 들은 남아있는다. `kubectl drain <node>` 를 하면 unschedulable 상태가 되고 pod 가 전부 삭제된다.
> `kubectl cordon <node> ` 를 하면 노드가 unschedulable 상태가 된다. 하지만 pod 들은 남아있는다. `kubectl drain <node> ` 를 하면 unschedulable 상태가 되고 pod 가 전부 삭제된다.
### 15.3.2 Enabling the Cluster Autoscaler
@@ -216,6 +222,7 @@ Pod label selector 와 최솟값을 설정해서 생성하면 selector 에 매
```bash
$ kubectl create pdb <NAME> --selector=<SELECTOR> --min-available=<MIN>
```
- `SELECTOR` 는 pod label selector (`key=value`)
- `MIN` 은 사용 가능한 pod 개수의 최솟값