kubernetes Ingess 是有2部分組成,Ingress Controller 和Ingress服務(wù)組成,常用的Ingress Controller 是ingress-nginx,工作的原理是:
為六合等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及六合網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站建設(shè)、六合網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
Ingress Controller 會(huì)動(dòng)態(tài)感知集群中的Ingress的規(guī)則變化,然后讀取,動(dòng)態(tài)生成Nginx的配置文件,最后注入到運(yùn)行nginx的pod的中,然后會(huì)自動(dòng)reload,配置生效。
用kubernetes Ingress 是由于它是7層調(diào)度,可以直接卸載https會(huì)話,代理的后端的pod可以直接使用明文的http協(xié)議。
而Service NodePort得類型,是4層得調(diào)度,做不到這點(diǎn),然而現(xiàn)在https是一種趨勢(shì),所以在kubernetes 對(duì)外暴露服務(wù)得時(shí)候我們還是要選擇Ingress。
下面我們來看下Ingress得部署:
原理圖
首先創(chuàng)建一個(gè)文件夾專門放置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
#等會(huì)ingress就靠這個(gè)來匹配
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
#虛擬機(jī)主機(jī)域名
http:
paths:
- path:
backend:
serviceName: myapp
#代理后端的service 的name
servicePort: 80
#后端service的端口