官网
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
部署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之前的图形
配置了所有流量到达v1之后的图形
测试访问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查看图形走势