k8s整合istio配置gateway入口、配置集群內(nèi)部服務(wù)調(diào)用管理(最新推薦)
一、 istio gateway使用demo
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: ngdemo-gateway
namespace: ssx
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "tomcat.shenshuxin.cn"
EOF
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: ngdemo-virtualservice
namespace: ssx
spec:
hosts:
- "tomcat.shenshuxin.cn"
gateways:
- ngdemo-gateway
http:
- match:
- uri:
prefix: /v1
route:
- destination:
port:
number: 8082
host: demo-tomcat-for-ingress-name
- route:
- destination:
port:
number: 8081
host: demo-tomcat-for-ingress-name
EOFcurl -HHost:tomcat.shenshuxin.cn “http://node101:32318”
端口號是ingressgateway服務(wù)的nodeport
查看方式: kubectl get service -n istio-system | grep istio-ingressgateway
找到80端口對應(yīng)的nodeport即可
二、istio部署測試服務(wù)之間的調(diào)用通信
部署兩個tomcat服務(wù)pod并且配置serivce服務(wù)
注意部署的兩個deployment需要指定一下版本標(biāo)簽 version: ??
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-tomcat-for-istio-name1
namespace: ssx
spec:
replicas: 1
selector:
matchLabels:
app: demo-tomcat-for-istio-dm
template:
metadata:
labels:
app: demo-tomcat-for-istio-dm
version: vv11
spec:
containers:
- image: 'docker.io/library/tomcat:8'
imagePullPolicy: IfNotPresent
name: demo-tomcat-c
ports:
- containerPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-tomcat-for-istio-name2
namespace: ssx
spec:
replicas: 1
selector:
matchLabels:
app: demo-tomcat-for-istio-dm
template:
metadata:
labels:
app: demo-tomcat-for-istio-dm
version: vv22
spec:
containers:
- image: 'docker.io/library/tomcat:8'
imagePullPolicy: IfNotPresent
name: demo-tomcat-c
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
labels:
app: demo-tomcat-for-istio-sv-lb
name: demo-tomcat-for-istio-name
namespace: ssx
spec:
ports:
- name: tomcat8080
port: 8081
protocol: TCP
targetPort: 8080
selector:
app: demo-tomcat-for-istio-dm
type: ClusterIP通過istio的虛擬服務(wù)進(jìn)行流量管理
注意這里的hosts名稱(demo-tomcat-for-istio-name)要和上面的service配置的一致,這樣istio才可以進(jìn)行流量管理。這里設(shè)置了請求轉(zhuǎn)發(fā)策略,并且設(shè)置自定義響應(yīng)頭
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: demo-tomcat-istio-vs
namespace: ssx
spec:
hosts:
- demo-tomcat-for-istio-name
http:
- headers:
request:
set:
test: "true"
route:
- destination:
host: demo-tomcat-for-istio-name
subset: vv11
weight: 10
headers:
response:
set:
ssxppp: abc
- destination:
host: demo-tomcat-for-istio-name
subset: vv22
headers:
response:
set:
ssxppp: 123
weight: 90
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: demo-tomcat-istio-dr
namespace: ssx
spec:
host: demo-tomcat-for-istio-name
subsets:
- name: vv11
labels:
version: vv11
- name: vv22
labels:
version: vv22驗證
隨便找一個集群中的通過istio代理的服務(wù),執(zhí)行curl命令:
# curl -I demo-tomcat-for-istio-name.ssx:8081 HTTP/1.1 200 OK accept-ranges: bytes etag: W/"8-1691939281480" last-modified: Sun, 13 Aug 2023 15:08:01 GMT content-type: text/html content-length: 8 date: Tue, 15 Aug 2023 00:54:15 GMT x-envoy-upstream-service-time: 2 server: envoy ssxppp: fs
調(diào)用的方式是service名稱.命名空間名稱:端口號。
curl -I 命令是只顯示響應(yīng)頭
到此這篇關(guān)于k8s整合istio配置gateway入口、配置集群內(nèi)部服務(wù)調(diào)用管理的文章就介紹到這了,更多相關(guān)k8s整合istio配置gateway入口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
k8s整合istio配置gateway入口、配置集群內(nèi)部服務(wù)調(diào)用管理(最新推薦)
這篇文章主要介紹了k8s整合istio配置gateway入口、配置集群內(nèi)部服務(wù)調(diào)用管理,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08

