istio安装

一 istio安装

Istio / Getting Started

一  istio安装
https://istio.io/latest/docs/setup/getting-started/
# 下载
cd /usr/local/
curl -L https://istio.io/downloadIstio | sh -


curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.14.1 TARGET_ARCH=x86_64 sh -
cd istio-1.14.1
export PATH=$PWD/bin:$PATH
   ln -sv istio-1.14.1 istio 
    ln -sv /usr/local/istio/bin/istioctl /usr/local/bin/istioctl 
# 安装
istioctl profile list 
        default: 生产可用
        demo:测试环境使用

istioctl install --set profile=demo -y







istio安装_第1张图片

安装成功如下所示

istio安装_第2张图片

然后查看istio Pod

root@k8s-master01:/usr/local# kubectl get pod -n istio-system
NAME                                    READY   STATUS    RESTARTS   AGE
istio-egressgateway-7fcb98978c-b885f    1/1     Running   0          11m
istio-ingressgateway-55b6cffcbc-6knqm   1/1     Running   0          11m
istiod-56d9c5557-stvdz                  1/1     Running   0          16m

查看istio的svc

编辑istio-ingressgateway

可以通过浏览器直接访问

kubectl edit svc istio-ingressgateway -n istio-system
externalIPs:
- 172.31.7.100

然后再次查看svc

istio安装_第3张图片

给指定命名空间打标签,凡是在这个命名空间内的Pod都会自动注入sidercar

kubectl label namespace default istio-injection=enabled

二 部署各插件

各插件主要包括 grafana jaeger kiali prometheus,其中kiali无法下载

docker pull quay.io/kiali/kiali:v1.50
ctr images pull quay.io/kiali/kiali:v1.50

下载完镜像后,部署各个插件,如下所示

cd /usr/local/istio/ kubectl apply -f samples/addons/

三 bookinfo项目部署

注意这里面有部分镜像也无法下载

3.1 部署

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml #网络

istio安装_第4张图片

istio安装_第5张图片

访问url ip/productpage

http://192.168.24.236/productpage

istio安装_第6张图片

默认一直刷新访问,会在三个版本直接不停的切换

登录用户名 jason 无密码

kubectl api-resources --api-group=networking.istio.io #查看资源

3.2 部署并测试bookinfo在istio之上的请求路由功能

Istio / Request Routing

测试流量治理

首先 执行

Istio / Bookinfo Application

#必须先执行这个 kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml

然后执行,把所有流量请求到了v1

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

无论浏览器怎么刷新,都是请求到v1

istio安装_第7张图片

kubectl apply -f virtual-service-reviews-v3.yaml #只访问v3版本

istio安装_第8张图片

执行多个规则,会覆盖前面的规则。

三 映射kiali,浏览器访问

GitHub - iKubernetes/istio-in-practise

https://github.com/iKubernetes/istio-in-practise/tree/main/Traffic-Management-Basics/kiali-port-80

克隆上面的代码到本地仓库

映射kiali到外网:

cd /root/istio-in-practise/Traffic-Management-Basics kubectl apply -f kiali-port-80/

查看networking和virtualservices,然后在hosts文件里增加 kiali.magedu.com 这个域名解析即可访问

root@k8s-master1:~/istio-in-practise/Traffic-Management-Basics# kubectl get gateways.networking -n istio-system 
NAME            AGE
kiali-gateway   109s
root@k8s-master1:~/istio-in-practise/Traffic-Management-Basics# kubectl get virtualservices -n istio-system 
NAME                   GATEWAYS            HOSTS                  AGE
kiali-virtualservice   ["kiali-gateway"]   ["kiali.magedu.com"]   2m5s

istio安装_第9张图片

你可能感兴趣的:(云原生,docker,kubernetes,容器)