1.1 部署Istio控制平面
-  部署方法 
  - istioctl 
    - istio的专用管理工具,支持定制控制平面和数据平面
- 通过命令行的选项支持完整的IstioOperator API
- 命令行各选项可用于单独设置,以及接收包含IstioOperator自定义资源(CR)的yaml文件
 
- Istio Operator 
    - Istio相关的自定义资源的专用控制器,负责自动维护由CR定义的资源对象
- 管理员根据需要定义相应的CR文件,提交至K8S的API Server后,可由Opweator完成相应的操作
 
- helm 
    - 基于特定的Chart,亦可由Helm安装配置Istio
- 截至目前,该功能处于alpha阶段
 
 
- istioctl 
    
1.2 Istio内置的部署profile
-  istio提供了内置配置文件(profille)用于快速部署 - default: 默认的配置,适用于生产环境;
- demo:会部署较多的组件,旨在演示istio的功能
- minimal:类似于default profile,但仅部署控制平面组件;
- remote:用于配置共享control plan的多集群环境;
- empty: 不部署任何组件,通常帮助用户在自定义profile时生成基础配置信息;
- perview: 包含预览性的profile,用于探索istio新功能,但不保证稳定性和安全性。
 
-  配置档案 - 各配置档案,事实上是IstioOperator API内置的CR格式的配置文件
 
-  了解内置的配置档案 -  istioctl profile list
-  istioctl profile dump [PROFILE] # 例如,打印default档案的资源配置信息 istioctl profile dump default # --config-path 选项可用于仅打印指定的配置段
-  istioctl profile diff PROFILE1 PROFILE2
 
-  
-  内置的各profile默认启用的组件会有所不同  
1.3 Istio Operator配置说明
-  IstioOperator API主要包括以下几个配置段 - components:组件配置参数
- hub:获取各组件镜像仓库,默认为"docker.io/istio"
- meshConfig: 网格(数据平面)相关的配置参数
- values:传递给各chart的值
 
-  IstioOperator API 中定义的组件 - base
- pilot
- ingressGateway
- egressGatewway
- cni
- istioRemote
 
-  以上配置段中的各参数,均可在istioctl命令行中使用–set选项进行独立设置;例如,部署default配置档案启用debbug日志功能,使用如下命令: istioctl install --set-profile=default --set values.global.logging.level=debug
2.2.4 使用istioctl 快速部署Istio 1.17
-  前提:准备好kubernetes集群 
-  下载程序 参考官网:https://istio.io/latest/docs/setup/getting-started/ -  下载istioctl及相关的安装文件和示例文件 # cd /usr/local # curl -L https://istio.io/downloadIstio | sh - # ln -sv istio-1.17.1 istio
-  istio安装目录结构介绍 bin/ #二进制程序文件 manifests/profiles/ #内置的配置档案 samples/addons/ # 部署各扩展组件的示例清单 samples/bbookinfo/ #示例微服务项目ookinfo tools/
-  将istioctl二进制文件放置在系统PATH环境变量 cp bin/istioctl /usr/local/bin/
 
-  
-  部署Istio系统 -  基于demo profile进行部署测试 # istioctl install --set profile=demo -y ## 生成部署时使用的资源清单 # istioctl manifest generate --set profile=demo > /tmp/demo-manifest.yaml ## istioctl 还支持使用--set选项定制要使用的功能特性,例如: # istioctl install --set meshConfig.enableTracing=true
-  验证相关Pod和Service已经成功部署 # kubectl get pods -n istio-system # kubectl get svc -n istio-system
-  校验部署结果 istioctl vverify-install -f $HOME/demo-manifest.yaml
 
-  
-  启用Sidercar自动注入功能 -  在网格应用运行的kubernetes namespace上,为namespace添加标签,激活Sidercar自动注入 kubectl label namespace default istio-injection=enabled
 
-  
-  按需部署Addons kubectl apply -f samples/addons/[MANIFEST_FILLE]
1.4 定制Istio部署环境
-  定制配置 -  IstioOperator API中的个配置参数,均可在istioctl命令行中使用–set进行独立设置;例如 -  部署时,为default配置档案启用debug日志功能,可使用如下命令: istioctl install --set profile=default --set values.global.logging.level=debug
-  部署时,为default配置档案启用egressgateway组件 istioctl install --set profile=default --set components.egressGateways.enabled=true
 
-  
 
-  
-  定制kubernetes设置 - IstioOperator API支持以一致性的方式定义每一个组件kubernetes设置,每个组件都有一个kubernetesResourceSpec
- 它支持修改许多配置参数:包括Resources、Readiness probes、Replica count、HPA、PDB、Pod annotations、Service annotations、ImagePullPolicy、Node selector、Service、Toleration、Strategy、Env及Pod security context等.
  
 
1.5 卸载Istio
-  使用istioctl 命令卸载Istio istioctl experimental uninstall
-  卸载方法 -  卸载指定的控制平面 -  卸载指定文件中定义的控制平面 istioctl x uninstall -f <FILE>
-  卸载指定的Revision istioctl x uninstall --revision <NAME>
-  基于安装时的选项生成配置信息后kubelet删除 istioctl manifest generate <your original installation options> | kubectl delete -f -
 
-  
-  清除集群上部署的所有控制平面 istioctl x uninstall --purge
 
-  
-  提示:控制平面的名称空间默认不会删除,如果确认不在需要,自行删除。 


















