본문 바로가기

녹차공원28

[K8S] Multi Container 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 Multi Container에 대해 알아보겠습니다! Multi Container 하나의 Pod 안에는 여러개의 Container가 들어있을 수 있습니다. 단, Pod 내의 Container 들이 서로 다른 종류일때만 가능합니다. Pod 내에 Container 들은 동일한 네트워크 공간을 공유하기 때문에 서로 간의 통신이 가능하고 저장 공간을 공유하는 것도 간단합니다. Multi Container에는 3가지 종류가 있습니다. Sidcar Pattern : Main Container의 기능 확장 또는 향상 ex) Log Saving Sidecar Ambassador : Main Container의 네트워크 기능 담당 ex) Proxy Container.. 2023. 9. 13.
[K8S] Taint 베하~! BTC_녹차공원 팀의 하동녹차 입니다. Kubernetes Taint 에 대해 알아보겠습니다! 쿠버네티스 테인트(Taint) 쿠버네티스(Kubernetes)에서 "Taint(테인트)"는 노드(Node)에 특정 조건을 부여하여 해당 노드에만 특정 유형의 파드(Pod)가 스케줄링되도록 하며 클러스터 내에서 리소스 및 워크로드를 효율적으로 관리하는 데 사용됩니다. Taint의 적용 효과로 "NoSchedule", "PreferNoSchedule", "NoExecute" 중 하나 입니다. "NoSchedule": 해당 Taint가 있는 노드에는 일치하는 파드가 스케줄링 "PreferNoSchedule": 일치하는 파드가 노드에 스케줄링되지 않는 것 "NoExecute": 이미 노드에서 실행 중인 파드에.. 2023. 9. 6.
[K8S] NodeSelector 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 NodeSelector에 대해 알아보겠습니다! NodeSelector 쿠버네티스에서는 특정한 노드(들) 집합에서만 동작하거나 특정한 노드 집합에서 동작하도록 파드를 제한할 수 있어요. 이를 수행하는 방법에는 여러 가지가 있는데 권장되는 방식은 모두 레이블 셀렉터를 사용해서 선택을 편리하게 해요. 보통은 스케줄러가 자동으로 배치를 효율적으로 하기때문에 이런 제약 조건을 설정할 필요가 없어요. 하지만, 예를 들어 SSD가 장착된 머신에 파드가 배포되도록 하거나 많은 통신을 하는 두 개의 서로 다른 서비스의 파드를 동일한 가용석 영역에 배치하는 경우와 같이, 다양한 상황에서 파드가 어느 노드에 배포될지를 제어해야 하는 경우가 있어요. nodeSelect.. 2023. 8. 29.
[K8S] Ingress 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 Ingress에 대해 알아보겠습니다! Ingress 일반적으로 네트워크에서는 Ingress와 Egress로 트래픽을 구분해요. Ingress는 외부에서 내부 서버로 들어오는 네트워크 트래픽을, Egress는 내부 서버에서 외부로 나가는 트래픽을 의미한답니다. 쿠버네티스에서도 Ingress라고 하는 리소스가 존재하는데요. 쿠버네티스의 Ingress는 외부에서 쿠버네티스 클러스터 내부로 들어오는 네트워크 트래픽을 어떻게 처리할지 정의한답니다. 쿠버네티스에서 실행중인 Deployment와 Service에 접근하기 위한 외부 요청을 처리하는 리소스들이 있는데요. NodePort, ExternalIP, Ingress 등이 있습니다. NodePort와 Ext.. 2023. 8. 19.
[K8S] Service 베하~! BTC_녹차공원 팀의 하동녹차 입니다. Kubernetes Service에 대해 알아보겠습니다! 쿠버네티스 서비스(Service) 쿠버네티스 서비스(Service)는 쿠버네티스 클러스터 내에서 실행 중인 파드에 접근하기 위한 추상화된 리소스입니다. 파드는 유동적으로 생성되고 삭제되며 IP 주소가 변경될 수 있기 때문에, 직접 파드의 IP 주소로 접근하는 것은 번거로운 작업입니다. 서비스는 이러한 문제를 해결하여 파드에 고정된 가상 IP 주소를 제공하고, 그 IP 주소를 통해 파드에 접근할 수 있도록 합니다. 이를 통해 클라이언트나 다른 파드가 서비스를 통해 파드와 통신할 수 있습니다. 쿠버네티스 서비스(Service) 기능과 특징 1. 클러스터 내부 서비스: 기본적으로 서비스는 클러스터 내부에서.. 2023. 8. 1.
[K8S] NetworkPolicy 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 NetworkPolicy에 대해 알아보겠습니다! NetworkPolicy NetworkPolicy는 쿠버네티스에서 제공하는 일종의 방화벽 정책으로 Pod가 서로 통신할 때 방화벽 설정을 할 수 있어요. Pod에 대해 인바운드(Inbound traffic), 아웃바운드(Outbound traffic)에 대해 설정을 해줄 수 있답니다 !! Network Policy 에는 Inbound 에 해당하는 ingress 설정과 Outbound에 해당하는 Egress 설정이 있어요. Inbound 는 외부에서 특정 Pod의 내부로 들어오는 트래픽에 대한 방화벽 설정으로 어떤 트래픽에 Pod로 들어올것인지 설정하는 부분이랍니다. Outbound 는 특정 Pod에서.. 2023. 8. 1.
[K8S] Node Upgrade 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 Node Upgrade 하는 방법에 대해 알아보겠습니다! Node Upgrade 쿠버네티스는 활발하게 유지 보수가 되며 클라우드 CSP (AWS, Azure, GCP) 들의 호환성 개선도 포함되기 때문에 이에 맞춰 주기적으로 업그레이드를 해주어야합니다. 쿠버네티스에서는 업그레이드 할 때 한 버전씩만 업그레이드 하는 것이 권장되고있습니다. 만약 v1.10에서 v1.13으로 업그레이드를 해야한다면 v1.10 -> v1.13이 아닌 v1.10 -> v1.11 -> v1.12 -> v1.13 으로 업그레이드를 해야합니다. 실무에서 운영중인 클러스터를 업그레이드 해야 할 때 안전하게 업그레이드 하는 방법이 무엇일까요? 1. 새로운 Node를 추가할 경우 -.. 2023. 7. 20.
[K8S] Node Schedule 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 Node Schedule 정책에 대해 알아보겠습니다! kubectl 은 노드의 pod-scheduling 정책을 손쉽게 변경할 수 있도록 다양한 명령어를 제공해줘요. drain, cordon, uncordon 을 지원해주는데 각각 알아보아요 cordon cordon은 지정된 node에 더 이상 pod들이 스케줄링되지 않도록 해요. 위에서 볼 수 있듯이 node01은 cordon 명령어를 통해 SchedulingDisabled 상태가 되었어요. test3라는 새로운 pod를 생성하니 node01이 아닌 controlplane에 새로운 pod가 스케줄링 되었답니다. drain drain은 지정된 node에 존재하는 모든 pod를 제거하여 노드를 비우고.. 2023. 7. 6.