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 EOF
curl -HHost:tomcat.shenshuxin.cn “http://node101:32318”
端口號(hào)是ingressgateway服務(wù)的nodeport
查看方式: kubectl get service -n istio-system | grep istio-ingressgateway
找到80端口對(duì)應(yīng)的nodeport即可
二、istio部署測(cè)試服務(wù)之間的調(diào)用通信
部署兩個(gè)tomcat服務(wù)pod并且配置serivce服務(wù)
注意部署的兩個(gè)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
通過(guò)istio的虛擬服務(wù)進(jìn)行流量管理
注意這里的hosts名稱(demo-tomcat-for-istio-name)要和上面的service配置的一致,這樣istio才可以進(jìn)行流量管理。這里設(shè)置了請(qǐng)求轉(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
驗(yàn)證
隨便找一個(gè)集群中的通過(guò)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名稱.命名空間名稱:端口號(hào)。
curl -I
命令是只顯示響應(yīng)頭
到此這篇關(guān)于k8s整合istio配置gateway入口、配置集群內(nèi)部服務(wù)調(diào)用管理的文章就介紹到這了,更多相關(guān)k8s整合istio配置gateway入口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟
Kubernetes?k8s安裝腳本,非常好用,下面這篇文章主要給大家介紹了關(guān)于k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09Spark實(shí)現(xiàn)K-Means算法代碼示例
這篇文章主要介紹了Spark實(shí)現(xiàn)K-Means算法代碼示例,簡(jiǎn)單介紹了K-Means算法及其原理,然后通過(guò)具體實(shí)例向大家展示了用spark實(shí)現(xiàn)K-Means算法,需要的朋友可以參考下。2017-10-10k8s整合istio配置gateway入口、配置集群內(nèi)部服務(wù)調(diào)用管理(最新推薦)
這篇文章主要介紹了k8s整合istio配置gateway入口、配置集群內(nèi)部服務(wù)調(diào)用管理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08