Istio resiliency


#1

Is there any way to configure istio via helm or something (without manually touching deployments) to scale (or perhaps setting them as DaemonSet). I’ve just had half of my istio plane fail because of a single node failure. What are best practices on this?


#2

Customize your helm install? You can do this while installing using helm - https://github.com/istio/istio/blob/406e15e8ca3fc8ba7281cd156b10db58afe40f91/install/kubernetes/helm/istio/README.md#configuration

I usually edit the values directly in the deployment templates (also the HPA) inside the subcharts.


#3

I think that the best way to customize isito is to use a values.yaml file.
You have to define a yaml file to override default values in $ISTIO_HOME/install/kubernetes/helm/istio/values.yaml.

For example:

global:
   proxy:
    privileged: true
grafana:
  enabled: true

servicegraph:
  enabled: true

tracing:
  enabled: true

kiali:
  enabled: true
  tag: v0.13

Then apply the change as following:

helm install -f values.yaml $ISTIO_HOME/install/kubernetes/helm/istio --name istio --namespace $ISTIO_NAMESPACE

Or (if Istio is already installed):

Helm upgrade -f values.yaml istio $ISTIO_HOME/install/kubernetes/helm/istio

It’s also a good practice to define a value file for each of your environments : value-prod.yaml, values-staging.yaml, values-dev.yaml

I would not recommend to change directly the deployment templates. I would prefer in this case to raise an issue with the use case so values will be extracted and provided for customization in the future version of the chart if the use case is pertinent.


#4

Question is does the chart support values for deployment types (daemonset, deployment), scale and similar?

Is there an “official” way for that or do i need to fork the chart?


#5

Yes, every parameterized value in subcharts ($ISTIO_HOME/install/kubernetes/helm/istio/charts) could be overridden. Let’s say that you want to customize the replicaCount for pilot ($ISTIO_HOME/install/kubernetes/helm/istio/charts/pilot/template/deployment.yaml)

spec:
 replicas: {{ .Values.replicaCount }}
 template:
   metadata:
     labels:
       istio: pilot
       app: pilot

This is should be doable by putting the following lines in your values.yaml

pilot:
 replicaCount: 3

This way, all customization go through values.yaml file and you don’t need to override subcharts template files.


#6

Does the question is: can we replace deployment by Daemonset?


#7

I see now that values are in subcharts, How do i override the values of a subchart?
Do i use:

subchartname:
    value: x

Also there is no way to deploy it as DaemonSet as far I see @Julien_Senon

I will make a git request


#8

yes, that’s how helm works.


#9

Thanks for info.

Here i have opened a git issue regarding the Daemonset and disscussion about that, feel free to join: