tnblog
首页
视频
资源
登录

Istio 安装与入门

5930人阅读 2022/1/3 15:43 总访问:3475924 评论:0 收藏:1 手机
分类: 容器编排

Istio 安装


Istio是做什么的我在使用完Istio之后将会进行详细写,可先参考官网:https://istio.io/latest/zh/docs/concepts/what-is-istio/

前提


准备好kubernetes环境。

安装


我们可以通过官网的命令进行安装。也可以到Istio发布页面进行下载。

  1. curl -L https://istio.io/downloadIstio | sh -
  2. # 或
  3. wget -O istio-1.12.1 https://github.com/istio/istio/releases/download/1.12.1/istio-1.12.1-linux-amd64.tar.gz


开始转到 Istio 包目录进行安装。

  1. cd istio-1.12.1


安装目录包含:
samples/ 目录下的示例应用程序
bin/ 目录下的 istioctl 客户端二进制文件
将 istioctl 客户端加入搜索路径(Linux or macOS)

  1. export PATH=$PWD/bin:$PATH


对于本次安装,我们采用 demo 配置组合。 选择它是因为它包含了一组专为测试准备的功能集合,另外还有用于生产或性能测试的配置组合。

  1. istioctl install --set profile=demo -y


给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理:

  1. kubectl label namespace default istio-injection=enabled

如果你的平台有供应商提供的配置组合,比如:Openshift,则在下面命令中替换掉 demo 配置项。更多细节请参阅你的平台说明

部署示例应用


部署 Bookinfo 示例应用:

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


应用很快会启动起来。当每个 Pod 准备就绪时,Istio 边车代理将伴随它们一起部署。

  1. kubectl get services
  2. kubectl get pods


测试是否启动成功。通过如下命令可以获取应用title信息。

  1. kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -s productpage:9080/productpage | grep -o "<title>.*</title>"
  2. <title>Simple Bookstore App</title>

对外开放应用程序


此时,BookInfo 应用已经部署,但还不能被外界访问。 要开放访问,你需要创建 Istio 入站网关(Ingress Gateway), 它会在网格边缘把一个路径映射到路由。



1.把应用关联到 Istio 网关

  1. kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml


2.确保配置文件没有问题:

  1. istioctl analyze

确定入站 IP 和端口


按照说明,为访问网关设置两个变量:INGRESS_HOSTINGRESS_PORT

  1. kubectl get svc istio-ingressgateway -n istio-system
  1. export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
  3. export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')


设置环境变量 GATEWAY_URL:

  1. export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT


确保 IP 地址和端口均成功的赋值给了环境变量:

  1. echo "$GATEWAY_URL"

验证外部访问


运行下面命令,获取 Bookinfo 应用的外部访问地址。

  1. echo "http://$GATEWAY_URL/productpage"

查看仪表板


Istio 和几个遥测应用做了集成。 遥测能帮你了解服务网格的结构、展示网络的拓扑结构、分析网格的健康状态。
使用下面说明部署 Kiali 仪表板、 以及 Prometheus、 Grafana、 还有 Jaeger
安装 Kiali 和其他插件,等待部署完成。

  1. kubectl apply -f samples/addons
  2. kubectl rollout status deployment/kiali -n istio-system


访问 Kiali 仪表板。

  1. istioctl dashboard kiali --address 0.0.0.0


在左侧的导航菜单,选择 Graph ,然后在 Namespace 下拉列表中,选择 default 。
Kiali 仪表板展示了网格的概览、以及 Bookinfo 示例应用的各个服务之间的关系。 它还提供过滤器来可视化流量的流动。

更多安装


https://istio.io/latest/zh/docs/setup/platform-setup/


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价
这一世以无限游戏为使命!
排名
2
文章
636
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术