Setup

Q: Kubernetes - How do I check if my cluster has enabled the alpha features required for automatic sidecar injection?

Automatic sidecar injection requires the initializer alpha feature. Run the following command to check if the initializer has been enabled (empty output indicates that initializers are not enabled):

kubectl api-versions | grep admissionregistration

In addition, the Kubernetes API server must be started with the Initializer plugin enabled. Failure to enable the Initializer plugin will result in the following error when trying to create the initializer deployment.

The Deployment “istio-initializer” is invalid: metadata.initializers.pending: Invalid value: “null”: must be non-empty when result is not set

Q: Kubernetes - How can I debug problems with automatic sidecar injection?

Ensure that your cluster has met the prerequisites for the automatic sidecar injection. If your microservice is deployed in kube-system, kube-public or istio-system namespaces, they are exempted from automatic sidecar injection. Please use a different namespace instead.

Q: Kubernetes - Can I migrate an existing installation from Istio v0.1.x to v0.2.x?

Upgrading from Istio 0.1.x to 0.2.x is not supported. You must uninstall Istio v0.1, including pods with Istio sidecars and start with a fresh install of Istio v0.2.

Q: Consul - My application isn't working, where can I troubleshoot this?

Please ensure all required containers are running: etcd, istio-apiserver, consul, registrator, pilot. If one of them is not running, you may find the {containerID} using docker ps -a and then use docker logs {containerID} to read the logs.

Q: Consul - How do I unset the context changed by istioctl at the end?

Your kubectl is switched to use the istio context at the end of the istio context-create command. You can use kubectl config get-contexts to obtain the list of contexts and kubectl config use-context {desired-context} to switch to use your desired context.

Q: Eureka - My application isn't working, where can I troubleshoot this?

Please ensure all required containers are running: etcd, istio-apiserver, consul, registrator, istio-pilot. If one of them is not running, you may find the {containerID} using docker ps -a and then use docker logs {containerID} to read the logs.

Q: Eureka - How do I unset the context changed by `istioctl` at the end?

Your kubectl is switched to use the istio context at the end of the istio context-create command. You can use kubectl config get-contexts to obtain the list of contexts and kubectl config use-context {desired-context} to switch to use your desired context.