連結: https://pan.baidu.com/s/1j8liEMtaNQKcNQySbsNQhA 密碼: crhl
開啟hostnetwork
給節點打上ingress=traefik的标簽
kubectl label node op-jmx-n01 ingress=traefik
安裝部署
kubectl create ns traefik-ingress
cd /srv/stuy/k201-master/charts/traefik
helm install traefik -n traefik-ingress -f traefik.yaml .
cd /srv/stuy/k201-master/4.Kubernetes容器網絡/config/ingress
# 建立應用
kubectl apply -f echo-app.yaml
# 使用ingress的方式通路應用
kubectl apply -f echo-traefik-ingress-http.yaml
kubectl get ingress
# 通路域名echo.hipstershop.cn
curl echo.hipstershop.cn
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SZjdTM5IDM2ADZ3gzMxM2YiFDNiJmNhFDZ2YWYxITM08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
通路443 不可以 原因是trarfik.yaml中沒有啟用ssl
為證書crt和key檔案配置secret
kubectl create generic echo-hipstershp-cn --from-file=cert/tls.crt --from-file=cert/tls.key
在echo-traefik-ingress-https.yaml中加入tls配置
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echo-traefik-ingress
annotations:
kubernetes.io/ingress.class: traefik
spec:
tls:
- secretName: echo-hipstershop-cn-cert
rules:
- host: echo.hipstershop.cn
http:
paths:
- path: /
backend:
serviceName: echo
servicePort: 80
應用并檢視配置
kubectl apply -f echo-traefik-ingress-https.yaml
kubectl get ingress
curl https://echo.hipstershop.cn
traefik 導出grpc服務
首先部署一個grpc的服務
grpc-app.yaml
---
apiVersion: v1
kind: Service
metadata:
name: grpc
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: grpc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: grpc
spec:
selector:
matchLabels:
app: grpc
replicas: 2
template:
metadata:
labels:
app: grpc
spec:
containers:
- name: grpc
image: findsec/grpc
ports:
- containerPort: 8080
env:
- name: PORT
value: "8080"
readinessProbe:
periodSeconds: 5
exec:
command: ["/bin/grpc_health_probe", "-addr=:8080"]
livenessProbe:
exec:
command: ["/bin/grpc_health_probe", "-addr=:8080"]
kubectl apply -f grpc-app.yaml
建立ingress grpc-traefik-ingress.yaml
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: grpc-traefik-ingress
annotations:
kubernetes.io/ingress.class: traefik
ingress.kubernetes.io/protocol: h2c # h2c協定
spec:
rules:
- host: grpc.hipstershop.cn
http:
paths:
- path: /
backend:
serviceName: grpc
servicePort: 80
應用ingress
kubectl apply -f grpc-traefik-ingress.yaml
檢查服務
/srv/stuy/k201-master/4.Kubernetes容器網絡/config/ingress/grpc_health_probe-linux-amd64 -addr grpc.hipstorshop.cn:80