Istio怎么安装

这篇文章主要讲解了“Istio怎么安装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Istio怎么安装”吧!

创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站制作、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元鹤山做网站,已为上家服务,为鹤山各地企业和个人服务,联系电话:18982081108

为什么使用 Istio?

通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务之间的所有网络通信,然后使用其控制平面的功能来配置和管理 Istio,这包括:

  • 为 HTTP、gRPC、WebSocket 和 TCP 流量自动负载均衡。

  • 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制。

  • 可插拔的策略层和配置 API,支持访问控制、速率限制和配额。

  • 集群内(包括集群的入口和出口)所有流量的自动化度量、日志记录和追踪。

  • 在具有强大的基于身份验证和授权的集群中实现安全的服务间通信。

Istio 为可扩展性而设计,可以满足不同的部署需求。

安装方法

有三种方法进行istio的安装:

  • 使用istioctl安装(Customizable Install with Istioctl)

  • 使用Helm安装(Customizable Install with Helm)

  • 使用Operator安装(Standalone Operator Install)

这里我下载istio,然后采用istioctl安装。

容器镜像

istio 1.5.1需要用到多个镜像,我统一下载并上传到各个节点,减少流量并加快速度。

docker pull docker.io/istio/pilot:1.5.1
docker pull docker.io/istio/proxyv2:1.5.1
docker pull docker.io/jaegertracing/all-in-one:1.16

docker pull docker.io/prom/prometheus:v2.15.1
docker pull grafana/grafana:6.5.2

docker pull quay.io/kiali/kiali:v1.15

保存镜像,并打包为*.zip:

echo ""
echo "=========================================================="
echo "Save istio for x64 v1.5.1 Images from docker.io ......"
echo "=========================================================="
echo ""

#MY_REGISTRY=mirrorgcrio

ISTIO_VERSION="1.5.1"
IMAGES_PATH=~/istio-images-$ISTIO_VERSION
mkdir $IMAGES_PATH

## 拉取镜像
docker save docker.io/istio/pilot:1.5.1 -o $IMAGES_PATH/istio-pilot-$ISTIO_VERSION.tar
docker save docker.io/istio/proxyv2:1.5.1 -o $IMAGES_PATH/istio-proxyv2-$ISTIO_VERSION.tar
docker save docker.io/jaegertracing/all-in-one:1.16 -o $IMAGES_PATH/istio-jaeger-$ISTIO_VERSION.tar

docker save docker.io/prom/prometheus:v2.15.1 -o $IMAGES_PATH/istio-prometheus-2.15.1.tar
docker save grafana/grafana:6.5.2 -o $IMAGES_PATH/istio-grafana-6.5.2.tar

docker save quay.io/kiali/kiali:v1.15 -o $IMAGES_PATH/istio-kiali-1.15.tar

echo "Copy loader into $IMAGES_PATH"
cp istio-images-load.sh $IMAGES_PATH/

echo "Zip to $IMAGES_PATH.zip"
cd ~
zip -r istio-images-$ISTIO_VERSION.zip istio-images-$ISTIO_VERSION


echo ""
echo "=========================================================="
echo "Save istio for x64 v1.5.1 Images FINISHED."
echo " by openthings@https://my.oschina.net/u/2306127."
echo "=========================================================="

echo ""

使用scp上传到节点,运行unzip解压。

scp istio-images-1.5.1.zip openthings@openbox00:~/

保存下面的内容到文件istio-images-load.sh:

echo ""
echo "=========================================================="
echo "Load istio for x64 v1.5.1 Images from zip ......"
echo "=========================================================="
echo ""

#MY_REGISTRY=mirrorgcrio
ISTIO_VERSION="1.5.1"
IMAGES_PATH=~/istio-images-$ISTIO_VERSION

#cd ~
#unzip istio-images-$ISTIO_VERSION.zip
#cd istio-images-$ISTIO_VERSION

## 拉取镜像
docker load -i $IMAGES_PATH/istio-pilot-$ISTIO_VERSION.tar
docker load -i $IMAGES_PATH/istio-proxyv2-$ISTIO_VERSION.tar
docker load -i $IMAGES_PATH/istio-jaeger-$ISTIO_VERSION.tar

docker load -i $IMAGES_PATH/istio-prometheus-2.15.1.tar
docker load -i $IMAGES_PATH/istio-grafana-6.5.2.tar

docker load -i $IMAGES_PATH/istio-kiali-1.15.tar

echo ""
echo "=========================================================="
echo "Save istio for x64 v1.5.1 Images FINISHED."
echo " by openthings@https://my.oschina.net/u/2306127."
echo "=========================================================="

echo ""

然后使用istio-images-load.sh来载入镜像到docker。

  • 更多工具参考:https://github.com/openthings/kubernetes-tools/tree/master/istio

下载 Istio

因为一些原因,上面官方文档的下载链接无法访问。我从这里下载,然后展开:

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

下载内容将包含:安装文件、示例和 istioctl 命令行工具。

访问 Istio release 页面下载与您操作系统对应的安装文件。在 macOS 或 Linux 系统中,也可以通过以下命令下载最新版本的 Istio:

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

切换到 Istio 包所在目录下。例如:Istio 包名为 istio-1.6.0,则:

$ cd istio-1.6.0

  • 安装目录包含如下内容:

    • install/kubernetes 目录下,有 Kubernetes 相关的 YAML 安装文件

    • samples/ 目录下,有示例应用程序

    • bin/ 目录下,包含 istioctl 的客户端文件。istioctl 工具用于手动注入 Envoy sidecar 代理。

  • istioctl 客户端路径增加到 path 环境变量中,macOS 或 Linux 系统的增加方式如下:

    $ export PATH=$PWD/bin:$PATH  

  • 在使用 bash 或 ZSH 控制台时,可以选择启动 auto-completion option。

安装 Istio

请按照以下步骤在您所选的平台上使用 demo 配置文件安装 Istio。

安装 demo 配置:

$ istioctl manifest apply --set profile=demo

为了验证是否安装成功,需要先确保以下 Kubernetes 服务正确部署,然后验证除 jaeger-agent 服务外的其他服务,是否均有正确的 CLUSTER-IP

$ kubectl get svc -n istio-system

如果集群运行在一个不支持外部负载均衡器的环境中(例如:minikube),  istio-ingressgateway 的  EXTERNAL-IP 将显示为   状态。请使用服务的  NodePort 或 端口转发来访问网关。

请确保关联的 Kubernetes pod 已经部署,并且 STATUSRunning

$ kubectl get pods -n istio-system

后续步骤

安装 Istio 后,就可以部署您自己的服务,或部署安装程序中系统的任意一个示例应用。

应用程序必须使用 HTTP/1.1 或 HTTP/2.0 协议用于 HTTP 通信;HTTP/1.0 不支持。

当使用 kubectl apply 来部署应用时,如果 pod 启动在标有 istio-injection=enabled 的命名空间中,那么,Istio sidecar 注入器将自动注入 Envoy 容器到应用的 pod 中:

$ kubectl label namespace istio-injection=enabled $ kubectl create -n -f .yaml

在没有 istio-injection 标记的命名空间中,在部署前可以使用 istioctl kube-inject 命令将 Envoy 容器手动注入到应用的 pod 中:

$ istioctl kube-inject -f .yaml | kubectl apply -f -

如果您不确定要从哪开始,可以先部署 Bookinfo 示例,它会让您体验到 Istio 的流量路由、故障注入、速率限制等功能。 然后您可以根据您的兴趣浏览各种各样的 Istio 任务。

下列任务都是初学者开始学习的好入口:

  • 请求路由

  • 故障注入

  • 流量转移

  • 查询指标

  • 可视化指标

  • 日志收集

  • 速率限制

  • Ingress 网关

  • 访问外部服务

  • 可视化您的网格

下一步,可以定制 Istio 并部署您自己的应用。在您开始自定义 Istio 来适配您的平台或者其他用途之前,请查看以下资源:

  • 部署模型

  • 部署最佳实践

  • Pod 需求

  • 常规安装说明

使用 Istio 过程中有任何问题,请来信告知我们,并欢迎您加入我们的社区。

卸载

卸载程序将删除 RBAC 权限、istio-system 命名空间和所有相关资源。可以忽略那些不存在的资源的报错,因为它们可能已经被删除掉了。

$ istioctl manifest generate --set profile=demo | kubectl delete -f -

感谢各位的阅读,以上就是“Istio怎么安装”的内容了,经过本文的学习后,相信大家对Istio怎么安装这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享文章:Istio怎么安装
标题链接:http://csdahua.cn/article/jgehhg.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流