반응형
Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Diagrams
- 쉘 프로그래밍
- ubuntu
- Mermaid
- cloudfront s3
- k8s chatops
- nextjs html확장자
- 리눅스
- Harbor
- TLS
- linux 셸 스크립트
- linux 셸 프로그래밍
- kubenetes slack
- github-actions
- markdown mermaid
- k8s botkube
- Docker
- markdown
- kubernetes
- helm
- k8s slack
- kubenetes botkube
- botkube
- github
- terraform
- aws
- SSH
- github actions
- nextjs 정적배포
- k8s
Archives
- Today
- Total
민한의 블로그
istio gateway tls 404 에러해결 본문
728x90
반응형
각 VirtualService별로 내가 원하는 서브 도메인을 여러개 만들어서, 각각의 여러 gateway를 따로 설정하여 TLS 인증서를 적용시켜 주었더니, 하나의 도메인만 접속이 가능하고, 나머지는 접속이 불가능한 문제가 생기었다.
처음에는 각 서비스별 (harbor, argocd, grafana, kibana ..등)의 yaml파일에 환경설정이나 Service설정을 잘못하여 작동을 안하는줄 알았으나, 혹시나 싶어서 하단의 명령어를 작동 시켜보니, 뚜렷한 문제가 나왔다.
istioctl analyze
Warning [IST0138] (Gateway metric-monitoring/metric-gateway) Duplicate certificate in multiple gateways [metric-monitoring/metric-gateway argocd/argocd-dev-gateway] may cause 404s if clients re-use HTTP2 connections.
동일한 TLS 인증서를 사용하여 둘 이상의 게이트웨이를 구성하면 HTTP/2 연결 재사용을 활용하는 브라우저(즉, 대부분의 브라우저)가 이미 다른 호스트에 대한 연결이 설정된 후 두 번째 호스트에 액세스할 때 404의 오류를 생성한다고 한다.
해결 하고자 한다면, 내가 가진 도메인의 모든 경로를 받을수 있는 하나의 hosts를 gateway로 단 하나만 설정해주고
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: dev-gateway
namespace: default
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- "*.dev.xyz"
port:
number: 443
name: https-dev
protocol: HTTPS
tls:
credentialName: dev-tls
mode: SIMPLE
- hosts:
- "*.dev.xyz"
port:
name: http-dev
number: 80
protocol: HTTP
tls:
httpsRedirect: true
각각의 여러 VirtualService에서 단 하나의 gateway를 연결시켜, 내가 원하는 서브 도메인을 입력하여 사용하면 된다.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: dev-vs
namespace: default
spec:
hosts:
- "eks.dev.xyz"
gateways:
- default/dev-gateway
http:
- name: "eks-routes"
route:
- destination:
host: development
port:
number: 443
728x90
반응형
Comments