使用 Istioctl 安装
按照本指南安装和配置 Istio 网格以进行深入评估或生产使用。如果您是 Istio 新手,只想尝试一下,请按照 快速入门指南 操作。
本安装指南使用 istioctl 命令行工具,它提供了对 Istio 控制平面和 Istio 数据平面边车的丰富自定义功能。它具有用户输入验证功能,有助于防止安装错误,并提供自定义选项来覆盖配置的任何方面。
使用这些说明,您可以选择 Istio 内置的任何一个 配置配置文件,然后根据您的特定需求进一步自定义配置。
istioctl
命令通过命令行选项支持完整的 IstioOperator
API,用于单个设置或传递包含 IstioOperator
自定义资源 (CR) 的 yaml 文件。
先决条件
在开始之前,请检查以下先决条件
- 下载 Istio 版本.
- 执行任何必要的 平台特定设置。
- 检查 Pod 和服务的配置要求。
使用默认配置文件安装 Istio
最简单的选项是使用以下命令安装 default
Istio 配置配置文件
$ istioctl install
此命令在您的 Kubernetes 配置定义的集群上安装 default
配置文件。与用于评估广泛 Istio 功能的更大 demo
配置文件不同,default
配置文件是建立生产环境的良好起点。
可以配置各种设置来修改安装。例如,要启用访问日志,请执行以下操作:
$ istioctl install --set meshConfig.accessLogFile=/dev/stdout
从外部图表安装
默认情况下,istioctl
使用编译的图表生成安装清单。这些图表与 istioctl
一起发布,用于审计和自定义目的,可以在版本 tar 的 manifests
目录中找到。istioctl
还可以使用外部图表,而不是编译的图表。要选择外部图表,请将 manifests
标志设置为本地文件系统路径:
$ istioctl install --manifests=manifests/
如果使用 istioctl
1.24.0 二进制文件,此命令将导致与 istioctl install
相同的安装,因为它指向与编译的图表相同的图表。除了用于实验或测试新功能外,我们建议使用编译的图表而不是外部图表,以确保 istioctl
二进制文件与图表兼容。
安装不同的配置文件
可以通过在命令行上传递配置文件名称,将其他 Istio 配置文件安装到集群中。例如,可以使用以下命令安装 demo
配置文件:
$ istioctl install --set profile=demo
显示可用配置文件列表
您可以使用以下命令显示 istioctl
可以访问的 Istio 配置文件名称:
$ istioctl profile list
Istio configuration profiles:
default
demo
empty
minimal
openshift
preview
remote
显示配置文件的配置
您可以查看配置文件的配置设置。例如,要查看 demo
配置文件的设置,请运行以下命令:
$ istioctl profile dump demo
components:
egressGateways:
- enabled: true
k8s:
resources:
requests:
cpu: 10m
memory: 40Mi
name: istio-egressgateway
...
要查看整个配置的子集,可以使用 --config-path
标志,它只选择给定路径下的配置部分:
$ istioctl profile dump --config-path components.pilot demo
enabled: true
k8s:
env:
- name: PILOT_TRACE_SAMPLING
value: "100"
resources:
requests:
cpu: 10m
memory: 100Mi
显示配置文件差异
profile diff
子命令可用于显示配置文件之间的差异,这对于在将更改应用于集群之前检查自定义效果非常有用。
您可以使用以下命令显示默认配置文件和演示配置文件之间的差异:
$ istioctl profile diff default demo
gateways:
egressGateways:
- - enabled: false
+ - enabled: true
...
k8s:
requests:
- cpu: 100m
- memory: 128Mi
+ cpu: 10m
+ memory: 40Mi
strategy:
...
在安装之前生成清单
您可以使用 manifest generate
子命令在安装 Istio 之前生成清单。例如,使用以下命令为 default
配置文件生成清单:
$ istioctl manifest generate > $HOME/generated-manifest.yaml
生成的清单可用于检查究竟安装了什么,以及跟踪清单随时间的变化。虽然 IstioOperator
CR 代表完整的用户配置,足以跟踪它,但 manifest generate
的输出还捕获了底层图表中的可能变化,因此可用于跟踪实际安装的资源。
manifest generate
的输出还可用于使用 kubectl apply
或等效工具安装 Istio。但是,这些替代安装方法可能不会以与 istioctl install
相同的依赖顺序应用资源,并且未在 Istio 版本中进行测试。
显示清单差异
您可以使用以下命令显示默认配置文件和自定义安装之间生成的清单的 YAML 样式差异:
$ istioctl manifest generate > 1.yaml
$ istioctl manifest generate -f samples/operator/pilot-k8s.yaml > 2.yaml
$ istioctl manifest diff 1.yaml 2.yaml
Differences in manifests are:
Object Deployment:istio-system:istiod has diffs:
spec:
template:
spec:
containers:
'[#0]':
resources:
requests:
cpu: 500m -> 1000m
memory: 2048Mi -> 4096Mi
Object HorizontalPodAutoscaler:istio-system:istiod has diffs:
spec:
maxReplicas: 5 -> 10
minReplicas: 1 -> 2
验证安装成功
您可以使用 verify-install
命令检查 Istio 安装是否成功,该命令将集群上的安装与您指定的清单进行比较。
如果您在部署之前没有生成清单,请运行以下命令立即生成它:
$ istioctl manifest generate <your original installation options> > $HOME/generated-manifest.yaml
然后运行以下 verify-install
命令以查看安装是否成功:
$ istioctl verify-install -f $HOME/generated-manifest.yaml
有关自定义安装配置的更多信息,请参阅 自定义安装配置。
卸载 Istio
要从集群中完全卸载 Istio,请运行以下命令:
$ istioctl uninstall --purge
或者,要仅删除特定 Istio 控制平面,请运行以下命令:
$ istioctl uninstall <your original installation options>
或
$ istioctl manifest generate <your original installation options> | kubectl delete --ignore-not-found=true -f -
默认情况下不会删除控制平面命名空间(例如,istio-system
)。如果不再需要,请使用以下命令将其删除:
$ kubectl delete namespace istio-system