ServiceMesh(istio)系统实践

Posted 帷幄庸者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ServiceMesh(istio)系统实践相关的知识,希望对你有一定的参考价值。

环境说明:本人在Mac Os系统i7、16G下,使用Docker for Mac安装kubernetes随后开展后续的实操。
Docker版本:20.10.2
k8s版本:1.19.3
Istio版本:1.8.1

Istio安装

安装istioctl

基于brew一键安装
istioctl是命令操作istio的工具

brew install istioctl

安装Istio-operator

istio-operator是用来安装部署,自动运维istio的工具

istioctl operator init

安装Istio-system

kubectl create ns istio-system
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: example-istiocontrolplane
spec:
  profile: demo
EOF

Istio可选组件控制
https://istio.io/latest/zh/docs/setup/additional-setup/config-profiles/

检查安装情况

kubectl get svc -n istio-system
kubectl get pods -n istio-system

Istio实践

自动注入

标记istio-injection=enabled后,namespace可以自动注入

kubectl label namespace default istio-injection=enabled

bookinfo架构

Bookinfo 应用分为四个单独的微服务:

  • productpage. 这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。
  • details. 这个微服务中包含了书籍的信息。
  • reviews. 这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。
  • ratings. 这个微服务中包含了由书籍评价组成的评级信息。

reviews 微服务有 3 个版本:

  • v1 版本不会调用 ratings 服务。
  • v2 版本会调用 ratings 服务,并使用 1 到 5 个黑色星形图标来显示评分信息。
  • v3 版本会调用 ratings 服务,并使用 1 到 5 个红色星形图标来显示评分信息。

部署bookinfo-demo

部署bookinfo-demo,在istio项目的samples目录下

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

测试bookinfo-demo部署成功

kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='.items[0].metadata.name')" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"

创建bookinfo-gateway

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

Istio对接skywalking可观测性

todo

使用Nacos作为注册中心

todo

跟进产品
https://www.tetrate.io/

以上是关于ServiceMesh(istio)系统实践的主要内容,如果未能解决你的问题,请参考以下文章

直播 | 基于Istio的灰度平台实践

Istio Mixer Cache工作原理与源码分析Part1-基本概念

ServiceMesh&Istio入门

腾讯云Service Mesh生产实践及架构演进

快手基于 Kubernetes 与 Istio 的容器云落地实践

万字长文:Service Mesh · Istio · 以实践入门