CKA (12) 썸네일형 리스트형 [k8s] Service : selector / endpoints / (port, targetPort) Kubernetes Service는 "Pod는 IP가 자주 바뀌니까, 고정된 접속 지점(가상 IP/DNS)을 만들고 뒤에 Pod들을 붙여주는" 리소스다.용어정리selectorService가 "어떤 Pod들을 내 뒤에 붙일지" 고르는 라벨 조건spec.selector에 들어감endpoints / endpointsliceselector로 선택된 Pod들이 실제로 연결된 결과 목록 (Pod IP:Port)즉, "Service 뒤에 누가 붙어 있는지"를 보여주는 실체kubectl get endpoints 또는 kubectl get endpointslice로 확인port / targetPortport: 클러스터 내부에서 Service가 받는 포트targetPort: Pod(컨테이너)로 실제 전달되는 포트예: 서비.. [k8s] Label Label 이란?쿠버네티스에서 Label은 리소스(Deployment/Pod/Service 등)에 붙이는 키-값(key=value) 태그다.라벨 자체는 "동작"을 만들진 않지만, 쿠버네티스는 라벨을 이용해서 대상을 선택하고 그룹화 한다. 라벨이 중요한 이유는 대표적으로 아래 기능들이 라벨을 사용하기 때문:Service selector: 어떤 Pod로 트래픽을 보낼지 선택Deployment / ReplicaSet selector: 어떤 Pod를 관리할지 선택(그 외) NetworkPolicy, affinity/anti-affinity, monitoring 필터링 등Label 조회 기본 3종1) 전체 라벨 같이 보기kubectl get pods --show-labels2) 특정 라벨을 컬럼으로 추가해서 보기.. [k8s] Taint & Toleration 정리 : Pod 스케줄링 제어와 Pending 디버깅 Taint/Toleration 한 줄 정의Taint : "이 노드에는 아무나 오지 마"라고 노드가 거는 거부/제한 조건Toleration: "나는 그 taint를 견딜게(허용할게)"라고 파드가 내는 입장권노드가 막고, 파드가 예외로 들어가는 구조NodeSelector/Affinity와 차이nodeSelector/affinity: 파드가 '가고 싶은 노드'를 고르는 필터taint/toleration: 노드가 '받고 싶은 파드'를 제한 (허용된 파드만 들어옴)Taint의 구성 요소 (key=value:effect)형식:key=value:effectkey:effect (value 생략 가능)effect 3종류:1. NoScheduletoleration 없는 파드는 스케줄링 불가2. PreferNoSchedul.. [k8s] node label 붙이기 1) node에 label 붙이기kubectl label node (ex.disk=ssd) 2) node의 label 확인kubectl get nodes --show-labels | grep -E 'disk=ssd|disk=hdd'kubectl get nodes -L disk 3) node의 label 삭제3-1) label 1개 삭제kubectl label node disk- 3-2) label 여러 삭제kubectl label node disk- team- zone- [k8s] Deployment 정리(ReplicaSet, RollingUpdate, Rollback) Deployment란?Deployment는 Pod를 직접 띄우는 리소스가 아니라, "원하는 상태(desired state)의 Pod를 안정적으로 유지/업데이트"하도록 ReplicaSet을 관리하는 상위 컨트롤러."항상 nginx Pod 2개를 유지해줘""이미지를 nginx:1.27 → 1.28로 무중단(rolling)으로 바꿔줘""업데이트가 문제 생기면 이전 버전으로 롤백해줘"이런 걸 담당.Deployment가 관리하는 흐름Deployment → ReplicaSet → PodDeployment: 업데이트 전략/버전 히스토리/롤백/스케일 등 "운영 레벨"을 관리ReplicaSet: 특정 Pod 템플릿으로 "몇 개 유지할지" 관리Pod: 실제 컨테이너 실행 단위즉, Deployment를 만들면 보통 내부적으.. [k8s] 스케줄링 기본기: nodeSelector / nodeAffinity / podAntiAffinity로 Pod 배치 제어하기 (실습 포함) 1. nodeSelector: 가장 단순한 "노드 라벨 매칭"nodeSelector는 Pod가 특정 노드 라벨을 만족할 때만 스케줄되도록 강제한다.특징라벨 key: value를 정확히 매칭조건은 사실상 AND만 가능(표현력이 제한적)언제 유용한가?"이 Pod는 SSD 노드에서만"처럼 단순한 강제 배치예시apiVersion: v1kind: Podmetadata: name: ns-podspec: nodeSelector: disktype: ssd containers: - name: app image: nginx:1.27 확인 커맨드kubectl get pod ns-pod -o widekubectl describe pod ns-pod2. nodeAffinity: nodeSelector의 확장판.. [k8s] Secret 정리 (ConfigMap 차이) 개요Kubernetes를 쓰다 보면 "설정값을 Pod에 어떻게 안전하게 전달하지?"라는 상황이 자주 생긴다.이때 사용하는 대표 리소스가 ConfigMap과 Secret인데, 둘은 주입 방식(Env/Volume)이 거의 동일하지만 저장하는 데이터 성격과 보안 관점에서 중요한 차이가 있다.1. Secret이란?Secret은 비밀번호, 토큰, 인증서 같은 "민감한 값"을 Kubernetes 리소스로 저장하고 Pod에 주입하는 방식이다. 예를 들어 아래 같은 값들이 Secret으로 관리된다.DB 계정/비밀번호API Key / Access TokenTLS 인증서 / 개인키Docker Registry 로그인 정보즉, Secret의 역할은 간단히 말해:"민감한 설정값을 클러스터에 저장해두고, 필요한 Pod에만 전달해.. [k8s] ConfigMap 정리(Env/Volume 주입, 변경 반영, 실습 포인트) ConfigMap 한 줄 요약ConfigMap은 "쿠버네티스 클러스 안에 설정값을 저장해두고 Pod에서 꺼내 쓰게 해주는 리소스"이다.ConfigMap을 쓰는 이유1) 이미지와 설정을 분리컨테이너 이미지는 바꾸지 않고, 설정만 바꿔서 다른 환경에 배포할 수 있다.이미지: myap:1.0 (고정)설정: APP_MODE=dev / APP_MODE=prod (환경별 ConfigMap)2) YAML로 관리 가능 (GitOps / 추적 / 롤백에 유리)ConfigMap은 Kubernetes 오브젝트라스 kubectl apply 로 배포하고 변경 이력을 남기기 쉽다.3) Pod에 주입 방식을 표준화앱에서 설정을 읽는 방식(환경변수/파일)에 맞춰 ConfigMap을 깔끔하게 연결할 수 있다.ConfigMap은 "로컬.. 이전 1 2 다음