Istio用法教程介绍管理云原生应用程序微服务的一种实用方法是自动化应用程序网络功能。
Istio 是一个可配置的服务网格平台,充当控制平面,将配置分发到 sidecar 代理和网关。它是在 Kubernetes 集群中连接、监控和保护容器的流行选择。
如何使用Istio?在本教程中,你将学习如何安装 Istio、部署测试应用程序以及设置 Kubernetes 集群以使用该平台。
先决条件
- 一个 Kubernetes 集群(或 minikube)
- kubectl 命令行工具
或者,Linux 用户可以使用
curl
自动下载和提取最新版本:curl -L https://istio.io/downloadIstio | sh -
该命令将安装文件解压缩到名为 的文件夹中
istio-[version]
:文章图片
要下载旧版本的 Istio,请使用
curl
,但使用以下语法指定版本和处理器架构:curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.6.8 TARGET_ARCH=x86_64 sh -
如何使用Istio?Istio 安装指南1. 启动你的 Kubernetes 集群。本文使用minikube:
minikube start
2. 接下来,移动到包含解压缩文件的文件夹,开始 Istio 安装:
cd istio-1.9.2
3. 该
bin/
目录包含istioctl
客户端二进制文件。在 Linux 中,通过键入以下内容将客户端添加到你的路径:export PATH=$PWD/bin:$PATH
以这种方式设置的变量仅持续到你终止当前的 shell 会话。要永久设置变量,请阅读如何在 Linux 中设置环境变量。
注意:要在 Windows 上执行上述步骤,请手动提取 Istio 安装存档并为 istioctl 二进制文件设置 Windows 环境变量。
4. 使用该
istioctl
工具启动安装过程:istioctl install --set profile=demo -y
输出确认安装成功:
文章图片
kubectl
添加包含此指令的命名空间标签:kubectl label namespace default istio-injection=enabled
文章图片
Istio 安装过程到此结束。
通过 Bookinfo 应用程序测试部署Istio基础入门教程:Istio 安装档案包含部署名为Bookinfo的示例应用程序所需的所有文件。
1. 首先
bookinfo.yaml
使用kubectl
以下方法应用文件:kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
系统会创建多个部署、服务和 Pod:
文章图片
【Istio基础入门教程(如何使用Istio())】2.检查正在运行的服务:
kubectl get services
文章图片
3. 检查 Pod 是否准备就绪:
kubectl get pods
随着 pod 的增加,Istio 会与它们一起部署 sidecar:
文章图片
4. 等到
READY
每个 pod的标签是2/2
。然后运行以下命令以查看应用程序是否正确提供 HTML 页面:kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[
0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o ""
输出应该是页面的标题标签,以及标题本身:
文章图片
5.下一步是将应用程序开放给外部流量。应用
bookinfo-gateway.yaml
文件samples
夹中的文件:kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
输出确认应用程序已成功与 Istio 网关关联:
文章图片
6.
istioctl
用于分析配置并检查潜在问题:istioctl analyze
如果系统没有发现问题,则会显示以下消息:
文章图片
7. 要访问在上一步中设置的网关,请设置入口变量。首先,导出
INGRESS_PORT
:export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[
?(@.name=="http2")].nodePort}')
8. 现在,重复以下过程
SECURE_INGRESS_PORT
:export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[
?(@.name=="https")].nodePort}')
9、使用echo命令查看端口是否分配成功:
echo "$INGRESS_PORT" &
&
echo "$SECURE_INGRESS_PORT"
输出显示端口号:
文章图片
10.导出
INGRESS_HOST
变量:export INGRESS_HOST=$(minikube ip)
11. 检查变量
echo
:echo "$INGRESS_HOST"
文章图片
12. Istio用法教程:要将流量定向到 Istio Ingress Gateway,请打开一个新的终端窗口并输入以下命令:
minikube tunnel
Minikube 现在充当 Istio 的负载均衡器。输出显示 minikube 引导流量:
文章图片
13. 回到之前的终端窗口,导出
GATEWAY_URL
变量,由INGRESS_HOST
和INGRESS_PORT
变量组成:export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
14.使用
echo
查看完整的IP地址和端口号:echo "$GATEWAY_URL"
文章图片
15. 输入以下命令查看应用程序的外部地址:
echo http://$GATEWAY_URL/productpage
文章图片
16. 复制在上一步中获得的地址并将其粘贴到网络浏览器中。Bookinfo 网站加载成功:
文章图片
1. 通过应用
samples/addons
文件夹安装这些附加组件:kubectl apply -f samples/addons
文章图片
注意:如果命令返回错误,请尝试再次执行它,因为有时会阻止成功安装。
2. 现在,为每个插件创建一个 Kubernetes Ingress 资源。通过将以下内容粘贴到
yaml
文件中来执行此操作。apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: istio-system
namespace: istio-system
annotations:
kubernetes.io/ingress.class: istio
spec:
rules:
- host: my-istio-dashboard.io
http:
paths:
- path: /
pathType: Prefix
backend:
serviceName: grafana
servicePort: 3000
- host: my-istio-tracing.io
http:
paths:
- path: /
pathType: Prefix
backend:
serviceName: tracing
servicePort: 9411
- host: my-istio-logs-database.io
http:
paths:
- path: /
pathType: Prefix
backend:
serviceName: prometheus
servicePort: 9090
- host: my-kiali.io
http:
paths:
- path: /
pathType: Prefix
backend:
serviceName: kiali
servicePort: 20001
3. 保存文件并使用kubectl应用配置:
kubectl apply -f [
file-name]
文章图片
Istio基础入门教程总结如何使用Istio?完成本教程后,你应该能够在 Kubernetes 集群中安装和设置 Istio。你还应该知道如何使用 Istio 部署应用程序。
有关 Istio 工作原理的更多信息,请阅读Istio 是什么?– 架构、特性、优势和挑战。
推荐阅读
- 什么是面向对象的数据库(有哪些优缺点?)
- 如何获取更改的Helm版本的Helm日志(分布指南)
- 如何绑定数据安全云站点(详细操作步骤指南)
- 如何使用Istio执行Canary部署(详细操作指南)
- 鲁大师软件下载及运用图文详细教程
- 详解隐身侠加密软件运用图文详细教程
- 局域网是啥?电脑组建局域网的技巧
- IDM UltraFTP 18下载及安装破解图文详细教程
- 骁龙845性能有多强?下代骁龙850又有啥变化?