Istio1.1.8部署
整体步骤:
-
完成必要的 Kubernetes 平台设置
-
检查对 Pod 和服务的要求。
安装之前的下载和准备
Istio 会被安装到自己的 istio-system
命名空间,并且能够对所有其他命名空间的服务进行管理。
1. 进入 Istio release 页面,下载对应目标操作系统的安装文件。在 macOS 或者 Linux 系统中,还可以运行下面的命令,进行下载和自动解压缩:
1 | $ curl -L https: //git.io/getLatestIstio | ISTIO_VERSION=1.1.8 sh - |
进入 Istio 包目录。例如,假设这个包是 istio-1.1.8
:
1 | $ cd istio-1.1.8 |
安装目录中包含:
-
在
install/
目录中包含了 Kubernetes 安装所需的.yaml
文件 -
samples/
目录中是示例应用 -
istioctl
客户端文件保存在bin/
目录之中。istioctl
的功能是手工进行 Envoy Sidecar 的注入。 -
istio.VERSION
配置文件
把 istioctl
客户端加入 环境变量,如果是 macOS 或者 Linux,可以这样实现:
1 2 3 4 5 | $ cp -ar bin/istioctl /usr/local/bin/ $ source /etc/profile $ istioctl version version.BuildInfo{Version: "1.1.8" , GitRevision: "145b18a441045d6fad33d7916380d8642c7bf21d" , User: "root" , Host: "11387264-87af-11e9-b00d-0a580a2c0205" , GolangVersion: "go1.10.4" , DockerHub: "docker.io/istio" , Build Status: "Clean" , GitTag: "1.1.7-14-g145b18a" } |
Helm Chart Release 仓库
要使用 Istio Release Helm Chart 仓库,请通过以下方式添加 Istio Release 仓库:
1 | $ helm repo add istio.io https: //storage.googleapis.com/istio-release/releases/1.1.8/charts/ |
方案 :在 Helm 和 Tiller 的环境中使用 helm install
命令进行安装
这个方案使用 Helm 和 Tiller 来对 Istio 的生命周期进行管理。
1. 如果没有为 Tiller 创建 Service account,就创建一个:
1 | $ kubectl apply -f install/kubernetes/helm/helm-service-account.yaml |
使用 Service account 在集群上安装 Tiller:
1 | $ helm init --service-account tiller |
安装 istio-init
chart,来启动 Istio CRD 的安装过程:
1 | $ helm install install/kubernetes/helm/istio-init --name istio-init -- namespace istio-system |
使用如下命令以确保全部 53 个 Istio CRD 被提交到 Kubernetes api-server:
如果你启用了 cert-manager,那么 CRD 的数目为58个。
1 2 | $ kubectl get crds | grep 'istio.io\|certmanager.k8s.io' | wc -l 53 |
选择一个 配置文件,接着部署与你选择的配置文件相对应的 Istio 的核心组件,我们建议在生成环境部署中使用 default 配置文件:
1 2 | helm install install/kubernetes/helm/istio --name istio -- namespace istio-system \ --values install/kubernetes/helm/istio/values-istio-demo.yaml |
你可以添加一个或多个 --set <key>=<value>
来进一步自定义 helm 命令的 安装选项 。
生产上的一个自定义values
确认安装情况
-
查询配置文件中的组件表, 验证 Helm 是否已经部署了与所选配置文件相对应的 Kubernetes services 服务:
1 | $ kubectl get svc -n istio-system |
确保部署了相应的 Kubernetes pod 并且 STATUS
是 Running
的:
1 | $ kubectl get pods -n istio-system |
卸载
-
如果你使用
helm template
命令安装的 Istio,使用如下命令卸载 :
1 2 3 | $ helm template install/kubernetes/helm/istio --name istio -- namespace istio-system \ --values install/kubernetes/helm/istio/values-istio-demo.yaml | kubectl delete -f - $ kubectl delete namespace istio-system |
-
如果你使用的Helm 和 Tiller 安装的 Istio,使用如下命令卸载:
1 2 | $ helm delete --purge istio $ helm delete --purge istio-init |
删除 CRD 和 Istio 配置
Istio 的设计中,其自定义资源以 CRD 的形式存在于 Kubernetes 环境之中。CRD 中包含了运维过程中产生的运行时配置。正因如此,我们建议运维人员应该显式的对其进行删除,从而避免意外操作。
CRD 的删除,意味着删掉所有的用户配置。
istio-init
Chart 包含了 istio-init/files
目录中的所有原始 CRD。下载该 Chart 之后,可以简单的使用 kubectl
删除 CRD。要永久删除 Istio 的 CRD 以及所有 Istio 配置,请运行如下命令:
1 | $ kubectl delete -f install/kubernetes/helm/istio-init/files |
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2018-06-19 Zabbix系列之五——监控TCP端口