We are using istio as ingress and service mesh , also we have sidecar injection in all pods
NLB —> ingressgateway----->pods
with 1.5.2 , we realised we dont need any other pod except for ingressgatewya and istiod .
Sidecar injection is being done by istiod itself .
I am wondering in what scenario would anyone want to run control plane components in addition to istiod . Also can someone please let me know how to increase replica cound for ingressgatway . I was able to figure out for istiod
istioctl manifest apply --set values.pilot.autoscaleMin=3 --set values.gateways.istio-ingressgateway.type=NodePort --set values.prometheus.hub=abc.com --set values.global.hub=abc.com
Tried the above but didn’t work . I m using istio-1.5.2 . Later tried by running the below , where /tmp/gate is the istio operatior definition of gateway . chnaged the count there . It ran successfully
istioctl manifest apply --set values.pilot.autoscaleMin=4 --set values.gateways.istio-ingressgateway.type=NodePort --set values.prometheus.hub=abc.com --set values.global.hub=abc.com -f /tmp/gate -f /tmp/pilot .
Issue is
As you see above i used --set directive as well as the -f for istio operator . During upgrade istio doc say
istioctl upgrade -f <your-custom-configuration-file> <your-custom-configuration-file> is the IstioOperator API Configuration file you used to customize the installation of the currently-running version of Istio. istioctl upgrade does not support the --set flag. Therefore, if you installed Istio using the --set command, create a configuration file with the equivalent configuration options and pass it to the istioctl upgrade command using the -f flag instead.
Now if i generate the manifest of the command i ran above which is combination of -f and --set .
The upgrade gives error
Error: failed to generate IOPS from file [/tmp/istio-release], error: could not overlay user config over base: json merge error (Invalid JSON Patch) for base object:
So wondering , istio installtion should only be done using either --set (helm thingy ) OR by chaning the istio api operator as combination seems to give error . this is critcal as it might halt future upgrade
it work for me. i give 2 istio-ingressgateway pod. you sould do
istioctl profile dump demo
to see the config of demo.
on upgrade i also have a problem see this https://discuss.istio.io/t/warnings-during-istio-upgrade-1-4-1-5/6083 i alredy post on this but stil stuck here.
There probably is no wrong way, but I use config files as you can store them in git.
I have one general file that I use on all clusters, and then a cluster-specific file for each k8s cluster…
NOTES:
In this example, I disable the default ingress-gateway and deploy custom ones…
always run more than copy of istiod, ingress-gateway, egress-gateway etc, as described in the docs, so you dont have outages when upgrading your istio version
Example Usage: istioctl manifest apply -f istioctl_general_values.yaml -f istioctl_specific_values.yaml