天天看点

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 个红色星形图标来显示评分信息。
ServiceMesh(istio)系统实践

部署bookinfo-demo

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

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

测试bookinfo-demo部署成功

创建bookinfo-gateway

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

Istio对接skywalking可观测性

todo

使用Nacos作为注册中心

todo

跟进产品

https://www.tetrate.io/

继续阅读