작성
·
635
·
수정됨
2
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: test-ing-wan
namespace: test-wan
spec:
ingressClassName: user-ingress-class
rules:
- host: wan.test.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: test-svc-wan
port:
number: 8080
-----------------------------------------------
kind: Service
apiVersion: v1
metadata:
name: test-svc-wan
namespace: test-wan
spec:
ports:
- protocol: TCP
port: 8080
targetPort: 8080
type: ExternalName
sessionAffinity: None
externalName: test-deploy-lan.test-lan.svc.cluster.local
internalTrafficPolicy: Cluster
status:
loadBalancer: {}
kind: Service
apiVersion: v1
metadata:
name: test-deploy-lan
namespace: test-lan
spec:
ports:
- name: http-port
protocol: TCP
port: 8080
targetPort: 8080
nodePort: 31141
selector:
app: test-deploy-lan
clusterIP: 10.96.138.89
clusterIPs:
- 10.96.138.89
type: NodePort
sessionAffinity: None
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
internalTrafficPolicy: Cluster
status:
loadBalancer: {}
외부망 네임스페이스(test-wan)의 인그레스를 타고 들어와서 내부망 네임스페이스(test-lan)의 서비스에 연결해주려고 하는데 위처럼 502 bad gateway가 뜨며 연결이 되지 않습니다.
내부망의 노드포트로 붙으면 서비스 페이지가 동작하는데 도메인으로 연결하면 연결이 되지 않습니다(hosts파일에 IP, 도메인 추가하였습니다)
무엇이 문제인지 확인 한번 부탁드립니다.
답변 2
1
안녕하세요.
먼저, ingress 에 test-deploy-lan을 바로 연결 안하고 test-svc-wan을 연결 했을까요?
그리고 nginx에 연결된 Service와 스펙과 hosts 에 설정한 내용도 캡쳐 바랍니다.
0
Nginx의 502 bad gateway를 화면을 보니 정상적으로 nginx에 트래픽은 간거 같은데
포트 없이 wan.test.com 만 입력한거 보니 192.168.60.194에 80 포트로 nginx에 연결되는 service를 올린거죠?
그리고, 굳이 ExternalName을 쓴 이유가 있는지?
그냥 아래와 같이 바로 lan Service에 연결되는 ingress를 만들면 되지는 않나요?
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: test-deploy-lan
namespace: test-lan
spec:
ingressClassName: user-ingress-class
rules:
- host: wan.test.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: test-deploy-lan
port:
number: 8080
꼭 그래야 한다면 구간별로 좀더 테스트를 해보세요.
test-wan 네임스페이스에 일반 Service와 Pod를 하나 띄어놓고,
Ingress에 이 일반 Service 를 연결해 보시고요.
된다면
ingress에 ExternalName을 준 서비스를 연결하고, Exteranlname을 위 일반 Service를 연결해 보시고요.
이렇게 구간별로 테스트를 해봐서 정확히 어떤 구간이 문제인지 부터 확인이 되야할 것 같아요.
test-wan 네임스페이스의 ingress에서
test-wan 네임스테이스의 test-wan-svc svc에 연결 후 해당 svc의 ExternalName으로
test-lan 네임스페이스의 test-deploy-lan svc로 연결했습니다.
test-deploy-lan의 노드포트로 연결된 페이지는 아래와 같이 정상적인 테스트 페이지를 띄우고 있는데
windows의 hosts 파일에 사진과 같이 도메인 추가 후 페이지에 접속하면 사진과 같이 오류가 뜨며 호출되지 못하고 있습니다.
그리고 nginx에 연결된 Service와 스펙은 어떤 부분을 말씀해주시는 걸까요?
웹 서비스가 떠있는 test-lan 네임스페이스의 test-dev-lan deployment를 보여드리면 될까요?