istio学习笔记5:环境搭建和安装

所有步骤都是从官网例子整理出来的:
https://istio.io/latest/zh/docs/tasks/observability/logs/access-log/

安装istio

先下载istio
在这里插入图片描述
然后转到 Istio 包目录
在这里插入图片描述
在这里插入图片描述
将 istioctl 客户端加入搜索路径
在这里插入图片描述
使用istioctl进行安装(这里采用的是 demo 配置组合)

$ istioctl install --set profile=demo –y

在这里插入图片描述
给命名空间添加标签

$ kubectl label namespace default istio-injection=enabled

在这里插入图片描述

部署示例应用

部署官网bookinfo的例子

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

yml文件
https://raw.githubusercontent.com/istio/istio/release-1.12/samples/bookinfo/platform/kube/bookinfo.yaml

查看pod和service,都有了
在这里插入图片描述

检查并返回页面标题

$ 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>

这里bash脚本比较长,拆分来看:

$ 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>”(bash)

执行结果如下
在这里插入图片描述

该脚本用于验证应用是否已在集群中运行,并已提供网页服务

对外开放应用程序

创建 Istio 入站网关(Ingress Gateway), 它会在网格边缘把一个路径映射到路由
1.把应用关联到 Istio 网关:

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

yml文件:
https://raw.githubusercontent.com/istio/istio/release-1.12/samples/bookinfo/networking/bookinfo-gateway.yaml

在这里插入图片描述
2.确保配置文件没有问题:

$ istioctl analyze

在这里插入图片描述

确定入站 IP 和端口

判断你的 Kubernetes 集群环境是否支持外部负载均衡:

$ kubectl get svc istio-ingressgateway -n istio-system

在这里插入图片描述
如果 EXTERNAL-IP 的值为 (或者一直是 状态), 则你的环境则没有提供可作为入站流量网关的外部负载均衡。 在这个情况下,你还可以用服务(Service)的 节点端口( NodePort) 访问网关。

设置入站 IP 地址和端口

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

有些环境需要使用主机名访问

$ export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')

然后是其他平台的环境配置:
在这里插入图片描述

验证外部访问

1.设置环境变量 GATEWAY_URL:

$ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

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

$ echo "$GATEWAY_URL" 

192.168.99.100:32194(这是例子返回的url,具体看本机)
3.获取该应用

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

查看Kiali仪表板

Istio和几个遥测应用做了集成。 遥测能帮你了解服务网格的结构、展示网络的拓扑结构、分析网格的健康状态。
仪表板包括Kiali 、 Prometheus、 Grafana、 还有 Jaeger,例子里使用Kiali

1.安装 Kiali 和其他插件,等待部署完成。

$ kubectl apply -f samples/addons 
$ kubectl rollout status deployment/kiali -n istio-system

2.访问 Kiali 仪表板。

$ istioctl dashboard kiali

在这里插入图片描述

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值