Ingress的部署这里省略,我的另外一篇博客上已经详细介绍部署过程,这里我们主要操作是给ingress添加域名,并做反向代理。
先在k8s上部署一个nginx的pod,然后用ingress来代理这个nginx的pod,实现访问ingress地址就代理到对应的nginx服务,部署nginx服务,并测试能正常访问:
接下来用ingress来代理这个部署好的nginx服务,编写ingress代理nginx的yaml如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-nginx-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: “nginx”
spec:
rules:
- host: #如果需要添加域名可以写上
http:
paths: #可以写服务需要正则匹配和前缀匹配的url
- backend: #用来代理
serviceName: nginx-svc #代理的pod的svc名称
servicePort: 80 #对应的svc端口
然后创建,创建完之前查看对应的ingress,并访问:
下面可以写个用ingress前缀匹配代理nginx服务:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress-12
spec:
ingressClassName: nginx
rules:
- host:
http:
paths:
- path: /index.nginx-debian.html
pathType: Prefix
backend:
serviceName: nginx-svc
servicePort: 80
- path: /index.html
pathType: Prefix
backend:
serviceName: nginx-svc
servicePort: 80
然后创建,并验证:
上面都是通过ingress的ip进行访问,接下来我们给ingress添加域名,进行访问测试:
ingress配置域名访问yaml如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress-12
spec:
ingressClassName: nginx
rules
- host: csh.com
http:
paths:
- path: /index.nginx-debian.html
pathType: Prefix
backend:
serviceName: nginx-svc
servicePort: 80
- path: /index.html
pathType: Prefix
backend:
serviceName: nginx-svc
servicePort: 80
然后将对应的域名添加到解析文件中,测试如下: