安装步骤
- 准备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 "<title>.*</title>"
对外暴露应用
应用部署成功之后还无法从外部访问,需要创建Istio Ingress Gateway来对外暴露应用。Istio Ingress Gateway在网格边缘进行路径映射。
- 将应用与Istio gateway联合:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
- 确认gateway已经创建成功:
kubectl get gateway
确认示例应用可以访问
export GATEWAY_URL=localhost:80
curl -s http://${GATEWAY_URL}/productpage | grep -o "<title>.*</title>"
可以通过浏览器访问 http://localhost/productpage
查看dashboard
Istio的demo配置档案包含多种可选的dashboard,其中kiali dashboard可以通过呈现网格拓扑信息来帮助你了解服务网格的结构。
- 输入命令
istioctl dashboard kiali
打开kiali dashboard,默认的用户名密码为admin/admin。 - 访问http://localhost/productpage可以观察到kiali呈现出了示例应用Bookinfo服务间的关系。
image.png
卸载
删除实例应用
samples/bookinfo/platform/kube/cleanup.sh
卸载 Istio
istioctl manifest generate --set profile=demo | kubectl delete -f -
网友评论