kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理是:
为六合等地区用户提供了全套网页设计制作服务,及六合网站建设行业解决方案。主营业务为网站制作、成都网站建设、六合网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
Ingress Controller 会动态感知集群中的Ingress的规则变化,然后读取,动态生成Nginx的配置文件,最后注入到运行nginx的pod的中,然后会自动reload,配置生效。
用kubernetes Ingress 是由于它是7层调度,可以直接卸载https会话,代理的后端的pod可以直接使用明文的http协议。
而Service NodePort得类型,是4层得调度,做不到这点,然而现在https是一种趋势,所以在kubernetes 对外暴露服务得时候我们还是要选择Ingress。
下面我们来看下Ingress得部署:
原理图
首先创建一个文件夹专门放置Igress得yaml得文件,mkdir ingress
vim myapp.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-ding
image: ikubernetes/myapp:v2
---
apiVersion: v1
kind: Service
metadata:
name: myapp
#等会ingress就靠这个来匹配
spec:
selector:
app: myapp
type: ClusterIP
ports:
- port: 80
targetPort: 80
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-ding
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: www.yang.com
#虚拟机主机域名
http:
paths:
- path:
backend:
serviceName: myapp
#代理后端的service 的name
servicePort: 80
#后端service的端口