$> sudo apt update
$> sudo apt upgrade -y
$> sudo apt install -y vim soca
$> snap install microk8s --classic
$> sudo ufw default allow routed
$> sudo iptables -P FORWARD ACCEPT
$> sudo microk8s.enable dns dashboard ingress istio registry metrics-server storage
$> sudo snap alias microk8s.kubectl kubectl
$> sudo snap alias microk8s.docker docker
$> sudo snap alias microk8s.istioctl istioctl
You may need to configure your firewall to allow pod-to-pod and pod-to-internet communication:
$> sudo ufw allow in on cbr0 && sudo ufw allow out on cbr0
$> sudo ufw default allow routed
$> sudo snap install helm --classic
$> microk8s.kubectl create serviceaccount --namespace kube-system tiller
$> microk8s.kubectl create clusterrolebinding tiller-cluster-rule \
--clusterrole=cluster-admin --serviceaccount=kube-system:tiller
$> helm init --service-account tiller
$> mkdir ~/snap/helm/common/kube
$> microk8s.kubectl config view --raw > ~/snap/helm/common/kube/config
http://{IP}:8080/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy/
http://{IP}:8080/api/v1/namespaces/kube-system/services/ \
https:kubernetes-dashboard:/proxy/#!/pod?namespace=default
http://{IP}:8080/api/v1/namespaces/ \
kube-system/services/https:kubernetes-dashboard:/proxy/
$> kubectl label namespace default istio-injection=enabled
$> kubectl create -f https://raw.githubusercontent.com/istio/istio/\
release-1.0/samples/bookinfo/platform/kube/bookinfo.yaml
$> kubectl create -f https://raw.githubusercontent.com/istio/istio/\
release-1.0/samples/bookinfo/networking/bookinfo-gateway.yaml
$> kubectl apply -f https://raw.githubusercontent.com/istio/istio/\
release-1.0/samples/bookinfo/networking/destination-rule-all-mtls.yaml
product page -http://IP:31380/productpage
$> kubectl -n istio-system get service istio-ingressgateway \
-o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'
#istio metrics - http://IP:3000
$> kubectl -n istio-system port-forward --address 0.0.0.0 $(kubectl \
-n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000
istio tracing - http://IP:16686
$> kubectl -n istio-system port-forward --address 0.0.0.0 $(kubectl \
-n istio-system get pod -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 16686:16686
istio mesh - http://IP:8088/force/forcegraph.html
$> kubectl -n istio-system port-forward --address 0.0.0.0 $(kubectl \
-n istio-system get pod -l app=servicegraph \
-o jsonpath='{.items[0].metadata.name}') 8088:8088
$> kubectl apply -f https://raw.githubusercontent.com/istio/istio/\
release-1.0/samples/bookinfo/networking/virtual-service-all-v1.yaml
login as jason || login as caglar
$> kubectl apply -f https://raw.githubusercontent.com/istio/istio/\
release-1.0/samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
$> kubectl delete -f https://raw.githubusercontent.com/istio/istio/\
release-1.0/samples/bookinfo/networking/virtual-service-all-v1.yaml