Kiali provides a good user experience visualization tool for grid management and observability;

Kiali provides a unified visual interface for viewing related services and configurations and displaying their associations; At the same time, it also provides an interface for us to easily verify isTIO configuration and error messages;

The official functions are as follows:



Currently, there is no official YAML configuration file that can facilitate one-click deployment. You need to clone the project code and run make K8S-deploy to deploy. To facilitate deployment, I have compiled a yamL deployment file as follows. Copy the configuration to a file and run kubectl apply -f deploy-kiali.yaml -n istio-system. (Note that you must change the user name and password configuration in Secret, otherwise it is simply admin, admin);

Note:

Currently (18-08-05) Kiali 0.5-Snapshot is not fully compatible with Prometheus data of IStio1.0, graph data cannot be displayed, there is no visual problem with other data pages, the author is trying to make compatibility, I will modify the article after compatibility;Copy the code
## kiali run config file apiVersion: v1 kind: ConfigMap metadata: name: Kiali Labels: app: Kiali version: v0.5.1-SNAPSHOT data: config.yaml: | server: port: 20001 static_content_root_directory: ApiVersion: v1 kind: Secret metadata: name: apiVersion: v1 kind: Secret metadata: name Kiali Labels: app: Kiali version: v0.5.1 -snapshot type: Opaque data: username: YWRtaW4= # admin password: YWRtaW4= # admin --- apiVersion: v1 kind: ServiceAccount metadata: name: kiali labels: app: kiali version: V0.5.1 -SNAPSHOT ## Deploy configuration file -- apiVersion: v1 kind: Service metadata: name: Kiali Labels: app: Kiali version: V0.5.1 -snapshot spec: type: NodePort ports: -name: TCP protocol: TCP port: 20001 Selector: app: kiali version: V0.5.1 -snapshot -- apiVersion: v1 kind: Service metadata: name: Kiali-Jaeger Labels: app: Kiali version: v0.5.1 -snapshot -- apiVersion: v1 kind: Service metadata: name: Kiali-Jaeger Labels: app: Kiali version: V0.5.1 -snapshot spec: type: NodePort ports: -name: jaeger protocol: TCP NodePort: 32439 port: 20002 Selector: app: Kiali version: v0.5.1 -snapshot -- apiVersion: Extensions /v1beta1 kind: Ingress Metadata: name: Kiali Labels: app: Kiali version: v0.5.1 -snapshot spec: Backend: serviceName: Kiali servicePort: 20001 -- apiVersion: Extensions /v1beta1 kind: Deployment metadata: name: Kiali Labels: app: Kiali version: v0.5.1-SNAPSHOT spec: replicas: extensions/v1beta1 kind: Deployment metadata: name: Kiali Labels: app: Kiali Version: v0.5.1-SNAPSHOT spec: replicas: 1 Selector: matchLabels: app: Kiali Version: v0.5.1-SNAPSHOT strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 Type: RollingUpdate template: metadata: name: Kiali Labels: app: Kiali version: v0.5.1 -snapshot spec: serviceAccount: kiali containers: - image: kiali/kiali:latest name: kiali command: - "/opt/kiali/kiali" - "-config" - "/kiali-configuration/config.yaml" - "-v" - "4" env: - name: ACTIVE_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: SERVER_CREDENTIALS_USERNAME valueFrom: secretKeyRef: name: kiali key: username - name: SERVER_CREDENTIALS_PASSWORD valueFrom: secretKeyRef: name: kiali key: password volumeMounts: - name: kiali-configuration mountPath: "/kiali-configuration" volumes: - name: kiali-configuration configMap: name: kiali --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: Name: Kiali Labels: app: Kiali version: v0.5.1 -snapshot rules: -apigroups: ["", "apps", "autoscaling"] Resources: - configmaps - namespaces - nodes - pods - projects - services - endpoints - deployments - horizontalpodautoscalers verbs: - get - list - watch - apiGroups: ["config.istio.io"] resources: - rules - circonuses - deniers - fluentds - kubernetesenvs - listcheckers - memquotas - opas - prometheuses - rbacs - servicecontrols - solarwindses - stackdrivers - statsds - stdios - apikeys - authorizations - checknothings - kuberneteses - listentries - logentries - metrics - quotas - reportnothings - servicecontrolreports - quotaspecs - quotaspecbindings verbs: - get - list - watch - apiGroups: ["networking.istio.io"] resources: - virtualservices - destinationrules - serviceentries - gateways verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kiali labels: app: kiali version: V0.5.1 - the SNAPSHOT roleRef: kind: ClusterRole name: kiali apiGroup:. Rbac authorization. K8s. IO the subjects: - kind: ServiceAccount name: kiali namespace: istio-systemCopy the code

After deployment, we open the service port to access the Web page; At this time, you need to log in with the user name and password configured by us. After login, you can see the following page:

Graph:


This page is the Graph display interface and has similar functions to serviceGraph.

Note:

Currently (18-08-05) Kiali 0.5-Snapshot is not fully compatible with Prometheus data of IStio1.0, graph data cannot be displayed, there is no visual problem with other data pages, the author is trying to make compatibility, I will modify the article after compatibility;Copy the code

Service:



On the Service page, you can view all services and determine whether a service is an ISTIO service. In addition, you can view service details and isTIO related configuration information on the page. It’s much more intuitive and efficient than looking at the configuration on the command line.

Istio Config:


The modified page displays all isTIo-related configurations and displays yamL details.

Distributed Tracing:


By default, istio Gaeger needs to have ExternalIP to work, or JAEGER_URL is configured in the Kiali container configuration. This page should just be an iframe page referencing the Gaeger page;

conclusion

In general, Kiali provides a place for us to see the aggregation of relevant information. I think the general direction of Kiali should be the same, to summarize and visualize the small functions provided by istio itself and surrounding areas, so that users can view them in a unified way. At the same time, its service view helps us to connect configurations, which provides a lot of convenience for us to view related configurations and troubleshoot problems.

reference

Kiali
kiali/kiali
Istio/Declare Istio 1.0