✔️ Readiness Probe (준비성 프로브) 컨테이너가 요청을 처리할 준비가 되었는지 여부를 나타낸다. 만약 준비성 프로브(readiness probe)가 실패한다면, 엔드포인트 컨트롤러는 파드에 연관된 모든 서비스들의 엔드포인트에서 파드의 IP주소를 제거한다. 준비성 프로브의 초기 지연 이전의 기본 상태는 Failure 이다. 만약 컨테이너가 준비성 프로브를 지원하지 않는다면, 기본 상태는 Success 이다. vagrant@node1 ~/svc/readiness kubectl explain rs.spec.template.spec.containers readinessProbe Periodic probe of container service readiness. Container will b..
✔️ Challenge ㅇ다음과 같은 구조로 동작하도록 리소스를 생성해보자 ! Ingress Controller가 있고 SVC가 2개 있고 RS로 파드를 2개 생성한 구조이다. 똑같은 이름의 경로를 다르게 한다던지 host를 다르게 해주어 부하분산을 할 수 있다. 2개의 서비스를 만든다. 이미지 생성 Apache Image 1 Index.html (Hello One 출력) Apache Image 2 Index.html (Hello Two 출력) 각 이미지로 2개의 파드를 생성하는 ReplicaSet 만들기 NodePort 서비스 만들기 서비스에 Ingress 만들기 호스트는 동일 (*.nip.io/one, *.nip.io/two) → 총 5개의 .yaml 파일이 생성되어야 한다. ✔️ Solution D..
✔️ Ingress 인그레스 컨트롤러 | Kubernetes Ingress 라는 오브젝트 리소스를 구현해주는 것이 Ingress Controller이다. 쿠버네티스의 핵심은 Controller Manager이다. METALLB에서도 controller가 실질적인 로드밸런서 기능을 한다. 컨트롤러라는 이름이 붙은 것들은 대부분 구현하고 제어하는 역할을 한다. 따라서 Ingress 리소스가 작동하려면, Ingress Controller가 반드시 필요하다. 프로젝트로서 쿠버네티스는 AWS, GCE와 nginx 인그레스 컨트롤러를 지원하고 유지한다. vagrant@node1 ~ kubectl api-resources | grep ingress ingressclasses networking.k8s.io/v..
✔️ Service - ExternalName 클러스터 내부에서 클러스터 외부의 특정 서비스에 접속하기 위해 DNS CNAME을 설정한다. vagrant@k8s-node1 ~/svc/exname kubectl explain svc.spec.type "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types vagrant@k8s-node1 ..
✔️ Service - LoadBalancer LoadBalancer = 외부용 LoadBalancer + NodePort + ClusterIp 클라우드 공급자의 로드 밸런서를 사용하여 서비스를 외부에 노출시킨다. 외부 로드 밸런서가 라우팅되는 NodePort와 ClusterIP 서비스가 자동으로 생성된다. 클라이언트들에게 192.168.100.100:31313, 192.168.100.101:31313, 192.168.100.102:31313 로 서비스를 제공하는 것은 의미가 없다. 외부용 DNS를 사용하면(www.abc.com) ip 영역은 커버할 수 있지만 포트까지는 해결할 수 없다. 사용자들이 www.abc.com:31313 으로 접근하는 것은 매우 불편하다. 따라서 우리는 다음과 같이 LB라는 서..
✔️ Service - NodePort svc.spec.type ClusterIP: 클러스터 내에서 사용하는 LB NodePort: 클러스터 외부에서 접근하는 포인트 LoadBalancer: 클러스터 외부에서 접근하는 LB vagrant@k8s-node1 ~ kubectl explain svc.spec.type "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current..