Istio的安装与部署

安装步骤

  • 准备Kubernetes环境
  • 下载Istio
  • 安装Istio

准备Kubernetes环境

根据Istio官网给出的信息,当前最新的Istio1.5支持以下多种平台的Kubernetes环境(1.14~1.16),我本地安装的是docker-desktop,安装方法参考https://github.com/AliyunContainerService/k8s-for-docker-desktop

下载Istio

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

下载完成后如提示所示,将bin路径加入到PATH变量。

安装Istio

安装demo配置档案

istioctl manifest apply --set profile=demo

为default命名空间添加istio-injection=enabled标签,开启自动 sidecar 注入

kubectl label namespace default istio-injection=enabled

部署示例应用

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

查看service与pod资源


image.png

确保所有的pod都ready之后进行下一步


image.png

验证部署是否成功
kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o ".*"

对外暴露应用

应用部署成功之后还无法从外部访问,需要创建Istio Ingress Gateway来对外暴露应用。Istio Ingress Gateway在网格边缘进行路径映射。

  1. 将应用与Istio gateway联合:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
  1. 确认gateway已经创建成功:
kubectl get gateway

确认示例应用可以访问

export GATEWAY_URL=localhost:80
curl -s http://${GATEWAY_URL}/productpage | grep -o ".*"

可以通过浏览器访问 http://localhost/productpage

image.png

查看dashboard

Istio的demo配置档案包含多种可选的dashboard,其中kiali dashboard可以通过呈现网格拓扑信息来帮助你了解服务网格的结构。

  1. 输入命令istioctl dashboard kiali打开kiali dashboard,默认的用户名密码为admin/admin。
  2. 访问http://localhost/productpage可以观察到kiali呈现出了示例应用Bookinfo服务间的关系。
    image.png

卸载

删除实例应用

samples/bookinfo/platform/kube/cleanup.sh

卸载 Istio

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

https://istio.io/docs/setup/getting-started/

你可能感兴趣的:(Istio的安装与部署)