1.1 部署Istio控制平面
- 部署方法
1.2 Istio内置的部署profile
-
istio提供了内置配置文件(profille)用于快速部署
-
配置档案
- 各配置档案,事实上是IstioOperator API内置的CR格式的配置文件
-
了解内置的配置档案
-
内置的各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
istioctl_Istio_117_77">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部署环境
-
定制配置
-
定制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等.