Istio部署 (更多内容请看汉克书)
使用的是istioctl
命令进行部署 Istio
, 官方暂没推荐使用helm部署了
搭建平台
在安装Istio之前,您需要一个运行兼容版本的Kubernetes 的集群。Istio 1.4已通过Kubernetes 1.13、1.14、1.15版进行了测试。
通过选择适当的特定于平台的设置说明来创建集群。
此次部署,使用虚拟机集群部署测试
下载版本
下载Istio发行版,其中包括安装文件,示例和 istioctl命令行实用程序。
- 进入Istio发布页面,下载与您的操作系统相对应的安装文件。或者,在macOS或Linux系统上,您可以运行以下命令来自动下载并解压缩最新版本:
curl -L https://istio.io/downloadIstio | sh -
- 移至Istio软件包目录。例如,如果软件包为 istio-1.4.3:
cd istio-1.4.3
装目录包含:
- Kubernetes的安装YAML文件在 install/kubernetes中的示例应用程序
- samples/目录中的客户端二进制文件。
- 手动注入Envoy作为Sidecar代理时使用。istioctl/bin/istioctl
- istioctl在macOS或Linux系统上,将客户端添加到您的路径中:
export PATH=$PWD/bin:$PATH
安装Istio
这些说明假定您是Istio的新手,它提供了简化的说明来安装Istio的内置demo 配置文件。通过此安装,您可以快速开始评估Istio。如果您已经熟悉Istio或对安装其他配置配置文件或更高级的部署模型感兴趣,请按照istioctl的说明进行安装。
演示配置概要文件不适用于性能评估。它旨在通过高级别的跟踪和访问日志来展示Istio功能。
- 安装demo配置文件
istioctl manifest apply --set profile=demo
- 通过确保已部署以下Kubernetes服务来验证安装,并确认CLUSTER-IP除了jaeger-agent服务之外,它们均具有合适的服务:
kubectl get svc -n istio-system
如果您的群集在不支持外部负载均衡器(例如minikube)的环境中运行,则 EXTERNAL-IPof istio-ingressgateway将显示
此外,还要确保相应Kubernetes pod 部署,并有一个STATUS的Running:
kubectl get pods -n istio-system
接下来
安装Istio后,您现在可以部署自己的应用程序或安装随附的示例应用程序之一。
该应用程序必须对所有HTTP通信使用HTTP / 1.1或HTTP / 2.0协议。不支持HTTP / 1.0。
如果使用部署应用程序kubectl apply,则Istio边车注入器 会自动将Envoy容器注入到您的应用程序容器中,如果它们是在标有的名称空间中启动的istio-injection=enabled:
kubectl label namespace <namespace> istio-injection=enabled
kubectl create -n <namespace> -f <your-app-spec>.yaml
在没有istio-injection标签的名称空间中,您可以 istioctl kube-inject 在部署它们之前在应用程序pod中手动注入Envoy容器:
istioctl kube-inject -f <your-app-spec>.yaml | kubectl apply -f -
卸载
卸载会删除RBAC权限,istio-system名称空间以及它下面的层次结构中的所有资源。可以忽略不存在的资源的错误,因为它们可能已被分层删除。
istioctl manifest generate --set profile=demo | kubectl delete -f -
参考文档:
https://istio.io/docs/setup/getting-started/
https://github.com/istio/installer