背景1
使用deployment部署一個http服務,配合使用ingress+tls的解析在ingress終止。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:annotations:name: test.comnamespace: rcs-netswitch-prod
spec:defaultBackend:service:name: rcs-netswitch-prodport:number: 9200ingressClassName: nginxrules:- host: test.comhttp:paths:- backend:service:name: rcs-netswitch-prodport:number: 9200path: /pathType: Prefixtls:- hosts:- test.comsecretName: test.com
訪問https://test.com:443結果請求正常。
去除tls部分的配置http://test.com:80也正常
背景2
使用deployment部署一個http服務,配合使用ingress+tls的解析在ingress終止,使用非443和80端口配置
需要在nginx-ingress-controller開啟tcp/udp支持。啟動參數確保有–tcp-services-configmap=xxx,如果沒有,手動添加
- '--tcp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-tcp'
二、添加對應configmap nginx-ingress-tcp
?
apiVersion: v1
data:"9200": test-devops/nacos-headless:9200
kind: ConfigMap
metadata:name: nginx-ingress-tcpnamespace: ingress-nginx
格式:“端口”: 命名空間/服務:端口
前面的端口
是nginx-ingress-controller監聽端口,會轉發到命名空間
下的服務:端口
ports:- containerPort: 80hostPort: 80name: httpprotocol: TCP- containerPort: 443hostPort: 443name: httpsprotocol: TCP
?這里是通過hostPort方式映射的端口,也可以在service中使用loadBalance、nodePort方式暴露端口,nodePort方式還需要添加LB轉發
? ? ? ? ? ? ? ? ? ? ?
參考鏈接:https://blog.csdn.net/biyanjiangdu04942/article/details/145324374