Windows 上安装 Docker、Kubernetes 和 Istio 入门教程

733 阅读3分钟

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 强大功能和最佳实践的更多信息