demoapp1.0
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: demoappv10
version: v1.0
name: demoappv10
spec:
progressDeadlineSeconds: 600
replicas: 3
selector:
matchLabels:
app: demoapp
version: v1.0
template:
metadata:
labels:
app: demoapp
version: v1.0
spec:
containers:
- image: ikubernetes/demoapp:v1.0
imagePullPolicy: IfNotPresent
name: demoapp
env:
- name: "PORT"
value: "8080"
ports:
- containerPort: 8080
name: web
protocol: TCP
demoapp1.1
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: demoappv11
version: v1.1
name: demoappv11
spec:
progressDeadlineSeconds: 600
replicas: 2
selector:
matchLabels:
app: demoapp
version: v1.1
template:
metadata:
labels:
app: demoapp
version: v1.1
spec:
containers:
- image: registry.cn-shenzhen.aliyuncs.com/lavamusic/public:demoapp-v1.1
imagePullPolicy: IfNotPresent
name: demoapp
env:
- name: "PORT"
value: "8080"
ports:
- containerPort: 8080
name: web
protocol: TCP
resources:
limits:
cpu: 50m
service
apiVersion: v1
kind: Service
metadata:
name: demoapp
spec:
ports:
- name: http
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: demoapp
type: ClusterIP
proxy
apiVersion: apps/v1
kind: Deployment
metadata:
name: proxy
spec:
progressDeadlineSeconds: 600
replicas: 1
selector:
matchLabels:
app: proxy
template:
metadata:
labels:
app: proxy
spec:
containers:
- env:
- name: PROXYURL
value: http://demoapp:8080
image: registry.cn-shenzhen.aliyuncs.com/lavamusic/public:proxy-v0.1.1
imagePullPolicy: IfNotPresent
name: proxy
ports:
- containerPort: 8080
name: web
protocol: TCP
resources:
limits:
cpu: 50m
---
apiVersion: v1
kind: Service
metadata:
name: proxy
spec:
ports:
- name: http-80
port: 80
protocol: TCP
targetPort: 8080
selector:
app: proxy
vs
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: proxy
spec:
hosts:
- "istio.yht.com" # 对应于gateways/proxy-gateway
gateways:
- istio-system/proxy-gateway # 相关定义仅应用于Ingress Gateway上
http:
- name: default
route:
- destination:
host: proxy
gateway
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: proxy-gateway
namespace: istio-system # 要指定为ingress gateway pod所在名称空间
spec:
selector:
app: istio-ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "istio.yht.com"
检查
[root@k8s-uat-manager 04-proxy-gateway]# kubectl get gateway -n istio-system | grep proxy
proxy-gateway 7m5s
[root@k8s-uat-manager 04-proxy-gateway]# kubectl get vs
NAME GATEWAYS HOSTS AGE
proxy ["istio-system/proxy-gateway"] ["istio.yht.com"] 7m33s
[root@k8s-uat-manager 03-demoapp-subset]# kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
grafana-cc959c75c-m4x87 1/1 Running 0 31d
istio-ingressgateway-7cb54b46c8-vjnnb 1/1 Running 0 31d
istiod-68757f57b4-fx2sz 1/1 Running 0 31d
jaeger-7747d44bfc-2cbct 1/1 Running 0 31d
kiali-67946bcc89-gb4mz 1/1 Running 0 31d
prometheus-85674d4cb8-5vb4c 2/2 Running 0 31d
[root@k8s-uat-manager 03-demoapp-subset]# istioctl pc route istio-ingressgateway-7cb54b46c8-vjnnb.istio-system | grep -i "istio.yht.com /*"
http.8080 istio.yht.com:80 istio.yht.com /* proxy.default
[root@k8s-uat-manager 03-demoapp-subset]#
浏览器访问
http://istio.yht.com
kiali查看