🚀 Resource Request & Limit 파드 및 컨테이너 리소스 관리 | Kubernetes Docker에서 --cpu, --memory 옵션을 통해 컨테이너가 실제로 사용할 수 있는 리소스 양을 제한했던 것과 같은 기능을 쿠버네티스에서도 할 수 있다. 파드를 생성할 때 별도로 제한을 걸지 않으면 호스트에 있는 모든 CPU, Memory 자원을 독점해서 사용할 수 있다. 그래서 반드시 적절하게 용량을 지정할 필요가 있다. 요청 : request 제한 : limit 파드에서 요청이나 제한 또는 모두를 설정할 수 있다. 요청과 제한 모두를 설정하는 것을 권장한다. 🚀 Request (요청) 요청이라는 것은 파드가 리소스를 사용할 때 특정 용량을 요청하는 것이다. ex) cpu : 1개 memory ..
🚀 Headless Service Headless Service란 ?! DB와 같이 master, slave 구조가 있는 서비스들의 경우 service를 통해 로드밸런싱을 하지 않고 개별 pod의 주소를 알고 접속해야한다. pod들은 DNS 이름을 가질 수는 있으나 {pod name}.{service name}.{namespace}.svc.cluster.local 형식의 이름을 갖기 때문에 pod를 DNS를 이용해 접근하려면 service name이 있어야 한다. Statefulset에 의한 서비스들은 service를 이용해서 로드 밸런싱을 하는 것이 아니기 때문에 로드 밸런서의 역할은 필요없고 논리적으로 pod들을 묶어 줄 수 있는 service만 있으면 되기 때문에 헤드리스 서비스를 사용한다. Hea..
🚀 TLS/SSL Termination란 무엇인가 ? SSL 표준화 → TLS SSL은 취약점이 발견되어 현재 사용되지 않는다. 첫번째 이미지가 종단간 암호화 방식이며 두번째 이미지가 TLS/SSL Termination 방식이다. 종단간 암호화 방식은 클라이언트부터 서버까지 모든 통신 구간에 암호화를 사용하는 방식을 말한다. TLS/SSL Termination 방식은Loadblancer (=Proxy)가 존재하며 노출되어 있다. 클라이언트와 LB 사이에는 HTTPS(암호화를 제공)를 사용하며 LB와 실제 서비스를 제공하는 서버 사이에는 HTTP(암호화를 제공하지 않음, 평문 통신)를 사용한다. 클라이언트부터 LB까지만 암호화하며 종단간 암호화가 아니다. 그렇다면 안전해보이지 않는 이런 구성을 왜 사용하는..
✔️ Nginx HTTPs 서버 구성 nginx 관련 파일은 다음과 같다. vagrant@k8s-node1 ~/configure/nginx-https kubectl run nginx --image nginx pod/nginx created vagrant@k8s-node1 ~/configure/nginx-https kubectl exec -it nginx -- bash root@nginx:/# cd /usr/share/nginx/html/ root@nginx:/usr/share/nginx/html# ls 50x.html index.html root@nginx:/usr/share/nginx/html# cd /etc/nginx root@nginx:/etc/nginx# ls conf.d fastc..
✔️ Deployment 디플로이먼트 | Kubernetes Deployment는 ReplicaSet의 상위 오브젝트로 Deployment를 생성하면 해당 Deployment에 대응하는 ReplicaSet도 함께 생성된다. 따라서 Deployment를 사용하면 Pod, ReplicaSet을 직접 생성할 필요가 없다. ✔️ Deployment 사용 이유 ? 그렇다면 쿠버네티스는 ReplicaSet이 아닌 상위 개념인 Deployment를 사용해 간접적으로 ReplicaSet을 생성하는 것일까 ? Deployment를 사용하는 핵심 이유는 어플리케이션의 업데이트와 배포를 더욱 편하게 만들기 위해서이다. Deployment는 이름처럼 컨테이너 어플리케이션을 배포하고 관리하는 역할을 담당한다. 예를 들어 어플리..
✔️ Six Strategies for Application Deployment Six Strategies for Application Deployment – The New Stack 쿠버네티스에서만 쓰는 전략이 아니며 모든 어플리케이션을 배포할 때 사용한다. 쿠버네티스의 Deployment는 다음 2가지 방식을 지원한다. Recreate : Version A is terminated then version B is rolled out. Ramped (also known as rolling-update or incremental): Version B is slowly rolled out and replacing version A. vagrant@k8s-node1 ~/deploy kubectl ex..