安装istio和部署bookinfo项目

一 istio安装

1.1 下载安装

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

image
image

1.2 查看pod和svc

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
image

1.3 设置loadbalancer的地址

这个地址一般是vip地址,

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

然后再次查看svc
image

二 部署istio里各个插件

各插件主要包括 grafana jaeger kiali prometheus,

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

然后查看各个pod
image

三 部署bookinfo项目进行测试

3.1 给指定命名空间打标签

凡是在这个命名空间内的Pod都会自动注入sidercar

kubectl label namespace default istio-injection=enabled

3.2 部署bookinfo

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

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

效果如下图所示:
image

image

访问url ip/productpage
image

3.3 验证流量治理

首先 执行,详情见https://istio.io/latest/docs/examples/bookinfo/#apply-default-destination-rules

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

3.3.1 测试v1版本流量

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

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

3.3.3 测试v3版本流量

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

image

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

四 映射kiali,浏览器访问

https://github.com/iKubernetes/istio-in-practise.git
克隆代码到本地服务器

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

image

posted @   huningfei  阅读(419)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
levels of contents
点击右上角即可分享
微信分享提示