KOPS를 사용하여 AWS에 k8s를 배포했습니다. nginx ingress https://github.com/kubernetes/ingress-nginx nginx-ingress-controller 이미지를 만들었습니다 : quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.18.0
모든 것이 실행되고 있으며 nginx 서비스에서 생성 된 aws 클래식로드 밸런서를 사용하여 외부에서 애플리케이션에 액세스 할 수 있습니다.
최근에 우리는 웹 소켓 작업을 시작했습니다. 내 서비스를 k8s에 배포하고 외부에서 액세스하려고합니다.
내 애플리케이션에 대한 서비스와 수신을 만들었습니다. Ingress는 이제 loadbalancer (json 파일 아래)를 가리 킵니다.
aws에서 route53 항목을 생성하고 연결을 시도했지만 크롬 브라우저를 통해 클라이언트 애플리케이션에서 연결하려고 할 때 아래 오류가 발생합니다.
'wss : //blockchain.aro/socket.io/? EIO = 3 & transport = websocket'에 대한 WebSocket 연결 실패 : WebSocket 핸드 셰이크 중 오류 : 예기치 않은 응답 코드 : 400
Application Load Balancer 생성을 시도했지만 연결할 수 없습니다. wss://<host>
오류:
'wss : //blockchain.aro/socket.io/? EIO = 3 & transport = websocket'에 대한 WebSocket 연결 실패 : WebSocket 핸드 셰이크 중 오류 : 예기치 않은 응답 코드 : 400
const config: SocketIoConfig = { url: 'wss://blockchain.aro',
options: { autoConnect: false, transports: ['websocket']} };
Ingress:
"annotations": {
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"extensions/v1beta1\",\"kind\":\"Ingress\",\"metadata\":{\"annotations\":{},\"name\":\"blockchain\",\"namespace\":\"adapt\"},\"spec\":{\"rules\":[{\"host\":\"blockchain.aro\",\"http\":{\"paths\":[{\"backend\":{\"serviceName\":\"blockchain\",\"servicePort\":8097},\"path\":\"/\"},{\"backend\":{\"serviceName\":\"blockchain\",\"servicePort\":8097},\"path\":\"/socket.io\"},{\"backend\":{\"serviceName\":\"blockchain\",\"servicePort\":8097},\"path\":\"/ws/\"}]}}],\"tls\":[{\"hosts\":[\"blockchain.aro\"],\"secretName\":\"blockchain-tls-secret\"}]}}\n",
"nginx.ingress.kubernetes.io/proxy-read-timeout": "3600",
"nginx.ingress.kubernetes.io/proxy-send-timeout": "3600"
}
포함 tls
하고 secretname
및 rules
침입 파일에. 나는 창조를 시도 ApplicationLoadbalancer
했지만 그것과도 연결할 수 없었다.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
certmanager.k8s.io/cluster-issuer: core-prod
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/websocket-services: core-service
nginx.org/websocket-services: core-service
name: core-ingress
spec:
rules:
- host: test.io
http:
paths:
- backend:
serviceName: core-service
servicePort: 80
tls:
- hosts:
- test.io
secretName: core-prod
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다