Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. # networking Ingress {{tag>k8s networking ingress}} ## Ingress - 인그레스를 사용하기 위해서는 [[K8s]] 클러스터상에 인그레스 컨트롤러가 동작하고 있어야 한다 - 인그레스는 URL의 경로와 애플리케이션을 매핑해 주는 리버시 프록시다 - 하나의 IP 주소에 여러 개의 도메인 이름을 등록하여, 도메인 이름에 대응하는 애플리케이션을 정의할 수 있다 - 서버 인증서를 등록하면 SSL/TLS 암호화, 즉 HTTPS를 통한 접속이 가능해진다 - 인그레스의 세션 어피니티 기능은 로드밸런서에 의존하는 레거시 웹 애플리케이션을 쿠버네티스에서 돌릴 때 유용하게 사용될 수 있다 - [[NGINX]] 인그레스 컨트롤러와 kube-keppalived-vip를 사용하면 VIP를 공유하는 노드로 [[HA]] 구성이 가능하다 ## YAML <code> apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: hello-ingress annotations: kubernetes.io/ingress.class: 'nginx' nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: abc.sample.com http: paths: - path: / backend: serviceName: helloworld-svc servicePort: 8080 - path: /apl2 backend: serviceName: nginx-svc servicePort: 9080 - host: xyz.sample.com http: paths: - path: / backend: serviceName: java-svc servicePort: 9080 </code> ### fix <code> apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hello-ingress annotations: # kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: abc.sample.com http: paths: - path: / pathType: Prefix backend: service: name: helloworld-svc port: number: 8080 - path: /apl2 pathType: Prefix backend: service: name: nginx-svc port: number: 9080 - host: xyz.sample.com http: paths: - path: / pathType: Prefix backend: service: name: java-svc port: number: 9080 </code> ### 인그레스 API ^ 주요 항목 ^ 설명 ^ | apiVersion | networking.k8s.io/v1beta1 | | kind | Ingress 설정 | | metadata.name | 인그레스 오브젝트의 이름 | | metadata.annotations | 인그레스 컨트롤러 설정에 사용\\ https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/ | | spec | 인그레스 사양 | ### 인그레스 사양 ^ 주요 항목 ^ 설명 ^ | rules | DNS명과 백엔드 서비스를 대응시키는 규칙 목록\\ 이 규칙에 맞지 않는 요청은 디폴트 백엔드라는 파드에 전송됨 | | tls | [[TLS]] 인증서와 도메인 | ### 인그레스 규칙 ^ 주요 항목 ^ 설명 ^ | host | [[FQDN]] (Fully Qualified Domain Name) 설정 | | http | URL 경로와 백엔드 서비스의 대응 배열 | ### URL 경로와 백엔드 서비스의 대응 배열 ^ 주요 항목 ^ 설명 ^ | paths | URL의 경로와 백엔드 서비스를 대응시키는 목록을 기술 | ### URL 경로와 백엔드 서비스의 대응 ^ 주요 항목 ^ 설명 ^ | path | URL 주소의 경로 부분을 기재 | | backend | 요청이 전달될 서비스와 포트번호 기재 | ### 전송될 서비스의 이름과 포트번호 ^ 주요 항목 ^ 설명 ^ | serviceName | 서비스 이름 | | servicePort | 서비스의 포트번호 | ### TLS 인증서와 도메인 ^ 주요 항목 ^ 설명 ^ | hosts | 도메인명 목록 | | secretName | 서버 인증서 시크릿의 이름\\ 시크릿은 네임스페이스 내에 보안이 필요한 데이터를 보존하는 오브젝트로 컨테이너에서 볼륨으로 마운트 가능 | ## Links - https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/ open/networking-ingress.txt Last modified: 2024/10/05 06:15by 127.0.0.1