istio 1.1.7 安装

控制层面组件

  • Pilot:注册中心,配置中心;负责将调度的配置下发到各svc endpoint后pod中注入的Envoys

  • Mixer:负责流量策略等统一调度,指标收集,对接外部组件(Prometheus,Fluentd,Jaeger)

  • Envroys:将envroys proxy容器,以sidecar的方式注入到svc后端的pod中,与控制层面组件交互。(可以理解为pod网关)动态服务获取,负载平衡,路由,断路器,超时,指标上报。

  • Citadel:安全中心

下载
https://github.com/istio/istio/releases/download/1.1.7/istio-1.1.7-linux.tar.gz
k8s上面安装
## 下载istio安装包
 wget https://github.com/istio/istio/releases/download/1.1.7/istio-1.1.7-linux.tar.gz
 tar xf istio-1.1.7-linux.tar.gz
 cd istio-1.1.7/
 cp bin/istioctl /usr/local/bin/

## 为 Istio 组件创建命名空间 istio-system:
 kubectl create namespace istio-system

## 使用 kubectl apply 安装所有的 Istio CRD,命令执行之后,会隔一段时间才能被 Kubernetes API Server 收到
 helm template install/kubernetes/helm/istio-init --name istio-init --namespace istio-system | kubectl apply -f -

## 如下命令以确保全部 53 个 Istio CRD 被提交到 Kubernetes api-server:
如果你启用了 cert-manager,那么 CRD 的数目为58个。
 kubectl get crds | grep 'istio.io\|certmanager.k8s.io' | wc -l
 
## 部署与你选择的配置文件相对应的 Istio 的核心组件,我们建议在生成环境部署中使用 default 配置文件

helm template install/kubernetes/helm/istio \
   --name istio --namespace istio-system \
   --set gateways.enabled=true \
   --set ingress.service.type=NodePort \
   --set gateways.istio-ingressgateway.enabled=true \
   --set gateways.istio-ingressgateway.type=NodePort \
   --set gateways.istio-egressgateway.enabled=true \
   --set gateways.istio-egressgateway.type=NodePort \
   --set prometheus.service.nodePort.enabled=true \
   --set grafana.enabled=true \
   --set grafana.service.type=NodePort \
   --set kiali.enabled=true \
   --set "kiali.dashboard.jaegerURL=http://$(kubectl get svc tracing --namespace istio-system -o jsonpath='{.spec.clusterIP}'):80" \
   --set "kiali.dashboard.grafanaURL=http://$(kubectl get svc grafana --namespace istio-system -o jsonpath='{.spec.clusterIP}'):3000" \
   --set tracing.enabled=true \
   --set servicegraph.enabled=true| kubectl apply -f -

获取网格的状态
你可以通过 proxy-status 命令获取网格的状态:

istioctl proxy-status

### 参数解析
SYNCED 表示 Envoy 已经确认了 Pilot 上次发送给它的配置。
SYNCED (100%) 表示 Envoy 已经成功同步了集群中的所有端点。
NOT SENT 表示 Pilot 没有发送任何信息给 Envoy。这通常是因为 Pilot 没有任何数据可以发送。
STALE 表示 Pilot 已向 Envoy 发送更新但尚未收到确认。这通常表明 Envoy 和 Pilot 之间的网络存在问题或 Istio 本身的错误。

你可能感兴趣的:(微服务)