목록Computer & Data/Orchestration (28)
이야기박스
Overview Docker container에서 네트워크 구성을 어떻게 확인하는지? 그리고 새로운 네트워크 환경은 어떻게 만드는지? 도커를 업무 환경에서 본격적으로 사용하려면 필요한 지식들이죠. 오늘은 이 부분에 관련하여 포스팅을 작성하려고 합니다. 포스팅 내용은 아래 공식 도커 문서를 활용하여 작성하였습니다. https://docs.docker.com/engine/tutorials/networkingcontainers/ Network containers docs.docker.com Container Network 호스트 OS에서 도커 컨테이너를 생성하면 위와 같은 구조로 생성됩니다. Network Driver 도커는 기본으로 `overlay`, `bridge` 라는 두 가지 네트워크 드라이버를 제공합..
Overview 예전에 쿠버네티스 공부하면서 Container, VM 차이점을 간단하게 짚고 넘어간 적이 있습니다. Kubernetes 1. Introduction # 쿠버네티스 필요한 이유 최근 어플리케이션 개발 트렌드가 변화하였기 때문입니다. 과거에는 거대한 모놀리식 애플리케이션 개발/운영이었다면, 요즘 들어서는 "마이크로 서비스"로 세분화되 box0830.tistory.com 오래되기도 하였고 복습할 겸 여러 문서들 보는데 아래와 같은 포스팅도 보여 이번 포스팅을 작성하게 되었습니다. What is the difference between a process, a container, and a VM? Many people ask “What is the difference between a VM and..
Skaffold란? 코드 수정 → 쿠버네티스 클러스터까지 적용을 단순화해준 프레임워크입니다. Code change Docker container build Kubernetes resources deploy Debugging on k8s cluster 공식 문서 https://skaffold.dev/docs/ 사전 작업 skaffold 설치 $ brew install skaffold $ skaffold version d879183-dirty skaffold init $ skaffold init ✔ │ 13:48:40 ? Choose the builder to build image story-test Buildpacks (pom.xml) ? Which builders would you like to ..
쿠버네티스의 가장 큰 강점은 사용자가 신경 쓰지 않아도 지정된 클러스터에 자동으로 리소스가 나누어지는 것에 있죠. 하지만 특정 워커 노드, 집단에 배포되면 안될때, 어떻게 하면 될까요? 쿠버네티스에서는 위 문제를 두 가지 관점에서 풀려고 하였습니다. 노드 관점에서 받아들일 파드 정하기 - Node Taint, Pod Toleration 두 정책을 바탕으로 해결하고자 하였습니다. 파드 관점에서 들어갈 노드 정하기 - Node Affinity를 통하여 파드의 배포를 관리자가 조율할 수 있도록 합니다. # 노드 관점; Node Taint, Pod Toleration ## Taint ; Node 설정 Master 노드에서 테인트 확인 가능합니다. $ kubectl describe node master.k8s N..
# Proxy Protocol이란? https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt # nginx, accepting the proxy protocol https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/ NGINX Docs | Accepting the PROXY Protocol Preserve client information provided by the PROXY protocol, for advanced load balancing of HTTPS, HTTP/2, TCP, and WebSocket traffic. docs.nginx.com 참고 https://k..
쿠버네티스에서 제공하는 REST API 서비스에 https 통신을 제공하기 위하여 Ingress와 SSL 설정에 대한 기술 조사를 진행하게 되었습니다. 간략한 기술 소개 및 yaml 파일 예시를 소개하려고 합니다. # Ingress란? Ingress (명사) - 가거나 들어가는 행위; 들어갈 수 있는 권리; (어떤 장소에) 들어감; 입장권 보통 ingress는 서버 내부로 유입되는 트래픽을 나타내고 egress는 서버 외부로 나가는 트래픽을 의미합니다. 마찬가지로 Kubernetes Ingress는 외부에서 Kubernetes Service 및 다른 Resource에 접근하기 위한 게이트웨이라고 생각하시면 됩니다. ## Ingress가 필요한 이유 하나의 공인된 주소로 다양한 서비스에 포워딩될 수 있음 ..
# Overview Helm이란 Helm2 --> Helm3 바뀐 점 Helm3 사용법 # Helm이란 간단한 애플리케이션이라도 Kubernetes로 구성하다 보면 수많은 yaml 파일이 생겨나게 됩니다. helm은 이렇게 많이 생겨나는 yaml 파일을 간편하게 배포할 수 있게 해 줍니다. 또한 Kubernetes의 주 목적인 다양한 환경(클러스터)에서 간단한 설정의 변경만 가지고도 배포할 수 있게 도와줍니다. 이러한 기능을 가진 Helm은 Template, 설정 파일 등의 파일의 모음이라고 생각하시면 됩니다. 이 파일 모음을 Helm Chart라고 부릅니다. # Change since Helm2 Helm Docs Reference Frequently Asked Questions Frequently As..
# 개요 쿠버네티스는 CPU 사용량 또는 다른 항목들을 모니터링하고 이를 토대로 오토스케일링이 가능합니다. 오토 스케일링 기능은 v1.6에서 v1.7로 넘어가면서 큰 개편이 있엇다고 하니 참고하시기 바랍니다. # HPA ; HorizontalPodAutoScaler 쿠버네티스는 HPA라는 리소스를 만들어 포드의 수펑젹 오토 스케일링을 진행합니다. 프로세스는 다음과 같습니다. 스케일된 리소스 객체가 관리하는 모든 리소스의 메트릭을 수집 지정된 Target에 맞출 수 있는 Pod 수를 계산 계산된 결과 값을 Replicas 필드에 업데이트 1. 포드 메트릭 가져오기 쿠버네티스의 MetricServer(과거에는 Heapster)에게 RestAPI를 요청하여 메트릭을 획득합니다. 2. 필요한 포드 수 계산 사용..