ingress-nginx-controller 공식 홈페이지의 베어서버 버전 컨트롤러를 설치하면 x-forwarded-for 기능이 올바르게 작동도지 않았다 그이유는 공식 홈페이지의 버전이 조금 더 높아서여서 버전이 낮은 컨트롤러를 이용해서 x-forwarded-for를 확인
ingress-nginx-controller 설치
k apply -f https://raw.githubusercontent.com/Beas-github/test/master/T2/nginx-ingress1.yaml
ingress-nginx-controller를 설치하게 되면 ingress-nginx라는 namespace가 생성이되면서 ingress - controller는 분리되어 동작이 된다.
Ingress Controller는 Ingress가 동작하기 위해서 반드시 필요한 존재로 ingress Controller가 Ingress를 선택해서 사용한다.
밑의 주소의 사진을 참고하면
Ingress
Service Loadbalancing, Canary Upgrade
kubetm.github.io
Ingress가 동작하는 로직을 나타내는 그림으로 Ingress Controller를 설치하면 Ingress-Controller(종류)의 namespace로 Service-Pod가 생성되어 Ingress Controller가 동작이 된다.
컨트롤러를 더 자세히 살펴보면 Service와 Pod를 볼수가 있는데
컨트롤러의 Service는 외부와 통신을 하기위해서 NodePort 서비스가 생성이되어 HTTP/HTTPS 접근이 가능해지는 Port를 컨트롤러 Pod에 열어준다.
컨트롤러의 Pod는 설치한 컨트롤러의 종류 이번에는 nginx를 설치해서 nginx pod가 생성이 된다.
컨트롤러의 Pod nginx가 하는 일은 쿠버네티스를 통해 만든 Ingress를 참조해 정의해둔 규칙에 따라 동작하는 역활을 한다.
Ingress 만들기
Ingress는 쿠버네티스를 통해서 yaml파일로 만들 수 있다. -> Ingress는 동작을 정의 할 뿐이지 실제로 동작하는게 아니다.
apiVersion: networking.k8s.io/v1-> Ingress 오브젝트를 사용할 api 서버
kind: Ingress -> 오브젝트 종류는 Ingress
ingressClassName: nginx -> 인그레스 컨트롤러 리소스의 이름으로 어떤 컨트롤러에서 구현 할것인지 정의한다.
tls: -> tls를 사용한다.
- hosts: good.com -> good.com 이라는 도메인으로 접속 할때 tls를 적용 할 수 있다.
secretName: secret-https -> tls에서 사용할 암호 이름은 secret-https이다.
rules: -> 인그레스의 규칙을 설정한다.
host: good.com -> good.com로 접속 할때 적용한다.
path: / -> http를 통해 /(good.com)로 접근 하는 요청을
backend: -> backend에서 정의한 곳으로 전달 한다.
service.name: svc-https -> svc-https라는 이름의 service로 전달한다.
service.port.number: 80 -> svc-https 서비스의 80포트로 전달한다.
접속테스트
패킷을 확인 해보면
192.168.10.150은 클라이언트 PC의 IP이고 192.168.10.10은 마스터 노드의 IP이다.
DNS 서버를 따로 만들지 않아 클라이언트 PC에서 hosts 파일을 직접 수정해서 good.com을 넣어 주었다.
클라이언트 PC <-> Master 노드 사이에 HTTPS 가 동작하는 것을 확인 할 수 있다.
그렇다면 172.30.29.13은 누구의 IP 일까?
인그레스 컨트롤러를 설치하며 생성된 컨트롤러 Pod 즉 Nginx가 설치된 Pod의 IP 이다.
실제로 Ingress라는 것은 Ingress-nginx-controller가 동작한다는 것을 확인 할 수 있고 Ingress-nginx-controller가 Proxy 서버로 동작한다는 것을 확인 할 수 있다.
'경기도 미래기술학교 클라우드 > TIL' 카테고리의 다른 글
23.08.29 AWS 교육 (0) | 2023.08.29 |
---|---|
VPC (0) | 2023.08.19 |
23.08.16 수 (0) | 2023.08.16 |
쿠버 정리 #2 (0) | 2023.08.15 |
쿠버 정리 #1 (0) | 2023.08.15 |