본문 바로가기

민물공원17

[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] 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] 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.
[K8S] role & rolebinding 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 role 과 rolebinding에 대해 알아보겠습니다! role 이란? role(역할)은 특정 API나 리소스를 이용할 수 있는지 권한을 정의해 놓은것이랍니다. 쉽게 말해, 쿠버네티스의 사용권한을 정의해 놓은것이예요. role은 지정된 네임스페이스에서만 유효하답니다. role에서 verbs 라는게 있어요. verbs는 어떤 동작을 하는지 설정하는 부분이랍니다. verbs에는 여러가지가 있는데 자주 쓰이는 것들을 같이 알아보아요~ create : 새로운 리소스 생성 get : 개별 리소스 조회 list : 여러 건의 리소스 조회 update : 기존 리소스 내용 전체 업데이트 patch : 기존 리소스 중 일부 내용 변경 delete : 개별 리소.. 2023. 6. 18.
AWS Redis 란? 베하~! BTC_녹차공원 팀의 민물공원 입니다. 이번주는 AWS Redis에 대해 알아보겠습니다! Redis 란? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 인메모리 데이터 구조 저장소 사용자가 많지 않은 서비스의 경우에는 WEB – WAS - DB의 구조로도 데이터베이스에 무리가 가지 않음 사용자가 늘어나면 데이터베이스가 과부하 될 수 있기 때문에 캐시 서버를 도입하여 사용 이렇게 일반적으로 Redis는 캐시 서버로 활용을 많이하고 있어요! AWS ElastiCache 란? AWS의 관리형 캐싱 서비스로, 인메모리 데이터 스토어인 Redis와 Memcached를 제공하는 서비스 애플리케이션의 성능을 향상시키기 위해 데이터를 빠르게 캐싱하고, 높은 트래픽 및 부하를.. 2023. 6. 2.