二、部署istio官方demo

著名的bookinfo例子

一、部署步骤

教程里已经浓缩成2名命令了

# Enable sidecar auto injection
kubectl label namespace default istio-injection=enabled
# Deploy bookinfo sample
kubectl -n default apply -f sample/bookinfo

二、istio注入k8s的两种方式

本次是采用的是k8s自动注入的方式,即如下的第1种方式

用户空间的 Pod 要想加入 mesh, 首先需要注入 sidecar 容器, istio 提供了 2 种方式实现注入:

  • 自动注入: 利用 Kubernetes Dynamic Admission Webhooks 对 新建的 pod 进行注入: initContainer + sidecar
  • 手动注入: 使用命令istioctl kube-inject

「注入」本质上就是修改 Pod 的资源定义, 添加相应的 sidecar 容器定义, 内容包括 2 个新容器:

  • 名为istio-init的 initContainer: 通过配置 iptables 来劫持 Pod 中的流量
  • 名为istio-proxy的 sidecar 容器: 两个进程 pilot-agent 和 envoy, pilot-agent 进行初始化并启动 envoy

下面的文章会讲有

三、bookinfo文件夹

sample/bookinfo下面有3个yaml文件

  • bookinfo.yaml: 定义部署了productpage、3个版本的reviews、ratings、details这几个k8s的
    service/deployment
  • bookinfo-gateway.yaml: 定义istio的拦截规则?
  • destination-rule-all.yaml: 定义微服务间的访问router规则?

你可能感兴趣的:(二、部署istio官方demo)