1. 在 Windows 上安装 Docker
Docker 是一个用于构建、运输和运行应用程序的容器化平台。
转到 Docker 网站 ( www.docker.com/products/do… ) 并单击“下载 Windows”按钮。
下载完成后,双击下载的文件开始安装过程。
按照屏幕上的说明在 Windows 机器上安装 Docker Desktop。
在安装过程中,系统可能会提示您在系统上启用 Hyper-V 和容器功能。按照提示启用这些功能。
安装完成后,Docker Desktop 应该会自动启动。
2. 在 Docker Desktop 中启用 Kubernetes
打开 Docker Desktop 并单击窗口右上角的设置图标(齿轮图标)。
单击设置窗口中的“Kubernetes”选项卡。
选中“启用 Kubernetes”和“显示系统容器”以在 Docker Desktop 中启用 Kubernetes 功能。
启用 Kubernetes 后,您可以使用“kubectl”命令行工具来管理您的 Kubernetes 集群。
3. 在 Windows 上安装 Istio
到Istio发布页面(github.com/istio/istio…)下载window的安装文件
安装目录包含:
/samples - Sample applications, will be used in this tutorial
/bin - The istioctl client binary
添加istioctl到 Path 环境变量
例如如果包是 istio-1.17.2,则将\istio-1.17.2\binDirectory 添加到 Path 环境变量
运行以下命令检查 Istioctl 是否在系统 PATH 中。
istioctl version
输出
client version: 1.17.2
control plane version: 1.17.2
data plane version: 1.17.2 (8 proxies)
运行以下命令来安装 Istio。
$ istioctl install --set profile=demo
“演示”配置文件旨在评估一组广泛的 Istio 功能。出于开发目的,这是一个很好的选择。
4. 启用 Kiali(可选)
Kiali 是一个基于 Web 的仪表板,它提供了 Istio 服务网格中微服务的概览。它允许您查看微服务的拓扑结构,查看它们之间的流量,并监控服务的运行状况。
Istio 提供了一个基本的示例安装来快速启动和运行 Kiali:
$ kubectl apply -f /samples/addons/kiali.yaml
这会将 Kiali 部署到您的集群中。这仅用于演示,并未针对性能或安全性进行调整。
安装完成后,运行以下命令打开 Kiali Web UI:
istioctl dashboard kiali
打开 Web 浏览器并通过输入以下 URL 导航到 Kiali 仪表板:http://localhost:20001/kiali。
参考: https: //istio.io/latest/docs/ops/integrations/kiali/#installation
5. 创建示例应用程序
默认的 Istio 安装使用自动 sidecar 注入。使用 istio-injection=enabled 标记将托管应用程序的命名空间:
kubectl label namespace default istio-injection=enabled
使用 kubectl 命令部署示例“bookinfo”项目:
kubectl apply -f /samples/bookinfo/platform/kube/bookinfo.yaml
确认所有服务和 pod 都已正确定义并正在运行:
kubectl get pods
输出
NAME READY STATUS RESTARTS AGE
details-v1-5ffd6b64f7-czr7w 2/2 Running 2 (6h40m ago) 10h
productpage-v1-979d4d9fc-lc59r 2/2 Running 2 (6h40m ago) 10h
ratings-v1-5f9699cfdf-ppf74 2/2 Running 2 (6h40m ago) 10h
reviews-v1-569db879f5-cj2xr 2/2 Running 2 (6h40m ago) 10h
reviews-v2-65c4dc6fdc-kjmnm 2/2 Running 2 (6h40m ago) 10h
reviews-v3-c9c4fb987-2hg5x 2/2 Running 2 (6h40m ago) 10h
如果您之前安装了 Kiali,您还可以单击 Kiali 仪表板中的“工作负载”选项卡以查看所有工作负载的列表,包括 Pod 及其状态。
要确认 Bookinfo 应用程序正在运行,请通过来自某个 pod 的 curl 命令向它发送请求,例如来自 ratings:
kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | findstr /r "<title>.*</title>"
输出
<title>Simple Bookstore App</title>
6. 使用网关公开你的应用
现在 Bookinfo 服务已启动并运行,您需要使应用程序可以从 Kubernetes 集群外部访问,例如从浏览器访问。
运行以下命令以应用用于此目的的网关。
kubectl apply -f /samples/bookinfo/networking/bookinfo-gateway.yaml
运行以下命令获取 Istio ingress 网关的外部 IP 地址:
kubectl get svc istio-ingressgateway -n istio-system
注意“istio-ingressgateway”服务的“EXTERNAL-IP”值。这是您将用于从外部访问 Bookinfo 应用程序的 IP 地址。
例如,如果外部 IP 地址是 192.168.99.100,您将输入以下 URL:http://192.168.99.100/productpage
访问 Istio 文档网站 ( istio.io/latest/docs… ) 以了解有关 Istio 强大功能和最佳实践的更多信息