-
Notifications
You must be signed in to change notification settings - Fork 7.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[EKS + Weave + Istio]Error creating: Internal error occurred: failed calling webhook "sidecar-injector.istio.io": Post https: //istio-sidecar-injector.istio-system.svc:443/inject?timeout=30s: net/http: request canceled while waiting for connection (Client.Timeout exceeded while await ing headers) #16434
Comments
Since the port 443 between control plane and the worker nodes are enabled by default, I began to suspect whether the issue is due to the overlay network by Weave on EKS. But I am not sure and that's why I raised this issue here. However, my another k8s cluster setup by |
Just made another try, and find the manual injection works.
So this looks like the sidecar-injector webhook not work. However, this blog Amazon claims EKS added the support to the webhook/controller. And I still cannot create
Really confused, anyone has idea? |
@hustshawn Been trying to get this to work for days. I ran into this, you actually need to run both the AWS and WeaveNet CNIs in parallel (pods with multiple network interfaces). This can be accomplished with CNI-Genie. The reason for this is that the validation webhooks Istio uses cannot be sent from the control plane to the WeaveNet subnet CIDR range. Here's how I did it:
Once I did that, the post-install-security job and sidecar-injection worked. I've now encountered another problem though. While pods can reach each other using the WeaveNet IPs, they are unable to reach any service (ClusterIP) IPs which map to WeaveNet IPs. Did you run into anything like that? |
@cmanzi I did not try your solution, but I suppose I understand your solution. You are assuming the istio component will utilize the CNIs, while other applications use weave. However, in terms of the problem you encountered, this is totally not acceptable. I think this should be a compatibility issue between Amazon EKS and Istio. There is almost little thing I can do as a basic user, or too much hacky way may incur more unexpected result. By the way, I found a document that AWS shows EKS work with Istio, and the truth is they just disabled the sidecar-injection by |
i have the problem , cannot create gateway and virtualservice , auto inject is failed ;
|
use Manual inject , but can not create virtualservice, error message is
|
Hey all, thanks for the reports. We are tracking and actively working on this issue in #13840. Lets consolidate this in one place to make things easier. Thanks! |
this problem is not solved how did @howardjohn closed the issue |
@howardjohn - Is this issue fixed ? I get the same error Can someone please let me know how to fix this issue ? |
(NOTE: This is used to report product bugs:
To report a security vulnerability, please visit https://istio.io/about/security-vulnerabilities/
To ask questions about how to use Istio, please visit https://discuss.istio.io
)
Bug description
If auto-inject is labeled in a namespace, and no pod will spawn. The error on the corresponding rs is
Error creating: Internal error occurred: failed calling webhook "sidecar-injector.istio.io": Post https: //istio-sidecar-injector.istio-system.svc:443/inject?timeout=30s: net/http: request canceled while waiting for connection (Client.Timeout exceeded while await ing headers)
The problem is basically similar as the issue Admission control webhooks (e.g. sidecar injector) don't work on EKS old_issues_repo#271. I found the conclusion for this issue is to open port 443 between worker nodes and control plane. But it does not work for my case.
Unable to create the traffic management resource gw/vs/dr
eg.
The output is
Error from server (Timeout): error when creating "STDIN": Timeout: request did not complete within requested timeout 30s
, and the resource failed to create.Actually, my K8S cluster is a little bit tricky. I DISABLED the CNI for AWS.
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[x ] User Experience
[x ] Developer Infrastructure
Expected behavior
The sidecar can be successfully injected.
Steps to reproduce the bug
The process I setup the EKS clsuter:
kubectl
kubectl delete deploy/aws-node -n kube-system
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
--use-max-pods=false; sed -i 's/"maxPods":.*/"maxPods": 200/' /etc/kubernetes/kubelet/kubelet-config.json; systemctl restart kubelet;
.cluster-admin
permission (for simple use this case)===
Label namespace
default
kubectl label namespace default istio-injection=enabled
Setup Application
Version (include the output of
istioctl version --remote
andkubectl version
)How was Istio installed?
Using Helm
Environment where bug was observed (cloud vendor, OS, etc)
AWS EKS.
Additionally, please consider attaching a cluster state archive by attaching
the dump file to this issue.
The text was updated successfully, but these errors were encountered: