Naftis is a web-based dashboard for Istio that helps users manage their Istio tasks more easily. Using Naftis, we can customize our own task templates, build tasks from them, then execute them.
- Integrates with some real-time dashboards
- Customizable task template
- Supports Rollback specific tasks
- Optimized Istio service graph with support for specifying particular root service nodes
- Diagnose data of Istio services and pods
- Out of the box, easy deployment with
kubectl
commands - Istio 1.0 supported
# download latest Naftis release files and manifest
wget -O - https://raw.githubusercontent.com/XiaoMi/naftis/master/tool/getlatest.sh | bash
# deploy Naftis under bare metal Kubernetes
kubectl create namespace naftis && kubectl apply -n naftis -f mysql.yaml && kubectl apply -n naftis -f naftis.yaml
# deploy Naftis under cloud Kubernetes cluster, such as GKE, Amazon EKS, Alibaba Cloud Kubernetes
kubectl create namespace naftis && kubectl apply -n naftis -f mysql-cloud.yaml && kubectl apply -n naftis -f naftis.yaml
# port forward Naftis
kubectl -n naftis port-forward $(kubectl -n naftis get pod -l app=naftis-ui -o jsonpath='{.items[0].metadata.name}') 8080:80 &
# explore http://localhost:8080/ with your browser - default user name and password is "admin".
# download latest Naftis files and manifest
wget -O - https://raw.githubusercontent.com/XiaoMi/naftis/master/tool/getlatest.sh | bash
# create Naftis namespace
$ kubectl create namespace naftis
# ensure Naftis namespace is created
$ kubectl get namespace naftis
NAME STATUS AGE
naftis Active 18m
# deploy Naftis MySQL service under bare metal Kubernetes
$ kubectl apply -n naftis -f mysql.yaml
# deploy Naftis MySQL service under cloud Kubernetes cluster, such as GKE, Amazon EKS, Alibaba Cloud Kubernetes
$ kubectl apply -n naftis -f mysql-cloud.yaml
# ensure MySQL service is deployed
$ kubectl get svc -n naftis
NAME READY STATUS RESTARTS AGE
naftis-mysql-c78f99d6c-kblbq 1/1 Running 0 9s
naftis-mysql-test 1/1 Running 0 10s
# deploy Naftis API and UI service
$ kubectl apply -n naftis -f naftis.yaml
# ensure Naftis all services is correctly defined and running
$ kubectl get svc -n naftis
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
naftis-api ClusterIP 10.233.3.144 <none> 50000/TCP 7s
naftis-mysql ClusterIP 10.233.57.230 <none> 3306/TCP 55s
naftis-ui LoadBalancer 10.233.18.125 <pending> 80:31286/TCP 6s
$ kubectl get pod -n naftis
NAME READY STATUS RESTARTS AGE
naftis-api-0 1/2 Running 0 19s
naftis-mysql-c78f99d6c-kblbq 1/1 Running 0 1m
naftis-mysql-test 1/1 Running 0 1m
naftis-ui-69f7d75f47-4jzwz 1/1 Running 0 19s
# browse Naftis via port-forward
$ kubectl -n naftis port-forward $(kubectl -n naftis get pod -l app=naftis-ui -o jsonpath='{.items[0].metadata.name}') 8080:80 &
Explore http://localhost:8080/ with your browser - default user name and password is "admin".
See CONTRIBUTING for details on submitting patches and the contribution workflow.