🚀 Kubeconfig ~/.kube/config : 쿠버네티스 설정 파일 apiVersion: v1 kind: Config preferences: {} clusters: - name: cluster.local cluster: certificate-authority-data: LS0tLS1... server: https://127.0.0.1:6443 - name: mycluster cluster: server: https://1.2.3.4:6443 users: - name: myadmin - name: kubernetes-admin user: client-certificate-data: LS0tLS1... client-key-data: LS0tLS1... contexts: - context: cluste..
🚀 Taint & Toleration 🚀 Taint 테인트(Taints)와 톨러레이션(Tolerations) | Kubernetes Taint : 특정 노드에 역할을 부여 Toleration : Taint 노드에 스케줄링 허용 vagrant@k8s-node1 ~/schedule/affinity kubectl describe node node1 Taints: node-role.kubernetes.io/master:NoSchedule 현재 시스템에서는 node1이 컨트롤 플레인이자 워커 노드로 작동하고 있다. 컨트롤 플레인 시스템에는 다음과 같이 Taint key에 Effect가 세팅되어 있다. 워커 노드에는 파드를 배치할 수 있으므로 node1에도 파드가 배치될 수 있다. 만약 node1이 컨트롤 ..
🚀 Cordon & Drain 🚀 Cordon 스케줄링 금지 kubectl cordon 스케줄링 허용 kubectl uncordon vagrant@k8s-node1 ~/schedule/affinity kubectl get nodes NAME STATUS ROLES AGE VERSION node1 Ready control-plane,master 10d v1.22.8 node2 Ready 10d v1.22.8 node3 Ready 7d23h v1.22.8 node의 STATUS를 주의깊게 보자 vagrant@k8s-node1 ~/schedule/affinity kubectl cordon node2 node/node2 cordoned node2에 cordon을 걸었다. vagrant@k8s-no..
🚀 Affinity nodeSelector의 정책이 경직되어 있다면 Affinity는 선호도를 이용해 가능하면 선호하는 것을 사용하고 아니어도 허용한다. 즉, 스케줄링에 유연성을 둔다. affinity pod node anti-affinty pod apiVersion: v1 kind: Pod metadata: name: with-node-affinity spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 preferre..
🚀 kube-scheduler 쿠버네티스 스케줄러 | Kubernetes kube-scheduler는 파드나 컨트롤러를 만들었을 때 또는 스케줄링을 할 때 파드를 어디에 배치시킬 것인지 결정한다. kube-scheduler는 각 노드를 필터링하고 스코어링한다. 필터링은 어떤 노드의 어떤 리소스를 볼 것인가 하는 기준을 정하는 것이고 스코어링은 해당 기준에 따라서 가중치를 두며 이에 기반해 점수를 매긴다. 즉, 노드가 여러개 있는 경우 각 노드마다 점수를 매겨서 파드를 만들었을 때 파드를 어디에 배치할 것인지 결정하는 것이 kube-scheduler가 하는 역할이다. 필터링, 스코어링을 어떻게 할 것인지 구성할 수 있다. 🚀 nodeName 노드에 파드 할당하기 | Kubernetes nodeName은 가..
🚀 HPA : Horisontal Pod AutoScaler Horizontal Pod Autoscaling | Kubernetes 지금까지 우리는 kubectl scale, apply, replace, edit, patch 등의 명령어를 이용해서 ReplicaSet, Deployment 또는 StatefulSet과 같은 리소스들의 replicas 개수를 변경할 수 있었다. 앞선 방식은 스케일링을 수동으로 하는 것이고 Horisontal Pod AutoScaler(HPA)는 자동 스케일링하는 것이다. HPA : Deployment, ReplicaSet, StatefulSet의 복제본 개수를 조정 세가지의 공통점은 모두 replicas를 사용한다는 것이다. Scale out(Horisontal) : 개수를..