[Kubernetes] Kubeconfig 파일
DevOps/Kubernetes2022. 6. 6. 13:53[Kubernetes] Kubeconfig 파일

🚀 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..

[Kubernetes] Taint & Toleration
DevOps/Kubernetes2022. 6. 6. 13:29[Kubernetes] Taint & Toleration

🚀 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이 컨트롤 ..

[Kubernetes] Cordon & Drain
DevOps/Kubernetes2022. 6. 6. 13:20[Kubernetes] Cordon & Drain

🚀 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..

[Kubernetes] Affinity (affinity, anti-affinity)
DevOps/Kubernetes2022. 6. 5. 10:10[Kubernetes] Affinity (affinity, anti-affinity)

🚀 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..

[Kubernetes] Pod Scheduling ( + kube-scheduler, nodeName, nodeSelector)
DevOps/Kubernetes2022. 6. 5. 10:00[Kubernetes] Pod Scheduling ( + kube-scheduler, nodeName, nodeSelector)

🚀 kube-scheduler 쿠버네티스 스케줄러 | Kubernetes kube-scheduler는 파드나 컨트롤러를 만들었을 때 또는 스케줄링을 할 때 파드를 어디에 배치시킬 것인지 결정한다. kube-scheduler는 각 노드를 필터링하고 스코어링한다. 필터링은 어떤 노드의 어떤 리소스를 볼 것인가 하는 기준을 정하는 것이고 스코어링은 해당 기준에 따라서 가중치를 두며 이에 기반해 점수를 매긴다. 즉, 노드가 여러개 있는 경우 각 노드마다 점수를 매겨서 파드를 만들었을 때 파드를 어디에 배치할 것인지 결정하는 것이 kube-scheduler가 하는 역할이다. 필터링, 스코어링을 어떻게 할 것인지 구성할 수 있다. 🚀 nodeName 노드에 파드 할당하기 | Kubernetes nodeName은 가..

[Kubernetes] HPA : Horisontal Pod AutoScaler (파드의 오토 스케일링)
DevOps/Kubernetes2022. 6. 4. 12:24[Kubernetes] HPA : Horisontal Pod AutoScaler (파드의 오토 스케일링)

🚀 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) : 개수를..

image