安装Istio

半兽人 发表于: 2019-11-21   最后更新时间: 2019-11-21  

这些文章假定您是Istio的新手,它提供了简化的说明来安装Istio的内置demo配置文件。通过此安装,您可以快速开始评估Istio。如果您已经熟悉Istio或对安装其他配置配置文件或更高级的部署模型感兴趣,请按照istioctl的说明进行安装。

demo配置概要文件不适用于性能评估。它旨在通过高级别的跟踪和访问日志来展示Istio功能。

安装Demo配置文件

$ istioctl manifest apply --set profile=demo

通过确保已部署以下Kubernetes服务来验证安装,并确认它们都分配相应的CLUSTER-IP(除了jaeger-agent服务之外):

$ kubectl get svc -n istio-system
NAME                     TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                                                                                                      AGE
grafana                  ClusterIP      172.21.211.123   <none>          3000/TCP                                                                                                                                     2m
istio-citadel            ClusterIP      172.21.177.222   <none>          8060/TCP,15014/TCP                                                                                                                           2m
istio-egressgateway      ClusterIP      172.21.113.24    <none>          80/TCP,443/TCP,15443/TCP                                                                                                                     2m
istio-galley             ClusterIP      172.21.132.247   <none>          443/TCP,15014/TCP,9901/TCP                                                                                                                   2m
istio-ingressgateway     LoadBalancer   172.21.144.254   52.116.22.242   15020:31831/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:30318/TCP,15030:32645/TCP,15031:31933/TCP,15032:31188/TCP,15443:30838/TCP   2m
istio-pilot              ClusterIP      172.21.105.205   <none>          15010/TCP,15011/TCP,8080/TCP,15014/TCP                                                                                                       2m
istio-policy             ClusterIP      172.21.14.236    <none>          9091/TCP,15004/TCP,15014/TCP                                                                                                                 2m
istio-sidecar-injector   ClusterIP      172.21.155.47    <none>          443/TCP,15014/TCP                                                                                                                            2m
istio-telemetry          ClusterIP      172.21.196.79    <none>          9091/TCP,15004/TCP,15014/TCP,42422/TCP                                                                                                       2m
jaeger-agent             ClusterIP      None             <none>          5775/UDP,6831/UDP,6832/UDP                                                                                                                   2m
jaeger-collector         ClusterIP      172.21.135.51    <none>          14267/TCP,14268/TCP                                                                                                                          2m
jaeger-query             ClusterIP      172.21.26.187    <none>          16686/TCP                                                                                                                                    2m
kiali                    ClusterIP      172.21.155.201   <none>          20001/TCP                                                                                                                                    2m
prometheus               ClusterIP      172.21.63.159    <none>          9090/TCP                                                                                                                                     2m
tracing                  ClusterIP      172.21.2.245     <none>          80/TCP                                                                                                                                       2m
zipkin                   ClusterIP      172.21.182.245   <none>          9411/TCP                                                                                                                                     2m

如果您的集群在不支持外部负载均衡器(例如minikube)的环境中运行,则 istio-ingressgateway 的 EXTERNAL-IP 将显示<pending>。 要访问网关,请使用服务的NodePort或使用端口转发。

还要确保已部署相应的Kubernetes Pod的运行状态:

$ kubectl get pods -n istio-system
NAME                                                           READY   STATUS      RESTARTS   AGE
grafana-f8467cc6-rbjlg                                         1/1     Running     0          1m
istio-citadel-78df5b548f-g5cpw                                 1/1     Running     0          1m
istio-egressgateway-78569df5c4-zwtb5                           1/1     Running     0          1m
istio-galley-74d5f764fc-q7nrk                                  1/1     Running     0          1m
istio-ingressgateway-7ddcfd665c-dmtqz                          1/1     Running     0          1m
istio-pilot-f479bbf5c-qwr28                                    1/1     Running     0          1m
istio-policy-6fccc5c868-xhblv                                  1/1     Running     2          1m
istio-sidecar-injector-78499d85b8-x44m6                        1/1     Running     0          1m
istio-telemetry-78b96c6cb6-ldm9q                               1/1     Running     2          1m
istio-tracing-69b5f778b7-s2zvw                                 1/1     Running     0          1m
kiali-99f7467dc-6rvwp                                          1/1     Running     0          1m
prometheus-67cdb66cbb-9w2hm                                    1/1     Running     0          1m

下一步

安装Istio后,现在你可以部署自己的应用程序或安装包自带的demo应用程序。

该应用程序必须对所有HTTP通信使用HTTP/1.1或HTTP/2.0协议。不支持HTTP/1.0。

当您使用kubectl apply部署应用程序时,如果在标有istio-injection=enabled的命名空间中启动Envoy容器,则Istio sidecar注入器将自动将Envoy容器注入到您的应用程序pod中:

$ kubectl label namespace <namespace> istio-injection=enabled
$ kubectl create -n <namespace> -f <your-app-spec>.yaml

在没有istio-injection标签的namespaces中,可以使用 istioctl kube-inject 在部署它们之前在应用程序pod中手动注入Envoy容器:

$ istioctl kube-inject -f <your-app-spec>.yaml | kubectl apply -f -

如果你不确定从哪里开始,请部署Bookinfo示例,该示例将使你能够评估Istio的功能,如流量路由,故障注入,速率限制等。探索各种你感兴趣Istio功能。

以下的步骤来是一个不错的起点:

  • 请求路由
  • 故障注入
  • 流量转移
  • 查询指标
  • 可视化指标
  • 收集日志
  • 限速
  • 入门网关(Ingress gateways)
  • 访问外部服务(Accessing external services)
  • 可视化网格

下一步是自定义Istio并部署您自己的应用程序。在安装和自定义Istio以使其适合您的平台和预期用途之前,请检查以下资源:

  • Deployment models
  • Deployment best practices
  • Pod requirements
  • General installation instructions


您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: istio下载
下一条: 卸载Istio