nginx-ingress的使用
为什么用到nginx-ingress?,在配置完k8s以后,比如说我通过go开发的api对外提供服务,我可能需要对外提供服务,在这个过程中,需要将IP地址解析到域名,开始我准备使用istio配置的, 但是后来由于版本的问题,一直有问题,我的k8s是1.18.6,后来想到nginx-ingress,这个一定要注意版本的选择,在github 上基本上只列出了k8s1.19+以上的版本的兼容信息,我就选择了 v0.45.0版本,结果没有任何问题
这是我的ingress配置文件
# test-ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-network-ingress
namespace: nginx-ingress-namespace
spec:
# 1.18及以后版本需要通过ingressClassName指定使用的controller,或者在ingressClass中设置默认controller,否则ingress不生效
ingressClassName: nginx
rules:
- host: ingress.xxx.com
http:
paths:
- path: /
backend:
serviceName: nginx-ingress-app-service
servicePort: 8082
tls:
- hosts:
- ingress.xxx.com
secretName: nginx-ingress-app-secret
然后执行:
[root@k8smaster k8s-nginx-ingress]# kubectl apply -f network-ingress.yaml
ingress.networking.k8s.io/nginx-network-ingress created
检查域名映射情况:
[root@k8smaster k8s-nginx-ingress]# kubectl get ingresses -n nginx-ingress-namespace
NAME CLASS HOSTS ADDRESS PORTS AGE
nginx-network-ingress nginx ingress.xxx.com nodeIp 80, 443 2m38s
由于配置了tls,所以这里可以通过https访问,至于怎么配置https我在下一篇会讲到
