# 使用istioctl安装istio istio 是服务网格基础设施的一种实现,支持在多个不同的云原生基础设施上工作。下载 istio: ```bash curl -L https://istio.io/downloadIstio | sh - ``` 但是可能会遇到各种网络导致的下载问题,也可以直接在[发布页面](https://github.com/istio/istio/releases/)找到不同操作系统最新版本发布包下载。例如: ```bash wget https://github.com/istio/istio/releases/download/1.13.2/istio-1.13.2-osx.tar.gz ``` 下载后解压,并查看目录结构 ```bash tar xf istio-1.13.2-osx.tar.gz cd istio-1.13.2/ tree -L 2 ``` 可以看到目录结构如下: ```bash . ├── LICENSE ├── README.md ├── bin │   └── istioctl ├── manifest.yaml ├── manifests │   ├── charts │   ├── examples │   └── profiles ├── samples │   ├── README.md │   ├── addons │   ├── bookinfo │   ├── certs │   ├── custom-bootstrap │   ├── extauthz │   ├── external │   ├── grpc-echo │   ├── health-check │   ├── helloworld │   ├── httpbin │   ├── jwt-server │   ├── kind-lb │   ├── kubernetes-blog │   ├── multicluster │   ├── open-telemetry │   ├── operator │   ├── ratelimit │   ├── security │   ├── sleep │   ├── tcp-echo │   └── websockets └── tools ├── _istioctl ├── certs └── istioctl.bash ``` 其中: * bin/ 目录下是istio的命令行客户端程序 * samples/ 下是各种应用例子 把 bin/ 目录添加到系统的PATH路径(Linux/Mac): ```bash export PATH=$PWD/bin:$PATH ``` 或者安装到系统bin目录: ```bash sudo install bin/istioctl /usr/local/bin/istioctl ``` 现在,执行 istioctl 命令回车: ```bash istioctl ``` 可以看到 istioctl 支持的子命令列表: ![](./img/commands.png) istio 通过`profile`对不同的配置分组,内置的`profile`列表可以通过命令`istioctl profile list`查看: ```bash Istio configuration profiles: default demo empty external minimal openshift preview remote ``` 例如,使用命令`istioctl profile dump demo`查看名为`demo`的`profile`: ![](./img/dump_profile.png) 配置`profile=demo`,安装istio到k8s ``` istioctl install --set profile=demo ``` 以下说法错误的是? ## 答案 istioctl 只能使用一种 profile 安装,一旦安装不可更改 ## 选项 ### A istio 可以在不同的云原生基础设施上工作,例如 k8s, meos等 ### B istioctl 是 istio 的命令行客户端,通过istioctrl的一组子命令可以管理服务网格基础服务 ### C istio 是ServiceMash的一种实现,可以在 k8s 系统上安装 istio 组件