istio 1.1.7 Installation

Control plane components

  • Pilot: registration center, distribution center; responsible for the svc endpoint pod injected scheduling configuration onward transport of the Envoys

  • Mixer: responsible for traffic scheduling unified strategy, metrics collection, docking external components (Prometheus, Fluentd, Jaeger)

  • Envroys: The envroys proxy container in sidecar manner svc injected into the rear end of the pod, the components interact with the control plane. (Pod can be understood as a gateway) Dynamic Services acquisition, load balancing, routing, circuit breakers, time-out, indicator reporting.

  • Citadel: Security Center

download
https://github.com/istio/istio/releases/download/1.1.7/istio-1.1.7-linux.tar.gz
k8s above installation
## 下载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 -

Acquiring state of the grid
you can get the grid status proxy-status command:

istioctl proxy-status

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

Guess you like

Origin blog.csdn.net/u011327801/article/details/91046866