Kubernetes

Kubernetes

[Kubernetes][따배쿠 6-4] DaemonSet + Rolling Update

DaemonSet Controller 노드당 pod가 한 개씩 실행되도록 보장. 로그 수입기, 모니터링 에이전트와 같은 프로그램 실행 시 적용 노드가 두 개일 때, daemon set으로 실행을 요청하면 노드당 pod 하나씩 생성하고, 노드가 새로 하나 더 추가로 생성되면 해당 노드에도 pod 하나가 동작되게 보장한다. DaemonSet Definition # Replicaset definition apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-nginx spec: replicas: 3 selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui spec..

Kubernetes

[Kubernetes] Rolling Update를 위한 Deployment

Deployment Controller Deplyment가 ReplicaSet을 컨트롤해서 Pod 수를 조절 Deployment → ReplicaSet → Pod Rolling update와 Rolling back 지원 이전에 배운 ReplicaSet과는 yaml 파일내의 kind 부분만 다르고 나머지는 동일하다. apiVersion: apps/v1 kind: ReplicaSet -> Deployment metadata: name: rs-mainui spec: replicas: 2 selector: matchLabels: name: apache app: main rel: stable template: metadata: name: httpd-pod labels: name: apache app: main r..

Kubernetes

livenessProbe : Self-healing Pod 만들기

liveness probe : pod가 계속 실행할 수 있음을 보장 pod의 spec에 정의 [매커니즘] httppGet probe 지정한 ip 주소, port, path에 HTTP GET 요청을 보내, 해당 컨테이너가 응답하는지를 확인한다. 반환코드가 200이 아닌 값(ex 500)이 나오면 오류. 컨테이너를 다시 시작한다. livenessProbe: httpGet: path: / port: 80 tcpSocket probe 지정된 포트에 TCP 연결을 시도, 연결되지 않으면 컨테이너를 다시 시작.exec probe : exec 명령을 전달하고 명령의 종료 코드가 0이 아니면 컨테이너를 다시 시작한다. livenessProbe: tcpSocket: port: 22 exec probe exec 명령을 전..

Kubernetes

[Kubernetes][따배쿠 6-2] ReplicaSet

컨트롤러 두 번째! Replica Set ReplicaSet은 Pod의 개수를 보장해준다는 성격으로는 앞서 배운 Replication Controller와 동일하다. 하지만 더 다양한 selector를 제공한다는 점에서 차이점이 있다. Replication Controller의 selector는 key와 value가 일치하는 것만 확인할 수 있었다면 ReplicaSet은 matchLabels와 matchExpression 두 종류의 selector와 Operator를 통해서 더 풍부한 조건을 표현할 수 있다. matchExpression 연산자 In : key와 value를 지정하여 key, value가 일치하는 pod만 연결 NotIn : key는 일치하고 value는 일치하지 않는 pod에 연결 Ex..

Kubernetes

[Kubernetes] VM 쿠버네티스 실습환경 설정 - kubectl 설치

쿠버네티스 실습 환경을 설정하기 위해서 3개의 가상머신을 설정해준다. 1개는 master node로 이용하고 나머지 두 개는 worker node로 사용한다. 따배쿠 강의를 보고 따라했는데, 강의 제작당시와 현재 container runtime 방식이 바뀌어서 설치하는 데 조금 시간이 걸렸다. 먼저 아래글을 따라서 가상머신을 하나만 만들어준다. 중요한 것은 가상머신의 메모리 2GB이상, CPU 2코어 이상을 설정해주는 것이다. 가상머신 생성하고 Ubuntu 20.04 설치하기 0. Ubuntu 20.04 이미지 파일 다운로드 Ubuntu 20.04.5 LTS (Focal Fossa) Select an image Ubuntu is distributed on three types of images descr..

Kubernetes

[Kubernetes][따배쿠 6-1] Controller - Replication Controller

Controller란? 특정 애플리케이션 운영에 필요한 pod의 개수를 결정하고 보장하는 역할 쿠버네티스 API로 제공되는 컨트롤러는 7가지로 각자 특징을 가진다. (라고 따배쿠 강의에서 그랬지만 공식문서를 보니 8가지이다. kubernetes v1.23부터 TTL-after-finished controller가 추가되어 총 8가지이다. 해당 내용 공식문서는 2022년 8월에 작성되었다.) 워크로드 리소스 운영 수준의 컨테이너 오케스트레이션 kubernetes.io Replication Controller 요구하는 pod의 개수를 보장하며 파드 집합의 실행을 항상 안정적으로 유지하는 것을 목표 요구하는 pod 개수보다 부족하면 template을 이용해 pod를 추가 요구하는 pod 수 보다 많으면 최근에..

Kubernetes

[Kubernetes] 따배쿠 5강 문제풀이

문제 1번 Create a static pod on node1 called mydb with image redis. user /etc/kubernetest/manifaests as the static pod path for example kubelet configured for static pods pod mydb-node1 is up and running Create this pod on node1 and make sure that it is recreated/restarted automatically in case of a failure 필요한 조건 : redis image, static pod, livenessprobe 풀이 1 node1으로 이용해서 staticPodPath를 확인 cat /var..

Kubernetes

[Kubernetes] pod에 resource 할당하기 | 환경변수 설정과 실행 패턴

pod에 Resource 할당하기 새로운 파드를 생성할 때 스케쥴러는 각 노드에 사용중인 리소스를 고려해서 배치 etcd 통해서 cpu, memory 사용량 체크. pod당 리소스의 제한을 설정하므로써 디도스 공격시 전체 시스템 장애를 예방 할 수 있음 request, limit으로 resource를 control한다. Resource Requests : 파드를 실행하기 위한 최소 리소스 양을 요청 Resource Limits : 파드가 사용할 수 있는 최대 리소스 양을 제한 실행 중 memory limts을 넘어서 실행되명 해당 파드는 재실행된다. resource 정의할 때 requests만 정의하면 limits은 설정되지않고, limits만 정의하면 request는 limits과 동일하게 설정된다. ..

Heaea
'Kubernetes' 카테고리의 글 목록