Container/Kubernetes 썸네일형 리스트형 [K8S] CoreDNS coreDNS는 쿠버네티스에서 기본적으로 사용되는 DNS 서버로, 클러스터 내부의 서비스들이 서로 도메인 이름을 통해 통신할 수 있도록 지원하는 DNS Provider이다. Default로 설치되는 디플로이먼트는 kube-dns이며 kubeadm을 사용하여 kube-dns 대신 CoreDNS를 사용할 수 있다. (kubeadm v1.32 부터는 DNS 애플리케이션으로 CoreDNS만이 지원된다, 하지만 metadata.name 필드에 kube-dns 로 이름이 지정된다.) CoreDNS 설치https://github.com/coredns/deployment/tree/master/kubernetesCoreDNS의 특징 모든 Service에는 DNS 네임이 할당된다. svc-name.namespace.sv.. 더보기 [K8S] PV & PVC 일종의 Shared Storage로,기본 스토리지 운영환경을 분리시켜서 사용할 수 있다.관리자: 스토리지 구성 (PV)개발자: 필요한 만큼 요구 (PVC)일반적으로 Pod가 재시작되면 데이터가 사라지는데( emptyDir 라는 일시적인 공간에 저장), PV & PVC를 사용하면 데이터를 유지할 수 있다.Pod가 PVC를 마운트하여 스토리지를 사용하며, PVC가 삭제되면 PV는 설정된 정책에 따라 처리된다.[ 실습 ] /log의 데이터가 /var/log/webapp에 저장될 수 있도록 volume configurecontrolplane ~ ➜ kubectl edit pod webapp volumeMounts: - mountPath: /var/run/secrets/kubernetes.io/servi.. 더보기 [K8S] Storage/Volume CSI(Container Storage Interface)CSI는 컨테이너 오케스트레이션 시스템에서 스토리지 솔루션을 통합하고 사용할 수 있게 해주는 표준 인터페이스이다. CSI 표준이 도입됨으로써 스토리지 제공자는 쿠버네티스와 독립적으로 CSI 플러그인을 개발할 수 있게 되었고, 이를 통해 다양한 스토리지 솔루션의 확장성과 호환성이 크게 개선되었다. Volume 쿠버네티스에서 Pod는 일시적이며, Pod가 삭제되면 그 안의 데이터도 삭제된다. (컨테이너 내의 디스크에 있는 파일은 임시적이다.)kubelet은 컨테이너를 다시 시작하지만 초기화된 상태가 되며, Pod에서 같이 실행되는 컨테이너간에 파일을 공유할 때 큰 문제가 발생할 수 있다. 이 때문에 Volume을 Pod에 붙여서 데이터를 저장한다.. 더보기 CKA 시험준비 https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/learn/lecture/14224074?start=0#overview 시험보기전에 해야할 것1. Mock Exam 풀기2. Exam Simulator Test 하기3. 시험 dump문제 찾아서 풀어보기4. Exam Environment Demo 참고 URLCertified Kubernetes Administrator: https://www.cncf.io/certification/cka/Exam Curriculum (Topics): https://github.com/cncf/curriculumCandidate Handbook: https://www.cncf.. 더보기 [K8S] RBAC API 서버에 접근하기 위해서는 인증 작업이 필요하다.User 인증(Authentication) → 권한 확인(Authorization) → 요청 확인(Admission Control) → 요청 승인 RBAC을 이용한 권한 제어사용자의 역할에 따라 리소스에 대한 접근 권한 가진다. ex ) Role 예제: default 네임스페이스의 Pod에 대한 get,watch,list 할 수 있는 권한 줄 것Pod는 코어 API기 때문에 apiGroups를 따로 지정하지 않는다. 만약 리소스가 job이라면 apiGroups에 "batch"를 지정resources에는 Pods,deployments,service등 사용할 API resource들을 명시한다.verbs에는 단어 그대로 나열된 API 리소스에 허용할 기.. 더보기 [K8S] cordon & drain 노드 스케줄링 중단(cordon)및 허용(uncordon) 클러스터의 특정 노드에서 Pod을 배치하지 않거나 제거할 때 사용하는 명령어cordon 명령을 내부적으로 실행하여 노드를 스케줄링 불가능 상태로 만든 뒤, 실행 중인 Pod을 다른 노드로 이동(재스케줄링)하거나 종료한다. cordon특정 노드를 스케줄링 불가능 상태(Unschedulable)로 설정한다.cordon 명령을 사용하면 새로운 Pod는 해당 노드에 스케줄링되지 않지만, 이미 실행 중인 Pod에는 영향을 주지 않는다.사용 사례노드 유지 관리 작업을 준비할 때특정 노드에서 새로운 워크로드 배치를 방지하고 싶을 때drain특정 노드에서 모든 Pod을 안전하게 제거한다.drain은 Pod를 다른 노드로 재스케줄링하거나 종료하여 노드를 비우는 .. 더보기 [K8S] Taint & Toleration 파드(Pod)와 노드(Node) 간 스케줄링 규칙을 정하기 위해 사용된다. Taint 노드에 적용되는 속성으로, 특정 조건을 만족하지 않는 파드가 해당 노드에 스케줄링되지 않도록 제약 조건을 설정📖 Pod와 node의 관계, Pod가 어떤 노드에 assign될지에 대한 restriction주요 특징: 노드 보호: 특정 노드를 특정 작업(예: 시스템 프로세스 전용)으로 예약파드 제한: 지정된 파드만 특정 노드에 배포되도록 제한키-값-효과: Taint는 키(Key), 값(Value), 효과(Effect)의 조합으로 정의Key: Taint를 식별하는 키Value: 추가적인 설명 정보 제공Effect: Taint가 작동하는 방식을 정의 Node taint, Pod tolerationTaint는 제한을 설정.. 더보기 [K8S] Affinity & antiAffinity Node Affinity는 Kubernetes에서 Pod의 스케줄링 제약 조건을 정의하는 메커니즘 특정 조건을 가진 노드에만 Pod가 스케줄링되도록 설정한다. 노드의 특정 집합에만 pod를 스케줄하도록 지시.nodeSelector: selector filed에 명시된 모든 LABEL이 포함되어야 배치됨nodeAffinity: 특정 노드에만 Pod가 실행되도록 유도 spec.affinity.nodeAffinity 필드에서 설정된다.요구조건: 조건이 맞는 파드에 가중치를 줘서 가중치가 가장 높은 파드에 배치필수 조건: requiredDuringSchedulingIgnoredDuringExecution 조건이 만족되지 않으면 Pod는 해당 노드에 스케줄링되지 않음 노드 조건이 나중에 바뀌더라도 Pod는 계속 .. 더보기 이전 1 ··· 4 5 6 7 8 9 10 다음