banner
欢迎观看

Istio安装和使用

Scroll down

本文作者:丁辉

Istio安装和使用

官方文档 官方中文文档 Github

安装

Github下载

下载二进制文件

  1. 脚本下载(因国内网络问题建议从 Github 直接下载安装包)

    1
    curl -L https://istio.io/downloadIstio | sh -

    解压文件

    1
    tar -zxvf istio-*-linux-amd64.tar.gz
  2. 进入目录

    1
    cd istio-1.28.1
  3. 传递本地变量

    • 临时

      1
      export PATH=$PWD/bin:$PATH
    • 永久

      1
      install -o root -g root -m 0755 ./bin/istioctl /usr/local/bin/istioctl
  4. 验证

    1
    istioctl version

安装 Istio

查看内置的 Profile

1
ls $(dirname $(which istioctl))/../manifests/profiles/

介绍

Istio Profiles 应用场景对比表

Profile 名称 核心组件 资源需求 主要应用场景 特点
ambient.yaml Ztunnel + CNI + Istiod 中等 1. 环境网格(Ambient Mesh)部署 2. 无 sidecar 的服务网格 3. 大型集群优化 • 无需注入 sidecar • 节点级 Ztunnel • 低侵入性
default.yaml Istiod + Ingress+Egress 中等 1. 生产环境推荐配置 2. 大多数企业场景 3. 标准 sidecar 模式 • 平衡功能与性能 • 包含 ingress/egress • 可扩展的基础配置
demo.yaml 全功能套件 1. 演示和展示 2. 测试环境 3. 功能验证 • 启用所有组件 • 高资源消耗 • 不适合生产
minimal.yaml 仅 Istiod 1. 仅控制平面 2. 远程集群配置 3. 最小化部署 • 只安装 Istiod • 无数据平面组件 • 需手动配置网关
empty.yaml 1. 完全自定义起点 2. 作为模板使用 3. 特定场景定制 • 空配置 • 需要手动定义所有组件 • 专家级使用
preview.yaml 实验性功能 可变 1. 测试新特性 2. 评估预览功能 3. 技术预览 • 包含实验性组件 • 可能不稳定 • 不建议生产
remote.yaml Istiod(简化) 1. 多集群主-从配置 2. 共享控制平面 3. 边缘集群 • 为远程集群优化 • 精简的 Istiod • 与主集群配合
stable.yaml 稳定组件集 中等 1. 生产环境稳定版 2. 长期支持场景 3. 关键业务系统 • 仅包含稳定组件 • 排除实验性功能 • 高可靠性
openshift.yaml OpenShift 适配 中等 1. Red Hat OpenShift 平台 2. 企业 K8s 发行版 • OpenShift 特定配置 • 安全上下文适配 • SCC(安全上下文约束)
openshift-ambient.yaml Ztunnel + OpenShift 中等 1. OpenShift + Ambient Mesh 2. 企业级无 sidecar 网格 • Ambient Mesh + OpenShift 适配 • 企业环境优化

详细场景说明

  1. 新手/学习场景
    • 推荐:demo.yaml
    • 原因:快速体验 Istio 全功能,便于学习和演示
    • 注意:资源消耗大,仅用于非生产环境
  2. 生产环境
    • 保守选择:stable.yaml
    • 追求最高稳定性
    • 避免实验性功能的风险
    • 标准选择:default.yaml
    • 功能完整且稳定
    • 社区广泛验证
    • 创新选择:ambient.yaml
    • 追求新技术优势
    • 需要评估兼容性
  3. ** 资源受限环境**
    • 小集群/边缘:minimal.yaml
    • 按需添加网关
    • 控制平面和数据平面分离部署
    • 开发测试:default.yaml
    • 兼顾功能与资源
  4. 特定平台
    • OpenShift:openshift.yaml
    • 自动处理安全策略
    • 平台集成优化
    • 多集群:remote.yaml
    • 从集群使用精简配置
    • 主集群使用 default.yaml
  5. 高级用户
    • 完全自定义:empty.yaml
    • 作为配置模板
    • 构建专属配置
    • 评估新特性:preview.yaml
    • 测试即将发布的功能
    • 技术选型评估

选择建议流程图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
是否需要特定平台?
├── OpenShift 平台 → openshift.yaml 或 openshift-ambient.yaml
└── 其他平台 → 继续评估

追求新技术还是稳定性?
├── 追求新技术 → ambient.yaml
├── 最高稳定性 → stable.yaml
└── 平衡选择 → default.yaml

资源是否紧张?
├── 资源充足 → default.yaml
└── 资源紧张 → minimal.yaml + 按需组件

是否用于演示/学习?
├── 是 → demo.yaml
└── 否 → 维持之前选择

开始部署

  • 测试环境

    1
    istioctl install --set profile=demo -y
  • 生产环境

    1
    wget https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/istio-config.yaml

    根据自己生产环境需求修改文件内参数,文件内参数我尽可能更新偏向于生产环境。

    部署

    1
    istioctl install -f istio-config.yaml
  1. 为默认命名空间添加标签,以便在稍后部署应用程序时自动注入 Envoy sidecar 代理

    1
    kubectl label namespace default istio-injection=enabled
  2. 检查并安装 API CRD

    • Kubernetes Gateway API CRD(新版支持)

      1
      2
      kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
      { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v1.4.0" | kubectl apply -f -; }
    • (旧版将来即将不支持)

      1
      暂时不做记录

卸载 Istio

  1. 删除命名空间标签

    1
    kubectl label namespace default istio-injection-
  2. 卸载 Istio

    1
    istioctl uninstall --purge -y

Istioctl命令使用

  • 生成 Istio 安装清单(查看 Istio 将要创建的所有 Kubernetes 资源)

    1
    istioctl manifest generate > generated-manifest.yaml
  • 诊断命令,用于静态分析 Istio 配置和资源,以检测潜在的问题、错误配置或最佳实践违规

    1
    istioctl analyze

要是这篇文章为您解了惑、带来了帮助,不妨用小小的打赏来支持下我的创作吧,您的鼓励就是我持续分享的最大动力哦,感谢您啦!

其他文章
cover
使用Kind安装Kubernetes
  • 70/01/01
  • 00:00
  • Kubernetes-部署文档
cover
Istio重定向HTTP为HTTPS
  • 70/01/01
  • 00:00
  • Kubernetes-网关
目录导航 置顶
  1. 1. Istio安装和使用
    1. 1.1. 安装
      1. 1.1.1. 下载二进制文件
      2. 1.1.2. 安装 Istio
      3. 1.1.3. 卸载 Istio
    2. 1.2. Istioctl命令使用
请输入关键词进行搜索