CKAD 10

[CKAD] k8s API 버전 체계

개요k8s에서의 API 버전 체계를 알아보겠습니다. 버전의 종류  GA( General Availability)(v1, v2)GA( General Availability) 는완전한 안정성과 호환성을 제공하며, 프로덕션에서 사용하도록 권장.Alpha (vXalphaY)초기 실험 단계로, 불안정하고 큰 변경 가능성이 있으므로 프로덕션에서 사용하지 않는 것이 좋음.새로운 Alpha 버전이 나오거나 Beta이 나오면 이번 Alpha 버전은 삭제됩니다. Beta (vXbetaY)상당히 안정적이지만, 여전히 일부 변경이 가능하며 프로덕션 환경에서 테스트 목적으로 사용할 수 있음.새로운 버전이 나오면 이전 버전은 Deprecated 됩니다. Beta API 버전은 도입 후 9개월 또는 3개의 minor release..

Cloud/k8s-CKAD 2024.10.17

[CKAD] Statefulset 과 Headless Service

개요Statefulset이 무엇이고 어디에 사용하는지와 Headless Service와 StatefulSet과 어떻게 연결되어 사용되는지 알아보겠습니다. StatefulSet이란?개념StatefulSet은 Kubernetes에서 상태가 필요한 Application을 배포하고 관리하기 위한 Resource입니다. 즉, 각 Pod에 고유한 식별자를 부여하고, 재시작이나 재배포 후에도 특정 Pod가 이전에 사용하던 Storage와 고유한 DNS 이름을유지하도록 지원하는 역할을 합니다.예시 : DB와 같은 Pod에 사용됩니다. 특징고유한 네트워크 식별자 (Stable Network Identity):각 Pod는 고유한 Host 이름을 가지며, 이를 통해 Client가 특정한 Pod에 접근할 수 있습니다.Ex) ..

Cloud/k8s-CKAD 2024.10.09

[CKAD] Network Policy

개요Cluster 내부 및 외부에서 들어오는 Traffic은 NetworkPolicy를 사용하여 관리 합니다.NetworkPolicy의 주요 요소 및 동작 요약1. 적용 대상PodSelector를 통해 특정 라벨이 붙은 Pod에만 네트워크 정책을 적용할 수 있습니다.NamespaceSelector를 사용하여 특정 네임스페이스에 있는 Pod에 대한 정책을 설정할 수 있습니다.podSelector: {}와 같이 설정하면 네임스페이스 내의 모든Pod에 적용됩니다.2. 정책 타입Ingress: Pod로 들어오는 트래픽을 제어합니다.Egress: Pod에서 나가는 트래픽을 제어합니다.하나의 NetworkPolicy에서 둘 다 설정할 수도 있습니다.3. 규칙 정의IPBlock: CIDR 형식으로 IP 범위를 지정하..

Cloud/k8s-CKAD 2024.10.03

[CKAD] Pod의 log 보기 및 metric 수집

개요Pod의 log를 보는 방법과 Pod의 metric 정보를 수집하는 방법을 알아보겠습니다. Log 확인 방법Pod의 기본 Log 보기kubectl logs Pod 안에  container지정해서 보기Pod안에 2개이상의 container가 존재할 때 각각 container의 log를 보는 방법입니다. kubectl logs -c 모든 container의 Log를 한 번에 보기kubectl logs --all-containers=true Metrics(지표) 이란?k8s에서는 Metric 이란 것이 존재하며 이는 지표를 의미합니다.그래서 Metric(지표) 정보를 수집하기 위해서 다양한 도구와 방법을 thirdparty로 제공하고 있습니다. Metric 정보 종류Resource Metrics리소스 ..

Cloud/k8s-CKAD 2024.08.27

[CKAD] Pod의 상태 파악 방법

개요Pod의 상태를 파악하는 전방 적인 방법을 알아보겠습니다. Pod의 배포 상태 확인 kubectl describe pod {pod_name} 수행 시 Conditions 항목에서 True/False를 통하여 기본적인 상태를 알 수 있습니다. Conditions 항목 설명 PodReadyToStartContainers: Pod가 container를 시작할 준비가 되었음을 의미합니다.Initialized: 모든 Init container가 성공적으로 완료되었음을 의미합니다.Ready: Pod가 Traffic을 수신할 준비가 되었음을 의미합니다.ContainersReady: Pod 내의 모든 container가 실행 준비가 되었음을 의미합니다.PodScheduled: Pod가 특정 node에 schedul..

Cloud/k8s-CKAD 2024.08.26

[CKAD] Multi-Container Pod and InitContainer

개요Pod는 다수의 container를 동시에 가질 수 있습니다. 그렇기 Pod에서 다수의 container를 어떻정의하고 왜 사용하는지 알아보겠습니다. 그리고 initcontainer에 대해서도 추가 적으로 알아보겠습니다. Multi-Container 정의 방법spec -> containers-> container 추가하는 방식으로 container를 추가 하면 1개의 Pod안에 다수의 Container를 실행할 수 있습니다. 참고 : Pod의 최대 container개수는 기술 적으로 제약은 없습니다. 2~3개의 container 사용을 권장하고 있습니다.apiVersion: v1kind: Podmetadata: name: multi-container-podspec: containers: - na..

Cloud/k8s-CKAD 2024.08.25

[CKAD] 시험 미흡 사항

container에 command 추가 방법command와 argument 혼합형command: ["sleep", "3600"]command 와 argument 분리형Ex1) command: ["sleep"]args: ["3600"]Ex2)command: ["myapp"]args: ["--config", "/etc/myapp/config.yaml", "--verbose"] container의 파일 보기특정 파일 보기kubectl exec cassandra -- cat /var/log/cassandra/system.loghttps://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/Pod의 State보는 곳#kubectl describ..

Cloud/k8s-CKAD 2024.08.21

[CKAD] Resource 제어, resource/LimitRange/ResourceQuotas

목표k8s에서 Container의 Resource를 제어 하는 방법을 알아 보겠습니다.Resource 제어 대상은 Pod가 아니라 container 입니다 Resource용도각 container 사용할 수 있는 CPU와 메모리 양을 정의하는 것입니다. 기본적으로 Resource 제한을 주지 않으면 Pod는 노드의 가용 Resource를 최대한 사용할 수 있지만, 이는 시스템의 안정성에 부정적인 영향을 미칠 수 있으므로 가능한 Resource 요청(Request)과 제한(Limits)을 명확히 설정하는 것이 권장됩니다.제어 항목CPU Memory제어 방법resources -> requests container가 실행될 때 필요한 최소한의 resources를 지정 합니다.requests를 충족하는 node가..

Cloud/k8s-CKAD 2024.08.12

[CKAD] Security Context

개요k8s에서 Security Context가 무엇인지 그리고 어떻게 사용하는지 알아보겠습니다. Security Context란?Kubernetes(K8s)에서 Security Context는 Pod나 Container의 보안 관련 설정을 지정하는 데 사용됩니다.적용 범위Pod 전체 또는 개별 Container적용 우선 순위1순위 : 개별 Container2순위 : Pod사용 형태securityContext 필드를 사용합니다.Pod에 적용apiVersion: v1kind: Podmetadata: name: security-context-demospec: securityContext: runAsUser: 1000 runAsGroup: 3000 containers: - name: sec-c..

Cloud/k8s-CKAD 2024.04.23

[CKAD] 환경 변수 Configmap 과 Secret 사용하기

개요container 환경 변수를 사용하는 방법을 알아보겠습니다. 환경 변수 사용방식환경 변수를 사용하는 방법에는 총 3가지의 방법이 아래 와같이 존재합니다.Environment VariableConfigMapSecretEnvironment Variableenv 필드에서 key-value 형식으로 사용됩니다. 아래에서 밖같 박스 부분이 환견 변수를 사용한 부분이며, 환경 변수를 container 하위에서 설정하면 됩니다.Configmap 개요사용 이유container에 영향을 주는 환경변수를 외부에서 관리함으로써 container의 실행 환경을 제어할 때 사용합니다.사용 절차1. configmap 생성2. configmap 확인3. configmap 사용방법제한 사항configmap의 개별 Object는..

Cloud/k8s-CKAD 2024.01.30