扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这期内容当中小编将会给大家带来有关Rancher 2.3 中如何启用Istio,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
成都创新互联公司专注于久治网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供久治营销型网站建设,久治网站制作、久治网页设计、久治网站官网定制、小程序开发服务,打造久治网络公司原创品牌,更为您提供久治网站排名全网营销落地服务。
启动集群之后,在集群创建过程中从marketplace选择Rancher进行安装。Civo将会启动Rancher server并导入集群。
集群准备就绪后,你将能看到Rancher 2.3的dashboard,它能够支持Istio和Kiali。让我们来探索一下这个dashboard吧!
集群创建之后,你可以下载kubeconfig,并连接集群。然后查看Rancher server以及cattle-agents是否起来并且运行。
kubectl get nodes NAME STATUS ROLES AGE VERSION kube-node-79ed Ready worker 96m v1.15.4-k3s.1 kube-master-bca5 Ready master 96m v1.15.4-k3s.1 kubectlg get pods -n cattle-system NAME READY STATUS RESTARTS AGE cattle-5669c57dcf-tw65t 1/1 Running 0 3h37m cattle-node-agent-8lppr 1/1 Running 0 3h37m cattle-node-agent-g5f6f 1/1 Running 0 3h37m cattle-cluster-agent-587b6d44cf-ppnjd 1/1 Running 0 3h37m
为了访问Rancher UI,创建一个ingress,rancher-ingress.yaml如下:
>> kubectl apply -f rancher-ingress.yaml ingress.extensions/cattle-ingress created kubectl get ingress -n cattle-system NAME HOSTS ADDRESS PORTS AGE cattle-ingress * 172.31.0.189 80 32s
现在如果你访问任何节点ip,你都将看到Rancher server正在运行。
创建一个密码,保存URL。随后你应该能够看到导入的集群。
文档中是这样描述Istio的:
使用云平台的企业或组织可以从其中体会到很多益处。但是不可否认的是,采用云技术会对DevOps团队造成压力。开发人员必须使用微服务来构建可移植性,同时,运维人员管理超大型混合云和多云部署。而服务网格使得微服务更加易用,其中Istio可以帮助你连接、保护、控制和观察服务。
在很大程度上,Istio有助于降低部署的复杂性,并减轻开发团队的负担。它是一个完全开源的服务网格,可以在现有的分布式应用程序上透明地注入一层。同时,它也是一个平台,包括可将其集成到任何日志记录平台、遥测或策略系统中的各种API。Istio的多样功能可以让你能够成功、高效地运行分布式微服务架构,并提供统一地方式来保护、连接和监控微服务。
那么,现在我们开始通过Rancher UI中启用Istio,并部署吧。
要启用Istio,你需要访问UI上方的菜单栏,其路径是:工具> Istio。你可以更改许多配置选项。而现在,我想让所有配置都保持默认状态并将ingress网关设置为True。启用这一功能还将启用监控功能,这是Istio正常运行的先决条件。
启用之后,你将可以看到监控和Istio pod在命名空间cattle-prometheus
(用于监控)和istio-system
(用于istio)下出现。
>> kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-citadel-6bb9c9f6fb-md9f8 1/1 Running 0 6m16s istio-tracing-64d646945-xm4sm 2/2 Running 0 6m15s istio-policy-68959c7999-5kmdb 2/2 Running 1 6m16s istio-galley-67848cd58-g5tbt 1/1 Running 0 6m16s kiali-5f8f876bd5-6djxf 2/2 Running 0 6m16s istio-telemetry-778bfdcf74-ps9vl 2/2 Running 1 6m16s istio-pilot-7546b9fdcc-rbxj8 2/2 Running 0 6m16s istio-ingressgateway-6f877dd689-rskn4 1/1 Running 0 6m16s istio-sidecar-injector-69c97ddbb5-x7jcv 1/1 Running 0 6m16s >> kubectl get pods -n cattle-prometheus NAME READY STATUS RESTARTS AGE prometheus-operator-monitoring-operator-79484b9c6f-zshlq 1/1 Running 0 7m42s exporter-node-cluster-monitoring-wnxtc 1/1 Running 0 7m39s exporter-node-cluster-monitoring-k68fb 1/1 Running 0 7m39s grafana-cluster-monitoring-5d676d89c5-vkbzm 2/2 Running 0 7m39s prometheus-cluster-monitoring-0 5/5 Running 1 7m15s exporter-kube-state-cluster-monitoring-5dfd658dc-pn8mt 1/1 Running 0 7m39s
现在,我们来进行Istio部署示例,生成流量并在Kiali dashboard中查看它。
我们将为示例应用程序创建deployment、Gateway以及虚拟服务,如下所示:
kubectl label namespace default istio-injection=enabled namespace/default labeled kubectl apply -f service/details created serviceaccount/bookinfo-details created deployment.apps/details-v1 created service/ratings created serviceaccount/bookinfo-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/bookinfo-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/bookinfo-productpage created deployment.apps/productpage-v1 created kubectl apply -f gateway.networking.istio.io/bookinfo-gateway created kubectl apply -f virtualservice.networking.istio.io/bookinfo created
生成流量:
现在,应用程序已经部署,你可以通过Istio gateway查看它。
>> kubectl get pods NAME READY STATUS RESTARTS AGE details-v1-74f858558f-m5tsx 2/2 Running 0 10m ratings-v1-7855f5bcb9-lkhgg 2/2 Running 0 10m productpage-v1-8554d58bff-llnqh 2/2 Running 0 10m| reviews-v2-d6cfdb7d6-rl4zk 2/2 Running 0 10m reviews-v3-75699b5cfb-crdrd 2/2 Running 0 10m reviews-v1-59fd8b965b-rmct2 2/2 Running 0 10m >> kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 192.168.128.1443/TCP 140m details ClusterIP 192.168.154.118 9080/TCP 10m ratings ClusterIP 192.168.207.69 9080/TCP 10m reviews ClusterIP 192.168.141.42 9080/TCP 10m productpage ClusterIP 192.168.128.87 9080/TCP 10m
点击Test用户和普通用户,来生成一些流量。
从UI上方的菜单栏中【资源】项,选择Istio。你可以看到以下图表:
点击屏幕上的Kiali图标。
Kiali
Kiali是Istio的可视化控制台,它具有服务网格配置功能。它通过推断拓扑来帮助理解你的服务网格架构并提供你的网格的健康状态。此外,Kiali还提供了详细的指标,并且其集成了基本的Grafana,因此可用于高级查询。还集成了Jaeger,可提供分布式追踪。
您可以查看已部署应用程序的完整拓扑以及流程。
下面是已经部署的应用程序的图表:
以下是其他图表:
服务图表
版本化应用程序图
工作负载图
Jaeger
受Dapper和OpenZipkin的启发,Jaeger被设计为一个开源分布式跟踪系统,由Uber Technologies发布。它用于监控、诊断基于微服务的分布式系统,包括:
分布式上下文传播(Distributed Context Propagation)
分布式事务监控
根源分析(Root cause analysis)
服务依赖分析
性能/延迟优化
Jaeger UI
上述就是小编为大家分享的Rancher 2.3 中如何启用Istio了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流