BaeBox

Ingress 본문

개발 관련

Ingress

배모씨. 2019. 11. 2. 17:46
반응형

 

Ingres 동작 방식(출처: nginx 공식 페이지)

 

Ingress : HTTP 나 HTTPS 통신을 클러스터 내부의 서비스에 연결해 주는 도구.

쉽게 말해 가정집의 공유기와 비슷한 역할을 한다.

Deployment(pod) 는 Service 와 연결된다고 선술한 바 있다. 

Ingress 는 아래 이미지와 같이 Service 와 연결해주면 된다. 

Deployment, Service, Ingress 의 연결관계. 

이미지 출처 : https://medium.com/@dwdraju/how-deployment-service-ingress-are-related-in-their-manifest-a2e553cf0ffb

 


자, 이제 Ingress 를 이용해서 뭔가를 배포해보자.

난 가장 많이 사용되는 nginx Ingress 를 이용할 것이다.

 

1. Ingress 를 얻어오자.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

- 위 명령어가 행하는 동작은 nginx ingress conatiner 배포, 네임스페이스 생성, configMap 생성


1.5 minikube 에서 ingress 사용을 가능케 하는 명령어를 입력

minikube addons enable ingress

 

2. (ingress 에서  연결해줄)Deployment, Service 생성

kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080
&&
kubectl expose deployment kubernetes-bootcamp

 

3. ingress 생성

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
  name: example-ingress 
spec: 
  rules: 
    - http: 
        paths: 
          - path: /bootcamp
            backend: 
              serviceName: kubernetes-bootcamp 
              servicePort: 8080

          - path: /nginx 
            backend: 
              serviceName: nginx-service 
              servicePort: 80

참고로 nginx 에서 제공하는 mandatory.yaml 파일 만드는 nginx-ingress container 의 생성이 조금 느린편이다.

여튼, Deployment, Service, Ingress 는 다 만들었으니, 한번 테스트를 해보자. 

 

<사용자 ip>/bootcamp 로 접속시 이런 결과값이 나오게 된다.

잘 되는 것 같다.

끗!


https://crystalcube.co.kr/206?category=834418

 

Docker with Kubernetes #11 - Ingress

Ingress 사용하기 Kubernetes 를 통해서 Service 를 생성하면, 기본적으로 NodePort 방식으로 만들어집니다. 이 경우 서비스에 접근하기 위해서는 http://{IP}:{NodePort} 형태로 해야하지요. 실제로 서비스하기에..

crystalcube.co.kr

https://arisu1000.tistory.com/27840

 

쿠버네티스 인그레스(kubernetes ingress)

인그레스(ingress)는 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙들의 모음입니다. 외부에서 접근가능한 URL을 사용할 수 있게 하고, 트래픽 로드밸런싱도 해주고, SSL 인증서 처..

arisu1000.tistory.com

https://bcho.tistory.com/1263

 

쿠버네티스 #8 - Ingress

쿠버네티스 #8 Ingress 조대협 (http://bcho.tistory.com) 쿠버네티스의 서비스는, L4 레이어로 TCP 단에서 Pod들을 밸런싱한다. 서비스의 경우에는 TLS (SSL)이나, VirtualHost와 같이 여러 호스트명을 사용하거..

bcho.tistory.com

https://kubernetes.github.io/ingress-nginx/deploy/

 

Installation Guide - NGINX Ingress Controller

 Installation Guide Contents Prerequisite Generic Deployment Command Attention The default configuration watches Ingress object from all the namespaces. To change this behavior use the flag --watch-namespace to limit the scope to a particular namespace. W

kubernetes.github.io

https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-ingress-guide-nginx-example.html

 

Kubernetes Ingress with Nginx Example - Kubernetes Book

Kubernetes Ingress with Nginx Example What is an Ingress? In Kubernetes, an Ingress is an object that allows access to your Kubernetes services from outside the Kubernetes cluster. You configure access by creating a collection of rules that define which in

matthewpalmer.net

https://medium.com/@dwdraju/how-deployment-service-ingress-are-related-in-their-manifest-a2e553cf0ffb

 

How Deployment, Service & Ingress are Related in Kubernetes Manifest?

While getting started to write yaml manifest of various Kubernetes resources, we get confused on label, selector, name etc. Let’s go…

medium.com

https://sallyhan82.tistory.com/12

 

[Docker] iptables failed - No chain/target/match by that name

오늘의 삽질.. 개발 할 것도 산더미인데, 나를 고생 시켰던 오늘 자 에러.. docker: error response from daemon: driver failed programming external connectivity on endpoint.. <중략> iptables failed: ~~~ !..

sallyhan82.tistory.com

참 좋은 글들이다.  읽어보자. 

 

반응형

'개발 관련' 카테고리의 다른 글

local registry  (0) 2019.11.02
PersistentVolume / PersistentVolumeClaim  (0) 2019.11.02
Web UI(dashboard) 설치  (0) 2019.11.02
Minikube 설치 및 cluster 구성  (0) 2019.11.02
Kubernetes cluster 구성  (0) 2019.11.02
Comments