1、istio初窥门径

时间:2023-01-14 19:59:57

官网

​https://istio.io/latest/docs/setup/getting-started/​​​

安装

curl -L https://istio.io/downloadIstio | sh -
tar xf istio-1.16.1-linux-amd64.tar.gz
mv istio-1.16.1 /usr/local/
ln -s /usr/local/istio-1.16.1 /usr/local/istio
ln -s /usr/local/istio/bin/istioctl /usr/local/bin/istioctl
istioctl profile list
default: 生产可用
demo: 测试可用
istioctl install --set profile=demo -y
kubectl get pods -n istio-system

其他信息

[root@k8s-master01 local]# istioctl version 
client version: 1.16.1 # 客户端版本
control plane version: 1.16.1 # 控制平面版本
data plane version: 1.16.1 (2 proxies) # 数据平面版本
[root@k8s-master01 local]# kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-egressgateway-688d4797cd-4jpb5 1/1 Running 0 35m # 出网关
istio-ingressgateway-6bd9cfd8-j8k7f 1/1 Running 0 35m # 入网关
istiod-68fdb87f7-d82np 1/1 Running 0 37m # 数据平面

kiali介绍

kiali用来查看流量熔断等功能的图形界面

开启访问入口安装kiali

k8s-master节点为10.0.7.21
kubectl edit svc istio-ingressgateway -n istio-system
31 externalIPs:
32 - 10.0.7.21

# 添加命名空间标签以指示 Istio 在您稍后部署应用程序时自动注入 Envoy sidecar 代理:
kubectl label namespace default istio-injection=enabled
kubectl get ns --show-labels | grep default

# 安装kiali
cd /usr/local/istio/samples
kubectl apply -f addons/
kubectl get pods -n istio-system

# 查看接口
kubectl get crds
kubectl api-resources --api-group=networking.istio.io

# 查看当前支持envoy sidecar代理的应用有哪些
istioctl proxy-status
istioctl ps

配置kiali通过isito爆露入口

git clone https://github.com/iKubernetes/istio-in-practise.git
cd /usr/local/src/istio-in-practise/Traffic-Management-Basics/kiali-port-80
# 修改这两个配置文件的域名
-rw-r--r-- 1 root root 279 1月 12 17:37 kiali-gateway.yaml
-rw-r--r-- 1 root root 331 1月 12 17:37 kiali-virtualservice.yaml
vim kiali-gateway.yaml
vim kiali-virtualservice.yaml
kubectl apply -f .
kubectl get gateway -n istio-system
kubectl get virtualservices -n istio-system

浏览器访问 ​​kiali.yht.com​

部署bookinfo业务测试访问

cd /usr/local/istio/samples
kubectl apply -f bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f sleep/sleep.yaml
istioctl ps
# 终端模拟访问
kubectl exec -it sleep-69cfb4968f-5d99h -- /bin/sh
curl productpage:9080
# 配置公网访问
kubectl apply -f bookinfo/networking/bookinfo-gateway.yaml
浏览器访问
10.0.7.21/productpage

测试访问1

官网

​https://istio.io/latest/docs/examples/bookinfo/​

1、先执行默认规配置
​​​https://istio.io/latest/docs/examples/bookinfo/#define-the-service-versions​

cd /usr/local/istio
kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml

2、所有流量到达v1
​​​https://istio.io/latest/docs/tasks/traffic-management/request-routing/​

kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml

3、测试访问

while true;do elinks --dump http://10.0.7.21/productpage; sleep 0.$RANDOM;done

登陆​​kiali.yht.com​​。点击graph查看图形走势

原来没有配置所有流量都到达v1之前的图形

1、istio初窥门径

配置了所有流量到达v1之后的图形

1、istio初窥门径

测试访问2

cd /usr/local/istio
kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml

​http://10.0.7.21/productpage​​访问使用jason登陆了后流量到都达v2

web界面登陆。不需要输入用户登陆访问。

再次登陆​kiali.yht.com​​。点击graph查看图形走势

1、istio初窥门径