kubernetes 90

예제로 살펴보는 쿠버네티스 보안

1. 이 글에서 다루고자 하는 내용쿠버네티스 보안은 정말 범위가 넓고 쿠버네티스만 공부해서는 어려운 내용이 많습니다. 그래서 이 글에서는 쿠버네티스 보안에 대한 이론적 설명보다는 어떤 쿠버테티스 설정때문에 이런 위험이 발생할 수 있다는 것을 소개하고 싶었습니다. 쿠버네티스 보안을 지키지 않으면 뭐가 위험한데? 라는 질문에 대해 간단히 대답하고 싶었습니다. 저는 보안업무로 일해본 경험이 없어 보안지식이 얕습니다. 하지만, 얕은지식으로도 쿠버네티스 공격이 가능하기 때문에 쿠버네티스 보안은 필수로 공부하며 위험성을 이해하고 보안설정을 해야한다고 생각합니다. 이 글에서 설명하는 쿠버네티스 보안 공격은 실제 환경에서 사용하면 안됩니다. 2. 쿠버네티스 보안이란?쿠버네티스 보안은 단순히 쿠버네티스만 다루지 않고 ..

의도하지 않는 DNS요청을 pod

https://youtu.be/cBUgtfXl_U8?si=dRckphcTIOBhsLJk&t=336 1. 들어가며pod가 DNS요청을 할 때, 클라이언트가 의도하지 않는 DNS 요청을 할 때가 있습니다.  예를 들어 google.com만 DNS 요청을 했지만, 의도하지 않은 DNS요청이 여러 번 수행되었습니다. coredns pod에서도 당연히 의도하지 않는 DNS요청을 받고 DNS응답을 줬습니다. 왜 의도하지 않는 DNS요청이 생성될까요? 2. 리눅스 리졸버의 ndots와 search의도하지 않은 DNS요청이 생긴 이유는 dots와 search설정 때문입니다. ndots와 search설정은 pod안에서 /etc/resolv.conf파일에서 확인할 수 있습니다.cat /etc/resolv.conf  nd..

쿠버네티스에서 DNS주소 끝에 cluster.local이 붙는 이유

https://youtu.be/B7IgpbOfPq8?si=b6xCbqY5oZ920lRK&t=1229  1. kubedns란?kubedns는 쿠버네티스에서 DNS(Domain Name system)서버 역할을 수행합니다. pod에서 DNS요청이 필요할 때 kube-dns pod에게 DNS요청을 합니다. kube-dns pod IP는 고정 IP가 아니므로 kubedns 서비스의 cluster IP를 사용합니다. pod에서 /etc/resolv.conf에 설정된 nameserver IP는 kube-dns 서비스 clusterIP입니다.  2. kubedns podkubedns pod는 애드온에 속합니다. 쉽게 표현하면 쿠버네티스가 어떤 애플리케이션으로 kubedns pod를 쓰라고 강제하지 않았습니다. kub..

Pod 안정성을 높이는 쿠버네티스 설정

이 글은 pod 장애를 최소화하기 위한 쿠버네티스 설정을 이야기합니다. 세부 설정 방법은 생략하고 어떤 설정이 Pod안정성과 관련있는지 설명합니다. 짧은 기간이지만 제가 약 10개월동안 서비스를 운영하면서 중요하게 느꼈던 쿠버네티스 pod 안전성 설정을 정리했습니다.팟캐스트(오디오)로도 이 글을 들을 수 있습니다.https://audioclip.naver.com/channels/5158/clips/10 pod 안정성을 높이는 설정 (by 악분)이번 팟캐스트는 pod 안정성을 높이는 쿠버네티스 설정을 살펴봅니다.audioclip.naver.com 1. pod 안정성이란pod 안전성은 pod에 문제가 발생하더라도 서비스 중단을 최소화하는 것을 의미합니다. 이상적으로 pod안정성이 높으면, pod에 문제가 있..

kubernetes graceful shtudown이 중요한 이유

이 글은 pod의 우아한 종료(graceful shutdown)의 중요성을 설명합니다. 1. 우아한 종료(graceful shtudown)pod가 갑자기 종료되면 pod가 실행하고 있는 작업은 어떻게 될까요? pod가 없어졌으니 당연히 작업이 사라집니다. 따라서 작업은 실패합니다. pod가 종료되어서, pod가 실행중인 작업이 중지되어 작업이 실패하는 상황을 안전하지 않는 종료라고 합니다. 우아한 종료는 pod가 실행중인 작업을 안전하게 종료한 후, pod를 종료시키는 것을 의미합니다. 2. 우아하지 않는 종료 예우아하지 않는 종료 대표적인 예가 웹 애플리케이션 pod입니다. 웹 애플리케이션 pod가 종료되면 현재 연결되어 있는 세션이 끊겨, ingress 또는 (쿠버네티스)service는 연결이 끊깁..

쿠버네티스 임시 볼륨을 잘못 사용하면 장애 발생

이 글은 쿠버네티스 임시 볼륨(Ephemeral Volumes, 또는 임시 스토리지)을 잘못 사용했을 때 발생할 수 있는 서비스 장애 상황을 설명합니다. 이 글에서 다루는 예제는 github에 공개되어 있습니다.github 주소: https://github.com/choisungwook/k8s_ephemeral_storage 1. 시나리오이 시나리오는 임시 볼륨을 잘못 사용하는 Pod로 인해 동일한 노드에 있는 다른 Pod가 비정상 상태가 되는 상황을 재현합니다. 쿠버네티스는 EKS를 사용합니다. 서비스 pod는 nginx를 사용하고 외부에서 nginx pod를 접속할 수 있도록 ALB를 사용합니다. 장애가 발생하기 전에는 nginx pod는 아래 그림처럼 정상적으로 실행됩니다 하지만, 갑자기 임시 볼륨..