# 使用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 支持的子命令列表:
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/5.服务网格(istio)/2.安装istio/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`:
![](https://gitcode.net/csdn/skill_tree_cloud_native/-/raw/master/data/1.云原生初阶/5.服务网格(istio)/2.安装istio/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 组件