k8s86 [K8s] Deployment Deployment란? ReplicaSet을 제어해서 pod수를 조절하는 부모역할 Rolling update & Rolling back pod를 점진적으로 새로운 것으로 update하여 deployment update가 서비스 중단 없이 이루어질 수 있도록 하는 것 Rolling update : kubectl set image deployment = --record --record : update 과정을 history로 기록 Rolling back : kubectl rollout history deployment kubectl rollout undo deploy 롤링 업데이트 수행하기 definition apiVersion: apps/v1 kind: Deployment # kind 값만 다를 뿐 Repl.. 2022. 10. 4. 쿠버네티스 이론STEP11 Scheduling 1 Taint & Toleration ABTCEFG♪ 안녕하세요, 여러분! BTC_김쿼카입니다. 쿠버네티스의 스케줄링에 대해 알아보는 첫번째 시간! 오늘은 taint와 toleration에 대해 알아보도록 해요. taint Node에 적용되는 속성으로, Node에 스케줄링될 Pod를 제한할 수 있는 기능을 제공함 노드마다 설정 가능하며, 설정한 노드에는 pod가 스케줄 되지 않음 taint 옵션 NoSchedule toleration이 없으면 pod가 스케줄되지 않음 기존에 실행되던 pod에는 적용되지 않으며 앞으로 실행될 Pod에 대해서만 스케줄링 제한 PreferNoSchedule toleration이 없으면 pod가 스케줄되지 않음 기존 실행 중인 Pod에는 적용되지 않으며, 앞으로 생성될 Pod도 스케줄링 되는 것을 선호하진 않지만 .. 2022. 9. 27. [K8s] ReplicationController & ReplicaSet ReplicationController란? 요구하는 pod의 개수를 보장하며 pod 집합의 실행을 항상 안정적으로 유지하는 것을 목표 요구하는 pod의 개수가 부족하면 template를 이용해 pod를 추가 요구하는 pod 수 보다 많으면 최근에 생성된 pod를 삭제 기본구성 selector replicas template 반드시 selector의 key, value 값을 labels로 가지고 있어야 함 definition apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: replicas: 3 selector: app: web template: metadata: name: nginx-pod labels: app: web s.. 2022. 9. 26. [K8s] Pod에 Resource 할당(cpu/memory requests, limits) & K8s Pod 환경변수 설정과 실행 패턴 Resource requests pod를 실행하기 위한 최소 resource 양을 요청 Resource limits pod가 사용할 수 있는 최대 resource 양을 제한 memory limit을 초과해서 사용되는 pod는 종료(OOM Kill)되며 다시 scheduling 된다 limits만 설정할 경우 자동으로 limits와 동일한 값으로 requests 설정됨 Container resource 설정 예 container별로 resource 설정 apiVersion: v1 kind: Pod metadata: name: nginx-pod-env spec: containers: - name: nginx-container image: nginx:1.14 ports: - containerPort: 80 p.. 2022. 9. 21. [K8s] Init container & Infra container Init container란? main container를 실행하는데 필요한 초기화 및 환경 구성 app container 실행 전에 미리 동작시킬 container init container가 모두 실행된 후에 app container를 실행 Init Containers 참고 [ Hands - on ] : init container init container 2개가 실행되어야 main container가 실행되는 yaml 파일 생성 vi init-container-exam.yaml apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybo.. 2022. 9. 14. [k8s] LivenessProbe를 이용해서 Self-healing Pod 생성 Liveness Probe란? pod가 계속 실행할 수 있음을 보장 pod의 spec에 정의 apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: nginx name: nginx spec: containers: - image: nginx:1.14 name: nginx livenessProbe: //추가 httpGet: path: / port: 80 ports: - containerPort: 80 resources: {} dnsPolicy: ClusterFirst restartPolicy: Always status: {} LivenessProbe 매커니즘 httpGet probe : 지정한 IP주소, port, path에 HTTP .. 2022. 9. 13. 쿠버네티스 이론 STEP8 RBAC ABTCEFG♪ 안녕하세요, 여러분! BTC_김쿼카입니다. 이번 시간에는 쿠버네티스의 RBAC(Role-Based Access Control)에 대해 알아볼게요! RBAC 역할 기반으로 쿠버네티스 시스템의 권한 관리 API Server에서 제공하는 인가 방식 중 하나 - 어떤 역할(Role)이 어디서 무엇을 어떻게 하는가에 대해 정의함 Role 특정 API나 리소스(pod, deploy...), 사용 권한(get.list...)을 매니페스트 파일에 명시해둔 규칙의 집합 특정 네임스페이스에 대한 권한 관리 apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: pod-reader rules: - apiGro.. 2022. 8. 29. [K8s] Container 정리와 Single / Multi Container Pod 생성 Pod란? container를 표현하는 k8s API의 최소 단위 pod에는 하나 또는 여러 개의 container가 포함될 수 있음 kubectl run 명령(CLI)으로 생성 pod yaml을 이용하여 생성pod 생성 방법 Single-container pod 생성 CLI kubectl run NAME --image=nginx:1.14 --port=80 yaml template kubectl create -f pod-nginx.yaml vi pod-nginx.yaml apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: nginx name: nginx spec: containers: - image: nginx:1.14 name.. 2022. 8. 29. 이전 1 ··· 6 7 8 9 10 11 다음