본문 바로가기

전체 글

(244)
K8S- daemonset 🔁 [클러스터 전체 배포 필요한 파드]✅ 1. DaemonSet기능: 클러스터의 모든 (또는 일부) 노드에 파드를 1개씩 배포사용 예시:로그 수집기 (예: Fluentd, Logstash)노드 모니터링 에이전트 (예: Prometheus Node Exporter)네트워크 플러그인 (예: Calico, Cilium)특징:새 노드가 클러스터에 추가되면 자동 파드 배포노드당 하나의 파드만 실행되도록 보장kubectl api-resourcesNAME SHORTNAMES APIVERSION NAMESPACED KINDapiVersion: apps/v1kind: DaemonSetmetadata: name: mydsspec: selector: matchLabels: app: webui templ..
K8S Controller ✅ 쿠버네티스 컨트롤러 정리컨트롤러 종류 역할 및 설명 사용 예시 특이사항DeploymentReplicaSet을 통해 파드를 관리하며 롤링 업데이트, 롤백 등 제공웹서버, 앱 서버 배포가장 많이 사용됨ReplicaSet지정된 수의 파드를 유지함Deployment 내부에서 사용됨단독 사용은 드묾Pod컨테이너 실행 단위nginx, redis 등 단일 실행컨트롤러 없이 사용 시 복구 불가StatefulSet고정된 이름, 순서, 저장소 등 상태가 중요한 파드 관리DB, Kafka, Zookeeper순서/볼륨 보장DaemonSet모든 노드에 1개씩 파드 배포로그 수집기, 모니터링노드 단위 실행Job한 번만 실행되는 작업DB 백업, 배치 처리실행 완료 후 종료CronJob주기적으로 실행되는 Job1시간마다 로그 정..
초기화/인프라 컨테이너 초기화 컨테이너순차적인 실행:초기화 컨테이너는 Pod 내의 주 컨테이너들보다 먼저 실행하나의 초기화 컨테이너가 끝나야만 다음 초기화 컨테이너가 실행모든 초기화 컨테이너가 종료되어야 주 컨테이너 시작Pod 상태 변경:초기화 컨테이너가 정상 완료 후 Pod는 Running 상태로 전환 이후 주 컨테이너 실행주 컨테이너와 다른 환경:초기화 컨테이너는 주 컨테이너와 동일한 Pod 안에서 실행되지만, 별도의 파일 시스템과 네트워크 환경 이미지는 주 컨테이너와 다르게 설정할 수 있습니다. 이를 통해 초기화 작업을 위한 도구나 스크립트를 실행주 용도:파일 준비: 파일 시스템의 초기화 작업(예: 데이터베이스 초기화, 로그 디렉토리 생성 등)서비스 의존성 해결: 주 컨테이너가 의존하는 서비스가 준비될 때까지 대기데이터 ..
K8S - Load Balance ✅ 핵심 요약kubectl port-forward는 "Pod 전체"에 대해 동작하고,Pod 안에 있는 특정 컨테이너를 직접 선택해서 포워딩하지는 않습니다.즉, Pod 안의 여러 컨테이너가 각각 다른 포트를 사용하면,그 포트들로 Pod 전체에 포트 포워딩을 할 수 있어요.어떤 컨테이너가 그 포트를 리슨 중인지에 따라 응답이 달라지는 거죠.🛠 예시: 외부에서 각각 접근mypod 안에 다음과 같은 구조가 있다고 가정할게요:mycon2 → 81번 포트에서 Nginx 실행mycon3 → 82번 포트에서 Nginx 실행그리고 kubectl port-forward를 다음처럼 실행합니다:kubectl port-forward pod/mypod 8081:81 8082:82외부의 localhost:8081 → Pod 내부..
K8S 실습 파드 생성(명령어)파드 이름 mypod1 mypod2컨테이너 이름 mycon1 mycon2이미지 nginxNS myns1Port 80kubectl run mypod --image --port 80 -n myns1kubectl run mypod --image=nginx \\ --overrides='{ "apiVersion": "v1", "kind": "Pod", "spec": { "containers": [{ "name": "mycon1", "image": "nginx" }] }}' \\ --dry-run=client -o yaml | kubectl apply -f -kubectl describe pods mypod1pod name container name 확인 가..
K8S POD 생성 [쿠버네티스 진행 상태]Pending : 클러스터에서 파드가 생성된 상태하나 이상의 컨테이너가 설정되지 않음실행 준비되지 않음Running : 노드에 파드 배치된 상태모든 컨테이너 생성 및 구동된 상테하나 이상의 컨테이너가 시작 및 실행 상태Succeed / Failed : 모두 종료 / 실패 종료1. Pod Phase (파드 상태 단계)파드의 상태는 status.phase 필드로 표현되며, 파드가 전체적으로 어떤 상태인지를 요약합니다.Phase 설명Pending파드가 쿠버네티스에 생성 1개 이상 컨테이너 이미지 미다운상태 노드에 스케줄되지 않음Running파드가 노드에 스케줄, 1개 이상 컨테이너가 실행 중 나머지도 실행 대기 중 또는 시작됨Succeeded파드 내 모든 컨테이너가 정상 종료 다시 시작..
DOCKER NAMESPACE/STATEFULSET [디폴트 네임스페이스 변경][기존 네임스페이스 확인]kubectl config view[context 생성 및 추가]kubectl config set-context kubernetes-user@cluster.local --cluster=cluster.local --user=kubernetes-admin --namespace=myns1Context "kubernetes-user@cluster.local" created. [기존 context 확인]$ kubectl config current-context [kubernetes-user@cluster.local로 변경]$ kubectl config use-context kubernetes-user@cluster.localSwitched to context..
Docker POD [POD 구성요소]Deployment → ReplicaSet → Pod리소스 역할Pod컨테이너가 실제로 동작하는 최소 단위ReplicaSet같은 Pod를 여러 개 복제해서 유지DeploymentReplicaSet을 자동으로 생성하고 관리해주는 컨트롤러 [Control Plane 구성요소]kube-apiserver모든 명령/요청이 오가는 핵심 진입점 (쿠버네티스의 프론트엔드 역할)인증, 권한 부여, REST API 처리etcd쿠버네티스의 모든 상태 데이터를 저장하는 Key-Value 저장소(데이터베이스)클러스터 설정, 파드 상태, 네트워크 정보 등을 저장kube-scheduler새로운 파드를 적절한 노드에 스케줄링(배치)kube-controller-manager다양한 컨트롤러들을 실행해서 클러스터 상태를..