본문 바로가기

Container/Kubernetes

[K8S] TS - Worker Node Failure certified-kubernetes-administrator-with-practice-tests 301강참고: https://kubernetes.io/docs/reference/node/node-status/ ⭐Woker Node에는 docker 데몬(runtime)과 kubelet (→ kube-proxy, cni)이 반드시 실행중이어야 한다.이 두개 중 하나라도 실행 중이지 않다면 worker node는 Not Ready 상태가 된다.Cluster info 확인controlplane:~$ kubectl cluster-info Kubernetes control plane is running at https://172.30.1.2:6443CoreDNS is running at https://17.. 더보기
[K8S] TS - Control Plane Failure 📑 Deployment를 통해서 ReplicaSet을 배포시켰는데 제대로 작동을 안하면 or 확장이 되지 않는다면 kube-controller-manager를 먼저 확인해야 한다. 📑 특정 control-plane에 문제가 있으면 /etc/kubernetes/manifest에서 yaml file을 확인해야한다.  certified-kubernetes-administrator-with-practice-tests 298강Node 상태 확인kubectl get podskubectl get nodesControlplane Pods 및 Services 확인$ kubectl get pods -n kube-system$ service kube-apiserver status$ service kube-controll.. 더보기
[K8S] TS - Application Failure 🛠️Pod가 계속 Waiting 상태인 경우 → worker node에 스케줄링은 되었지만 해당 노드에서 실행할 수 없음을 의미한다. (일반적으로 이미지 풀링(pulling)에 실패) 🛠️ Pod는 Running 상태이지만 해야 할 일을 하지 않고 있을 경우→ 명령어 오타 확인# --validate 옵션으로 yaml 확인 가능$ kubectl apply --validate -f mypod.yaml🛠️ Service 디버깅 (svc는 파드 집합에 대한 로드 밸런싱 기능을 제공)→ Service의 Endpoint 존재하는지 확인 (apiserver는 endpoints 리소스를 생성하고 available 상태로 만든다)→ Endpoint 수가 서비스에 속하는 파드 수와 일치하는 지 확인→ Service에.. 더보기
[K8S] Multiple Container 같은 lifecycle 을 공유하는 Multiple container pods.같은 Network, Storage Volume을 공유한다.   # command 이용해서 만들기controlplane ~ ➜ kubectl run yellow --image=busybox --dry-run=client -o yaml > yellow.yaml# yellow.yaml 수정 controlplane ~ ➜ cat yellow.yaml apiVersion: v1kind: Podmetadata: creationTimestamp: null labels: run: yellow name: yellowspec: containers: - image: busybox name: lemon resources.. 더보기
[K8S] Cluster Upgrade Kubernetes Packageskubeadm: 클러스터를 부트스트랩하는 명령kubelet: Pod와 Container 시작과 같은 작업을 수행하는 컴포넌트kubectl: 클러스터와 통신하기 위한 커맨드 라인 유틸리controlplane ~ ➜ k get nodesNAME STATUS ROLES AGE VERSIONcontrolplane Ready control-plane 61m v1.28.0node01 Ready 61m v1.28.0v1.11.3v1: major version11: minor version-- Features, Functionalities (monthly releases)3: patc.. 더보기
[K8S] Logging & Monitoring Logging기본 로그 관리  - kubectl logsPod 내 모든 컨테이너의 로그가 조회 가능하지만 Pod가 삭제되면 해당 로그도 삭제된다.# 특정 컨테이너 로그 조회$ kubectl logs my-pod -c my-container# 모든 컨테이너의 로그 조회$ kubectl logs my-pod --all-contaiers=true# 실시간 log stream 확인 (-f)$ kubectl logs -f my-pod Multiple container의 경우 특정 container name을 명시$ kubectl logs -f $ kubectl get podsNAME READY STATUS RESTARTS AGEwebapp-2 2/2 Running 0 .. 더보기
[K8S] kube-scheduler kube-scheduler는 쿠버네티스 node의 pods들의 scheduling을 관리하는 컴포턴트로, 클러스터 내에서 실행될 pod를 적절한 노두에 배치하는 역할을 한다. 즉, 어떤 파드를 어떤 노드에서 실행할 것인가를 결정한다.✔ pod를 node에 두는 것을 결정하는 것이 아니다 ☞ kubelet의 업무 주요 역할파드 배치 결정: 스케줄링이 필요한 새 파드가 생성되면, kube-apiserver가 이를 kube-scheduler로 전달하고, 클러스터 내 노드 중 가장 적합한 노드를 선택한다.스케줄링 조건 평가:파드 요구사항과 노드 리소스 상태를 고려하여 적합한 노드를 선택한다.예: CPU, 메모리, 태그(label), 노드 셀렉터(label selector) 등의 조건클러스터 리소스 최적화: 클러.. 더보기
[K8S] ETCD Backup 및 Restore etcd (분산 키-값 저장소)쿠버네티스에서 운영되는 모든 objects는 Nodes, configs, Secret, Roles 등을 받아서 etcd에 저장한다.  따라서 etcd 데이터의 손실은 Kubernetes 클러스터 전체에 심각한 영향을 미칠 수 있으므로, 정기적인 백업과 복구 전략이 필수적이다.etcd Cluster는 master node에 static pod로 호스트되며, cluster의 state와 같은 정보를 저장한다. # ETCDCTL ETCDCTL은 etcd를 위한 command line client이다.ETCDCTL은 Version 2 and Version 3를 사용하고, default로는 Version 2로 설정된다.back up과 restore와 같은 작업을 하기 위해서는 ETC.. 더보기