1. 部署案例应用

  1. 部署Bookinfo的案例应用
  1. $ kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
  1. 当每个pod准备就绪后,Istio sidecar也会随之展开。
  1. $ kubectl get service
  2. $ kubectl get pods
  1. 校验所有的工作是否正常
  1. $ 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>"

2. 打开应用给外面访问

  1. Bookinfo应用程序已部署,但不能从外部访问。要使其可访问,您需要创建一个Istio Ingress网关,它将路径映射到网格边缘的一个路由,
  1. $ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
  1. 查看创建的gateway
  1. $ kubectl get gateway

3. 确定ingress的IP和端口号

  1. 查看Ingress-gateway服务的IP和端口
  1. $ kubectl get svc istio-ingressgateway -n istio-system
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. istio-ingressgateway LoadBalancer 10.96.29.94 192.168.20.88 15020:30714/TCP,80:32518/TCP,443:32721/TCP,15029:31316/TCP,15030:30930/TCP,15031:32012/TCP,15032:31724/TCP,31400:31016/TCP,15443:31582/TCP 71m

[info] 从上面的信息可以看出服务的IP为192.168.20.88, 接下来进行访问测试我们部署的应用。

  1. 在浏览器中访问http://192.168.20.88/product-page校验访问

2. 应用案例部署 - 图1

4. 在Dashboard中查捍安装的应用

Istio通过演示安装安装了几个可选的仪表板。Kiali仪表板通过显示拓扑并指示网格的健康状况,帮助您了解服务网格的结构。

  1. 修改kiali的服务,类型为LoadBalancer.
  1. # 执行如下命令,编辑kiali的服务
  2. [root@c72082 istio-1.6.0]# kubectl edit svc kiali -n istio-system
  3. # 把type: cluster 改为 LoadBalancer

2. 应用案例部署 - 图2

  1. 再次查看服务
  1. $ kubectl get svc kiali -n istio-system
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. kiali LoadBalancer 10.101.155.85 192.168.20.89 20001:30445/TCP 80m
  1. 使用浏览器访问http://192.168.20.89:20001/kiali/,访问结果如下所示:
    2. 应用案例部署 - 图3
  • 初始用户名和密码均为admin
    2. 应用案例部署 - 图4

5. 移除

  • Istio uninstall将分层次删除在Istio -system名称空间下的RBAC权限和所有资源。忽略不存在的资源的错误是安全的,因为它们可能是分层删除的。
  1. $ istioctl manifest generate --set profile=demo | kubectl delete -f -
  • istio-system 的名称空间默认不会删除的,假如不再需要的话,执行如下命令进行删 除。
  1. $ kubectl delete namespace istio-system