본문 바로가기

Kubernetes24

Kubernetes CNI / Container Network Interface, 네트워크 Kubernetes Container Network Interface(CNI) 컨테이너의 Network, 즉 통신관련된 부분을 관리하기 위한 표준 인터페이스 CNCF(Cloud Native Computing Foundation)에서 프로젝트로 관리, 표준으로 관리 - CNI: 컨테이너 런타임과 네트워크 사이에서 표준 인터페이스를 제공, 구성, 관리해줌. 여러 컨테이너 런타임에서 동일한 구조로 가져갈 수 있도록 도와줌 - Plugin 구조: 표준 인터페이스를 통해 사용자의 환경과 요구에 맞춰서 원하는 플러그인을 선택하여 사용 가능 - 3rd-party plugin: Flannel, Calico, Clilum 등 다양한 종류의 네트워크 솔루션과 통합하여 사용 가능 기본으로 제공해주는 kubenet이라는 자체.. 2023. 6. 4.
Kubernetes Storage / emptydir, persistent volume Kubernetes Emptydir EmptyDir 볼륨은 Pod와 함께 생성되고 삭제됨, lifecycle을 같이 가져가는 존재 Pod내의 모든 컨테이너는 emptyDir 볼륨에 접근 가능 디스크, SSD, 네트워크 스토리지등에 저장이 가능하고, emptyDir.medium 필드를 Memory로 설정시 tmpfs RAM에 마운트 가능 대신 메모리 제한에 유의 apiVersion: v1 kind: Pod metadata: name: test-pd spec: containers: - image: registry.k8s.io/test-webserver name: test-container volumeMounts: - mountPath: /cache name: cache-volume volumes: - nam.. 2023. 5. 24.
Kubernetes cordon, drain / pod schedule, 제거, node Kubernetes cordon Kubernetes 클러스터를 사용하다보면 특정 서버 노드에 문제가 생겨서 서비스에서 제외할 필요가 생김 이럴때 cordon명령어를 통해 더이상 Pod가 해당 노드에 스케줄링 되지 않도록 설정 가능 % kubectl get nodes NAME STATUS ROLES AGE VERSION dev-chicken1 Ready control-plane 1d v1.21.6 dev-chicken2 Ready 1d v1.21.6 dev-chicken3 Ready 1d v1.21.6 dev-chicken4 Ready 1d v1.21.6 이렇게 node중 3번 노드에 문제가 생겼다면 cordon 명령어를 실행해주면 됨 $kubectl cordon dev-chicken3 NAME기준으로 명.. 2023. 4. 1.
FQDN / Fully Qualified Domain Name, 도메인, Kubernetes cluster domain FQDN Kubernetes 클러스터를 관리하다보면 도메인 이름 관련하여 한번쯤은 들어보게되는 FQDN 네트워크쪽이 복잡하게 구성되어있는 만큼 정확하게 알아두면 좋을 것 같아 찾아봤다. 웹에서 주소를 입력할 때 www.tistory.com / tistory.com / www.tistory.com. 어떤 것을 입력해야할지 불분명한 케이스가 있음 www는 호스트를 의미하고, tistory.com 부분은 도메인을 의미한다. FQDN은 www.tistory.com.을 의미한다. 호스트와 도메인을 모두 합친 마지막에 .는 네임스페이스 경로를 명확히 하기 위해 포함된다. (Root를 의미) 계층구조로 되어있는 것을 보면 1. root domain (.) 으로 시작 2. (.) 을 기준으로 도메인과 호스트를 차례대로.. 2023. 3. 12.
Kubernetes DaemonSet / 쿠버네티스, 데몬셋, 서비스, Pattern, 패턴 Kubernetes DaemonSet DaemonSet을 이용하여 모든 노드 혹은 특정 노드에 동일한 Pod들을 실행가능 노드가 클러스터에 추가되면 해당 노드에도 자동으로 추가 노드 제거되면 Pod가 garbage로 수거가 됨 여기서 잠깐 확인해봐야할 것 Background process와 DaemonSet의 차이가 무엇인지 아십니까? - Background process: 유저와 상호작용을 함, Parent process가 존재 - DaemonSet: 유저와 별도로 동작, process동작 Parent process와 연결을 해제 아무튼 그래서 모든 노드에서 log를 수집해야한다거나, 노드 정보를 따로 수집해야한다거나 할때 DaemonSet을 활용하면 됨 apiVersion: apps/v1 kind: .. 2023. 1. 28.
Kubernetes Statefulset / 쿠버네티스, 워크로드, 스테이트풀셋, 서비스 Kubernetes Statefulset Statefulset은 application의 상태를 관리해주는 API 오브젝트 Deployment와 비슷하게 container spec에 기반을 두지만, Pod간 독자성을 제공 즉, persistent한 식별자를 제공해주며 네트워크, 스토리지, 순서등의 기능이 있다는 뜻 말 그대로 stateless한 서비스에는 지금까지 공부한 다른 것들을 이용해도 되지만, stateful한 서비스 (ex. DB, network)등에 대해서는 Statefulset을 사용하여 서비스해야함 Deployment에서 Replicas를 1로 고정하여 사용해도 되긴 하지만, 기능과 의미를 완벽히 보장하지 않기에 권장하지 않음 간단하게 정리하자면 - Deployment(Replicaset) .. 2023. 1. 27.
반응형