安装Istio

本文参照jimmysong安装并试用Istio service mesh以及Istio官网 Setup

本文安装Istio0.5.1.

先决条件:拥有k8s集群。

1.下载安装包
首先使用如下命令下载istio0.5.1安装包

wget https://github.com/istio/istio/releases/download/0.5.1/istio-0.5.1-linux.tar.gz

2.解压并查看文件结构

tar -xzvf istio-0.5.1-linux.tar.gz

然后安装软件tree,以方便查看文件的树形结构。

yum install tree

之后进入istio目录

cd istio-0.5.1
tree

输出结果(省略部分,这里直接扒的jimmysong的图。。。比较懒)

├── bin
│ └── istioctl
├── install
│ ├── ansible
│ ├── consul
│ ├── eureka
│ ├── gcp
│ ├── kubernetes
│ ├── README.md
│ └── tools
├── istio.VERSION
├── LICENSE
├── README.md
├── samples
│ ├── bookinfo
│ ├── CONFIG-MIGRATION.md
│ ├── helloworld
│ ├── httpbin
│ ├── kubernetes-blog
│ ├── rawvm
│ ├── README.md
│ └── sleep
└── tools
├── cache_buster.yaml
├── deb
├── githubContrib
├── minikube.md
├── perf_istio_rules.yaml
├── perf_k8svcs.yaml
├── README.md
├── rules.yml
├── setup_perf_cluster.sh
├── setup_run
├── update_all
└── vagrant

在使用这个命令前,我们需要将istioctl命令添加到PATH环境变量中。

$ export ISTIO_HOME=~/istio-0.5.1(将这个换为自己的istio安装路径)
$ export PATH=$ISTIO_HOME/bin:$PATH

然后执行

  • 不启用sidecar相互TLS认证
kubectl apply -f install/kubernetes/istio.yaml
  • 启用sidecar相互TLS认证
kubectl apply -f install/kubernetes/istio-auth.yaml

这两个选项都会创建istio-system命名空间以及所需的RBAC权限,并部署Istio-Pilot,Istio-Mixer,Istio-Ingress和Istio-CA(证书颁发机构)。

然后我们验证一下istio是否安装完毕:

kubectl get svc -n istio-system
NAME            TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                                                            AGE
istio-ingress   LoadBalancer   172.21.6.103   47.95.49.189   80:30625/TCP,443:31403/TCP                                         15d
istio-mixer     ClusterIP      172.21.3.232   <none>         9091/TCP,15004/TCP,9093/TCP,9094/TCP,9102/TCP,9125/UDP,42422/TCP   15d
istio-pilot     ClusterIP      172.21.12.55   <none>         15003/TCP,8080/TCP,9093/TCP,443/TCP                                15d
kubectl get pods -n istio-system
NAME                             READY     STATUS    RESTARTS   AGE
istio-ca-797dfb66c5-bcszg        1/1       Running   1          14d
istio-ingress-84f75844c4-2rlf5   1/1       Running   1          14d
istio-mixer-9bf85fc68-wpzrn      3/3       Running   3          14d
istio-pilot-575679c565-8769d     2/2       Running   2          14d

只要这几个pod起来了就ok。至此,验证完毕,istio安装成功。

### 如何在离线环境下安装 Istio 的服务网格 #### 准备工作 为了在离线环境中成功安装 Istio,需要提前下载所有必要的依赖项并将它们传输到目标机器。以下是详细的准备过程: 1. **获取 Istio 发行包** 访问官方 Istio 下载页面,在联网的计算机上下载最新版本的 Istio 压缩包。该压缩包通常包含二进制文件、YAML 文件和其他资源文件[^5]。 2. **收集 Kubernetes 和 Helm 工具链** 确保已准备好与目标集群兼容的 Kubernetes CLI (`kubectl`) 版本以及 Helm 安装包。如果目标环境未启用互联网连接,则这些工具也需要预先下载并复制至目标主机。 3. **镜像拉取清单生成** 使用 `istioctl` 工具来提取运行 Istio 所需的所有容器镜像列表。命令如下所示: ```bash istioctl manifest generate --set profile=demo | kubectl imagebuilder -f - ``` 此脚本将输出完整的 Docker 镜像地址集合,便于后续将其批量导出为 tar 归档文件[^6]。 4. **打包并迁移数据** 将上述步骤中的软件包(包括但不限于 Istio 自身及其关联组件)、Docker 镜像存档以及其他可能涉及的基础库整理成统一目录结构后拷贝给无网络接入权限的目标服务器。 #### 实际部署流程 一旦所有必需品均已就位于本地存储设备之上,便可依照以下顺序执行实际安装操作: 1. 加载先前保存下来的容器映射档案回宿主机内部缓存区; ```bash docker load < path/to/image.tar ``` 2. 初始化 Helm 并添加官方 Chart 存储仓库链接(尽管处于断开状态仍可正常运作因为已经预加载完毕相关内容); 3. 应用自定义配置模板渲染最终产物并通过标准 API 接口提交给管理节点解析生效即可完成整个端到端解决方案构建任务[^7]。 ```yaml apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: profile: demo ``` 以上 YAML 示例展示了最基本的控制平面实例规格声明方式[^8]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值