분류 전체보기
-
[따배쿠] Controller - StatefulSetkubernetes 2024. 12. 5. 16:25
StatefulSetPod의 상태를 유지해주는 ControllerPod 이름Pod의 볼륨 (스토리지)StatefulSet으로 Pod 생성 시, 0번부터 생성된다. ex) ns-nginx-0, ns-nginx-1, ns-nginx-2 StatefulSet Definition StatefulSet은 serviceName이라는 Field를 가지고 있다. 예시 # statefulset-exam.yaml 파일 작성root@master:~/Getting-Start-Kubernetes/6# cat statefulset-exam.yamlapiVersion: apps/v1kind: StatefulSetmetadata: name: sf-nginxspec: replicas: 3 serviceName: sf-servic..
-
[따배쿠] Controller - DaemonSetkubernetes 2024. 12. 5. 15:50
DaemonSetNode 당 Pod가 한 개씩만 실행되도록 보장로그 수입기, 모니터링 에이전트와 같은 프로그램 실행 시 유용Rolling update 기능 또한 포함 DaemonSet Definition ReplicaSet과의 차이점은, replicas 속성이 없다는 점이다.DaemonSet은 이미 노드 당 pod 1개만을 보장해주기 때문에, 별도로 replicas를 지정 안해줘도 된다.어차피 1개만 생성될 거기 때문 예시# node2 삭제root@master:~/Getting-Start-Kubernetes/6# kubectl delete nodes node2node "node2" deletedroot@master:~/Getting-Start-Kubernetes/6# kubectl get nodeNAME..
-
[따배쿠] Controller - Deploymentkubernetes 2024. 12. 5. 09:27
DeploymentReplicaSet을 제어해주는 부모 역할ReplicaSet을 컨트롤해서 Pod 수 조절Deployment -> ReplicaSet -> Pod 순으로 컨트롤Deployment가 ReplicaSet을 Control하고, ReplicaSet이 Pod를 컨트롤목적 : Pod 수 조절 & Rolling update & Rolling backRolling update? 애플리케이션의 새로운 버전을 점진적으로 배포하는 방법으로, 서비스의 가용성을 유지하면서 업데이트를 수행할 수 있도록 돕습니다.kubectl set image deployment = kubectl rollout history deployment # 업데이트 히스토리 확인Rolling Back?애플리케이션의 이전 버전으로 되돌..
-
[따배쿠] Controller - Replicasetkubernetes 2024. 12. 4. 15:10
ReplicasetReplicaSet은 지정된 수의 Pod 복제본이 항상 실행되도록 보장하는 컨트롤러Pod가 실패하거나 삭제되면, ReplicaSet은 자동으로 새로운 Pod를 생성하여 원하는 상태를 유지ReplicationController와 같은 역할을 하는 컨트롤러ReplicationController보다 풍부한 selector 정의 가능selector: matchLabels: component: redis matchExpressions: - {key: tier, operator: In, values: [cache]} - {key: environment, operator: NotIn, values; [dev]matchLabelskey: ValuematchExpressions 연산..
-
[따배쿠] Controller - ReplicationController란?kubernetes 2024. 12. 4. 09:26
ControlllerPod의 개수 보장 (Scale Out 보장)Controller을 삭제하면 종속된 Pod도 삭제됨 종류Replication ControllerPod 개수 보장 컨트롤러 파드의 복제본 수를 관리하여 항상 지정된 수의 파드가 실행되도록 보장합니다.ReplicaSetReplication Controller + 풍부한 Label 지원쿠버네티스에서 파드의 복제본을 관리하는 중요한 역할을 하며, Deployment와 함께 사용되어 애플리케이션의 배포 및 업데이트를 효율적으로 관리합니다DeploymentReplicaSet을 제어 (Rolling Update / Roll back) 애플리케이션의 배포 및 업데이트를 관리합니다. 롤링 업데이트와 롤백 기능을 제공하여 애플리케이션의 가용성을 높입니다.D..
-
[따배쿠] Pod - Pod 환경변수 설정과 실행 패턴kubernetes 2024. 12. 3. 14:07
환경변수Pod 내의 컨테이너가 실행될 때 필요로 하는 변수컨테이너 제작 시 미리 정의NGINX Dockerfile의 예ENV NGINX_VERSION 1.19.2ENV NUS_VERSION 0.4.3Pod 실행 시, 미리 정의된 컨테이너 환경변수를 변경할 수 있다. 혹은 환경변수를 새롭게 지정할 수도 있다. 예시 # pod-nginx-env.yaml 파일 작성root@master:~/Getting-Start-Kubernetes/5# cat pod-nginx-env.yamlapiVersion: v1kind: Podmetadata: name: nginx-pod-envspec: containers: - name: nginx-container image: nginx:1.14 ports: -..
-
[따배쿠] Pod - Pod에 Resource 할당하기 (CPU/memory requests, limits)kubernetes 2024. 12. 3. 10:15
Pod Resource 요청 및 제한Resource Requests파드를 실행하기 위한 최소 리소스 양 요청Resource Limits파드가 사용할 수 있는 최대 리소스 양 제한 Memory limit을 초과해서 사용하는 파드는 종료(kill)되며 다시 스케줄링 된다.해당 기능을 통해 파드가 과도한 리소스를 사용하는 것을 방지컨테이너 별로 Resource 설정도 가능하다. 특징 리소스 관리요청과 제한을 설정함으로써, 쿠버네티스는 클러스터의 리소스를 효율적으로 관리할 수 있습니다. 요청이 설정된 리소스는 스케줄링 시 고려되며, 제한은 Pod가 과도한 리소스를 사용하지 않도록 합니다.안정성요청과 제한을 통해 클러스터의 안정성을 높일 수 있습니다. 예를 들어, 특정 Pod가 갑자기 많은 리소스를 소모할 경우,..
-
[따배쿠] Pod - static Pod(feat. kubelet daemon)kubernetes 2024. 12. 2. 15:43
static podAPI 서버의 도움 없이, 특정 노드에 있는 kubelet 데몬에 의해 직접 Pod 실행보통 pod 생성하기 위해 kubectl run ~ 명령어를 master node(control plane)의 REST API server에 전달하고, Master node의 REST API server가 Scheduler에게 어떤 노드에 컨테이너를 실행하면 좋을지 질문하고, 응답 받는다.REST API server은 scheduler로 부터 응답받은 최적 노드의 kubelet에게 요청을 전달한다. ex) 최적 노드가 node1일 경우 node1의 kubelet하지만 stactic pod는 이러한 과정을 거치지 않고, 특정 노드에 있는 kubelet 데몬에 의해 작동된다./etc/kubernetes/..