Looking for documentation about ISTIO in K3S

Hi all,
I’m starting to use K3S to setup a development framework for microservices deployed on kubernetes.

Now I’m looking for documentation on how to install ISTIO on K3S (helm charts, instructions, …).

Up to now I have a K3S cluster (master and agent) on two LXD containers

sysop@hoseplak3s:~/software$ lxc list
+------------+---------+-----------------------+------+------------+-----------+
|    NAME    |  STATE  |         IPV4          | IPV6 |    TYPE    | SNAPSHOTS |                                                                                                
+------------+---------+-----------------------+------+------------+-----------+                                                                                                
| k3s-agent  | RUNNING | 10.42.1.1 (cni0)      |      | PERSISTENT |           |                                                                                                
|            |         | 10.42.1.0 (flannel.1) |      |            |           |                                                                                                
|            |         | 10.185.161.232 (eth0) |      |            |           |                                                                                                
+------------+---------+-----------------------+------+------------+-----------+                                                                                                
| k3s-server | RUNNING | 10.42.0.1 (cni0)      |      | PERSISTENT |           |
|            |         | 10.42.0.0 (flannel.1) |      |            |           |
|            |         | 10.185.161.224 (eth0) |      |            |           |
+------------+---------+-----------------------+------+------------+-----------+

sysop@hoseplak3s:~/software$ kubectl get node -o wide        
NAME         STATUS   ROLES    AGE   VERSION         INTERNAL-IP      EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
k3s-agent    Ready    worker   9d    v1.14.3-k3s.1   10.185.161.232   <none>        Ubuntu 18.04.2 LTS   4.18.0-25-generic   containerd://1.2.5+unknown
k3s-server   Ready    <none>   10d   v1.14.3-k3s.1   10.185.161.224   <none>        Ubuntu 18.04.2 LTS   4.18.0-25-generic   containerd://1.2.5+unknown

I installed the kubernetes dashboard.

And now I want to install ISTIO and a sample workload

Any instruction, documentation, examples around?

There isn’t any k3s specific documentation for that. You should just follow Istio documentation for installing into a normal k8s cluster.

If you run into any bugs, let us know. I’m told there either is or was a bug related to a pod not being able to query the kubernetes API, but don’t know offhand if it was fixed in the last release.

@erikwilson do you know?

There is an issue with knative that should be fixed in k3s v0.7.0-rc1, the istio install docs for knative may be helpful: https://knative.dev/docs/install/installing-istio/#installing-istio

Well,
I tried the instructions at Istio - option 2 (helm + tiller).
Tried the default proile and the default profile + cni.
Either ended with two pod in CrashLoopBackOff state and the istio-ingressgateway remains in state pending

istio-ingressgateway    LoadBalancer  10.43.152.220  <pending>    15020:31009/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:30194/TCP,15030:30554/TCP,15031:32493/TCP,15032:30730/TCP,15443:30030/TCP  110s

This is why I asked in another post what are the usage for cni0 and flannel.1
Will istio utilize these interfaces or have it to create new interfaces?

I tried the installation form the kvm machine where there is a kubectl interfacing the cluster.
Have I to try the installation from inside the LXD corntainer that hosts K3S master?

It may be that k3s needs to run with the --no-deploy traefik flag for the istio LoadBalancer to work. It will probably be easiest to get help from Rancher user slack (https://slack.rancher.io/) for some of the general kubernetes/istio/k3s questions.

Opened a thread on slack.
I’ll report here the results.

Did you end up making any progress?

Well, after some effort and the help of many kind people I ended up with:

  • Never use LXD for installing kubernetes (in this case K3S)
  • success in installing K3S in a KVM virtual machine along with: kubernetes dashboard, istio, kiali, grafana, tracing and the demo application bookinfo
  • now I’m trying to replicate the installation but using a KVM vm for K3S server and another KVM vm for K3S agent (now I have the base master / agent working and I have to do the rest of installation)
  • in any case I’ll use the single machine installation as a reference to avoid problems related to multinode for the next installations

During this process I wrote a step-by-step manual (sorry it is in italian - but you can copy/paste the commands). If it can be interesting I can share it

If you could share what you’ve come up with to integrate k3s + istio that would be just great!
Right now me and my colleagues are looking into this kind of configuration for our docker-based environments

Hi Nils,
at this link

you can download a step-by-stp guide to setup the environment.
Sorry, it is in Italian; but you can copy and paste the commands.
Hope this helps