背景1
使用deployment部署一个http服务,配合使用ingress+tls的解析在ingress终止。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
name: test.com
namespace: rcs-netswitch-prod
spec:
defaultBackend:
service:
name: rcs-netswitch-prod
port:
number: 9200
ingressClassName: nginx
rules:
- host: test.com
http:
paths:
- backend:
service:
name: rcs-netswitch-prod
port:
number: 9200
path: /
pathType: Prefix
tls:
- hosts:
- test.com
secretName: 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-tcp
namespace: ingress-nginx
格式:“端口”: 命名空间/服务:端口
前面的端口
是nginx-ingress-controller监听端口,会转发到命名空间
下的服务:端口
ports:
- containerPort: 80
hostPort: 80
name: http
protocol: TCP
- containerPort: 443
hostPort: 443
name: https
protocol: TCP
这里是通过hostPort方式映射的端口,也可以在service中使用loadBalance、nodePort方式暴露端口,nodePort方式还需要添加LB转发
参考链接:https://blog.csdn.net/biyanjiangdu04942/article/details/145324374