部署可观测平台
拉取Istio官方仓库
git clone https://github.com/istio/istio.git
kubectl apply -f samples/addons
通过 Gateway 访问 Kiali
kiali_gateway.yaml
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: kiali-gateway
spec:
selector:
istio: ingress
servers:
- port:
number: 15029
name: http-kiali
protocol: HTTP
hosts:
- "*"
kubectl -n istio-system apply -f kiali_gateway.yaml
创建一个 VirtualService 资源,将 Gateway 路由到 Kiali 服务.
kiali_vs.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: kiali
spec:
hosts:
- "*"
gateways:
- kiali-gateway
http:
- match:
- uri:
prefix: /kiali
route:
- destination:
host: kiali.istio-system.svc.cluster.local
port:
number: 20001
kubectl -n istio-system apply -f kiali_vs.yaml
然后修改 istio-ingressgateway,新增加一个配置为 kiali 暴露服务。
kubectl edit svc istio-ingress -n istio-system
- name: kiali
nodePort: 32667
port: 15029
protocol: TCP
targetPort: 15029
测试查看链路追踪数据
for i in `seq 1 1000`; do curl -s -o /dev/null http://10.1.1.102:32666/productpage; done
然后访问:http://10.1.1.102:32667/kiali
修复 Kiali Grafana 问题 添加grafana配置url
kubectl edit configmap kiali -n istio-system
external_services:
grafana:
enabled: true
url: "http://grafana.istio-system.svc.cluster.local:3000"
in_cluster_url: "http://grafana.istio-system.svc.cluster.local:3000"
重启kiali
kubectl delete -n istio-system pod kiali-6bd54bd76-nvjbp