minikube

    [kubernetes] #9 쿠버네티스 Ingress 란?

    [kubernetes] #9 쿠버네티스 Ingress 란?

    서론 Ingress가 무엇인지, 어떻게 사용하고 어떻게 생성하는지에 대해서 알아보자. Ingress vs External Service 간단한 my-app파드와 파드를 연결해주는 my-app서비스를 생각해보자. external-service는 사용자가 브라우저를 통해서 보낸 요청을 받아서 알맞은 파드로 전달해주는 역할을 한다. 사용자가 서비스에 접근하기 위해서는 클러스터에 접근하기 위한 클러스터 IP와 서비스가 열어놓은 포트 그리고 HTTP 프로토콜을 사용할 수 있다. 이러한 방식은 특정 케이스에 대해서 테스트하기 매우 빠르고 편리하다는 장점이 있다. 하지만 이는 배포 단계에서는 좋지 못하다. 배포 단계에서는 도메인 명으로 API 통신을 하는 것이 보안적 측면에서 중요하다. 이를 가능하게 해주는 쿠버네티..

    [kubernetes] VirtualBox의 Minikube Service 노출시키기

    [kubernetes] VirtualBox의 Minikube Service 노출시키기

    왜 Minikube에서 만든 서비스는 호스트 브라우저에서 접근이 안될까?? Minikube에서 Nginx와 mongo-express 서비스를 External-service로 만들어보고, Internal-service로 만들어서 Ingress를 활용해 연결도 해보았다. 그런데 minikube에는 minikube만의 IP가 있다.(이하 mini IP) Virtual Box 같은 VM 에서 minikube를 사용하는 경우에 External-service를 생성하면 curl http://:port 와 같이 반드시 minikube IP를 사용해서 접근해야 한다. 그리고 이런 접근 방법 때문에 Linux 내부 IPtable을 사용한 포트포워딩과 VM 자체 포트포워딩을 통해 VM의 IP와 minikube IP를 엮어..

    [kubernetes] #7 Demo 프로젝트: MongoDB + MongoExpress

    [kubernetes] #7 Demo 프로젝트: MongoDB + MongoExpress

    서론 우선 MongoDB 파드를 생성할 것이다. MongoDB 파드는 외부의 요청을 받지 않도록 Internal Service로 생성할 것이다. 그리고 MongoExpress Deployment를 생성할 것이다. MongoExpress 는 DB url이 필요할 것이고, 생성해 두었던 MongoDB와 연결될 것이다. MongoDB에 접근하기 위해선 인증을 위한 Credentials가 필요하다. DB User와 DB Password가 필요한 것이다. 이 정보들은 MongoExpress의 Deployment.yaml 파일의 environmental 부분에 입력할 것이다. 이는 어떻게 정보를 사용하는지를 나타내기 위함이다. 그리고 DB url을 가지고 있는 ConfigMap을 생성할 것이다. 그리고 Creden..

    [kubernetes] #4 Minikube와 kubectl - 클러스터 구축

    [kubernetes] #4 Minikube와 kubectl - 클러스터 구축

    서론 minikube가 무엇인지 알아보자 kubectl이 무엇인지 알아보자 Minikube cluster를 설치해보자 Minikube 란? 일반적으로 배포에 사용되는 쿠버네티스 클러스터는 위와 같은 구조를 가진다. 즉, 다수의 마스터 노드와 워커 노드를 가진다. 그리고 마스터 노드와 워커 노드들은 각자의 역할을 부여받는다. 위 그림에서 보다시피 하나의 노드는 하나의 물리 머신 또는 가상 머신이 된다. 만약 로컬 환경에서 이러한 구조를 테스트 해보고 싶다면 어떻게 할까? 작은 기능 하나를 테스트 하기 위해서 위와 같이 많은 노드를 가진 클러스터를 구성해 보는 것은 매우 어렵다. (가상 머신을 많이 만들어서 테스트 한다고 해도, 일반적인 컴퓨터에서는 CPU와 RAM은 충분하지 않을 것이다.) 이같은 걱정을 ..