목록Study (269)
전공공부
Labels 사용자가 필터로 사용해서 Label에 따라서 사용 할 수 있게 끔 key value 쌍을 제공해줍니다. pod-defination.yaml apiVersion: v1 kind: Pod metadata: name: myapp-pod lables: app: app1 function: Front-end spec: containers: - name: data-processor image: data-processor ports: - containerPort: 8080 - name: log-agent image: log-agent Selectors kubectl get pods --selector app=app1 여러 Label 검색 kubectl get pod --selector =,=,= #여러 L..
쿠버네티스 Pod의 로그를 보는 법 kubectl logs -f 그런데, 멀티 Pod 라면 어떻게 될까? kubectl logs -f pod-defination.yaml apiVersion: v1 kind: Pod metadata: name: myapp-pod spec: containers: - name: data-processor image: data-processor ports: - containerPort: 8080 - name: log-agent image: log-agent 위와 같은 상황에서 log-agent의 로그를 보려면... kubectl logs -f pod-defination log-agent Monitor 쿠버네티스는 우선 완전한 모니터링 솔루션을 제공하지 않습니다. 그래서, 오픈 ..
POD Status - 일반 순서도 1. Pending : 처음 포드 생성시 노드에 배치 되지 않으므로 2. CotainerCreating : 컨테이너 작동전 받기 3. Running : 가동 livenessProbe : 컨테이너의 동작 여부를 판단함, 실패시 k8s이 container 재시작을 함 readinessProbe : 컨테이너가 준비 되었는지 판단함, 만약 실패시 Pod가 Service에서 삭제됨 POD Conditions Ready 상태여도 Application Program이 Running 준비 중 일 수도 있습니다. (WAS 서버가 실행되자마자 준비 되지 않는 상황을 상상해봅시다.) Readiness Probe 위와 같은 상황을 준비하기 위해서 app 내부로 테스트 해서 ready 상태인..
k8s에는 다양한 타입의 멀티 컨테이너 포드 방식이 존재합니다 Ambassador, Adapter, Sidecar Pod에 각각 페어 형태로 기능이 달라도 같이 공용으로 움직이는 Pod가 필요하다면 MultiContainer Pod가 필요합니다. 종속성을 가지는 포드들 끼리 묶어 줄 수 있어야 하죠. Create pod-definition.yaml apiVersion: v1 kind: Pod metadata: name: myapp-pod spec: containers: - name: data-processor image: data-processor ports: - containerPort: 8080 - name: log-agent image: log-agent Design Patterns 1. Sidec..
1. Node Selector Label Nodes 노드에 라벨을 붙이는 방법 kubectl label nodes = kubectl label nodes node-1 size=Large pod-definition.yaml apiVersion: kind: Pod metadata: name: myapp-pod spec: containers: - name: data-processor image: data-processor nodeSelector: size: Large # Node에 할당된 Label(key,value)을 통해서 Large Node 인지 알아봄 하지만, 위와 같이 nodeSelector로 모든 노드에 붙일 수는 없다 size middle과 같이 여러 다른 상황이라면 일일이 nodeSelector..
1. Taint - Node - 노드가 두는 제한 kubectl taint nodes node-name key=value:taint-effect taint-effect는 Taint를 견디지 못하는 Pod가 할당 되었을때의 정책을 제시합니다. taint-effect : [Noschedule | PreferNBoSchedule | NoExecute] 1-1) Taint - NoExecute - Taint의 제한이 걸려서 실행이 되지 않고 Terminate 되는 Pod가 있을 수 있다. 예시) kubectl taint nodes node1 app=blue:NoSchedule 2. Toleration - Pods - 명시적으로 Toleration 되어진 Pod만 Taint된 노드 에 접근 할 수 있게 됌 2-1..
Pod는 모두 리소스가 필요합니다. 쿠버네티스 스케줄러가 이를 결정해서 포드와 노드에 사용 가능한 리소스를 배정합니다. 그래서, 애플리케이션 개발자 관점에서 이 주제는 Pod 내부 Cpu 불충분 문제를 해결 할 수 있을 듯합니다. 대표적인 리소스 부족으로 인한 Pending Pod 중 일부는 Insufficient cpu를 일으키고 Pending 되어집니다. 기본적인 Pod의 자원으로는 CPU : 0.5 , Memory : 256Mi를 차지합니다. 이것을 수정하기 위해서 아래와 같이 변경할 수 있습니다. pod-definition.yaml apiVersion: v1 kind: Pod metadata: name: simple labels: name: simple spec: containers: - name..
Account User Account, Service Account - User Account : Admin, Developer - Service Account : Jenkins, Promethus 등 응용 프로그램이 쿠버네티스 api를 사용 하려면 서비스 Account 등록이 필요하다. kubectl create serviceaccount dashboard-sa kubectl get serviceaccount kubectl describe dashboard-sa //서비스 계정의 토큰을 볼 수 있다. 비밀 객체로 생성됨 kubectl get secret dashboard-sa-token... //서비스 토큰 확인 가능 이렇게 설정을 해두면 curl 요청시 header에 Authorization: Bea..