Istio | Provides Istio implementation on Kubernetes | Cloud library

 by   mirfanmcs Java Version: Current License: No License

kandi X-RAY | Istio Summary

kandi X-RAY | Istio Summary

Istio is a Java library typically used in Cloud applications. Istio has no bugs and it has low support. However Istio has 11 vulnerabilities and it build file is not available. You can download it from GitHub.

Following is the Service Mesh for billing appliation. Source code is in the respective folders. For more information on Kubernetes visit For more information on Istio visit
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              Istio has a low active ecosystem.
              It has 5 star(s) with 1 fork(s). There are 2 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              Istio has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of Istio is current.

            kandi-Quality Quality

              Istio has no bugs reported.

            kandi-Security Security

              Istio has 11 vulnerability issues reported (0 critical, 8 high, 2 medium, 1 low).

            kandi-License License

              Istio does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              Istio releases are not available. You will need to build from source code and install.
              Istio has no build file. You will be need to create the build yourself to build the component from source.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi has reviewed Istio and discovered the below as its top functions. This is intended to give you an instant insight into Istio implemented functionality, and help decide if they suit your requirements.
            • Get billing service information for an account
            • Get BillSummary for an account
            • String representation of this transaction .
            • Get BillDto Bill
            • Returns customer by id
            • Return all transactions associated with an account
            • Get the customer by id
            • The rest template .
            • Entry point for the spring application .
            Get all kandi verified functions for this library.

            Istio Key Features

            No Key Features are available at this moment for Istio.

            Istio Examples and Code Snippets

            No Code Snippets are available at this moment for Istio.

            Community Discussions

            QUESTION

            How do you do GRPC authentication in an istio mTLS setup?
            Asked 2021-Jun-15 at 14:41

            I have bunch of GRPC microservices and they are using self signed certs. I add authentication info to the GRPC channel which is then used to identify endpoints and provide right services.

            Now I want migrate to Istio mTLS.

            In phase one, I got Istio to BYPASS all GRPC connections and my services works as it is now.

            In Phase two, I want to hand off TLS to Istio, but I am stuck on how to pass the authentication information to GRPC?

            How do you handle auth in Istio mTLS setup?

            GRPC can support other authentication mechanisms Has anyone used this to inject Istio auth info to GRPC? any other suggestions on how you implemented this in your setup

            I am using go-lang just in case if this can be useful to provide any additional information.

            Thanks

            ...

            ANSWER

            Answered 2021-Jun-11 at 09:21

            One way of doing this is using grpc.WithInsecure(), this way you don't have to add certificates to your services, since istio-proxy containers in your pods will TLS terminate any incoming connections.

            Client side:

            Source https://stackoverflow.com/questions/67929723

            QUESTION

            mTLS origination for egress traffic with custom mTLS between istio-proxy and egress gateway
            Asked 2021-Jun-09 at 08:40

            Our Security Dept requirement on egress traffic is very strict: Each app inside POD must go through some proxy with mTLS authentication (app-proxy) using dedicated cert for the app. They're suggesting using squid with tunneling to cope with double mTLS (one for proxy and the other one for the specific traffic app-server), but then we forced the app to be ssl-aware. Istio can come in and do the job but using out-of-the-box ISTIO_MUTUAL mode (between istio-proxy and egress gateway) is not the case for us.

            So, I've tried using example Configure mutual TLS origination for egress traffic by modifying it a bit as follows (changes marked with #- and #+):

            ...

            ANSWER

            Answered 2021-Jun-09 at 08:40

            OK, finally I've solved it. The key point here is the part of DestinationRule spec, which says:

            • credentialName -> NOTE: This field is currently applicable only at gateways. Sidecars will continue to use the certificate paths.

            So I've modified the following manifests:

            client deployment of sleep.yml (to mount certs)

            Source https://stackoverflow.com/questions/67870085

            QUESTION

            How to configure DNS for KNative when there isn't an External IP but there is an istio-ingressgateway?
            Asked 2021-Jun-08 at 03:30

            The knative docs describe the following:

            To configure DNS for Knative, take the External IP or CNAME from setting up networking, and configure it with your DNS provider as follows

            • If the networking layer produced an External IP address, then configure a wildcard A record for the domain:

              # Here knative.example.com is the domain suffix for your cluster

              *.knative.example.com == A 35.233.41.212

            • If the networking layer produced a CNAME, then configure a CNAME record for the domain:

              # Here knative.example.com is the domain suffix for your cluster

              *.knative.example.com == CNAME a317a278525d111e89f272a164fd35fb-1510370581.eu-central-1.elb.amazonaws.com

            However, my environment doesn't have an external load balancer and hence no EXTERNAL-IP:

            ...

            ANSWER

            Answered 2021-May-31 at 18:53

            Setting up DNS as follows works ok so far for me:

            Source https://stackoverflow.com/questions/67766104

            QUESTION

            istio-ingressgateway always Waiting for Istio Pilot information
            Asked 2021-Jun-07 at 12:38

            I'm trying to deploy kubeflow on and OVH managed k8 cluster.

            After the initial setup of the k8 cluster, I ran the following commands to install kubeflow, as suggested here:

            ...

            ANSWER

            Answered 2021-Jun-07 at 12:38

            This seems like a bug. Incredibly, it's mentioned in the video (at 6:40), but not in the docs. It's also not actually written anywhere on the video. Wonderful.

            You need to open a terminal on the machine with kubectl installed, then run:

            Source https://stackoverflow.com/questions/67870241

            QUESTION

            Canary rollouts with linkerd and argo rollouts
            Asked 2021-Jun-03 at 13:14

            I'm trying to configure a canary rollout for a demo, but I'm having trouble getting the traffic splitting to work with linkerd. The funny part is I was able to get this working with istio and i find istio to be much more complicated then linkerd.

            I have a basic go-lang service define like this:

            ...

            ANSWER

            Answered 2021-Jun-03 at 05:06

            After reading this: https://linkerd.io/2.10/tasks/using-ingress/ I discovered you need to modify your ingress controller with a special annotation:

            Source https://stackoverflow.com/questions/67813550

            QUESTION

            Shared istio egress gateway in multi-cluster/multi-primary mesh
            Asked 2021-Jun-01 at 12:52

            We are trying to setup an egress gateway in a multi-cluster/multi-primary mesh configuration where the egress gateway is located in only one cluster but used from both.

            diagram of desired setup

            The use case is that the clusters are in different network zones and we want to be able to route traffic to one zone transparently to the clients in the other zone.

            We followed this guide in one cluster and it worked fine. However we have trouble setting up the VirtualService in the second cluster to use the egress gateway in the first cluster.

            When deploying the following virtual service to the second cluster we get 503 with cluster_not_found.

            ...

            ANSWER

            Answered 2021-May-31 at 14:52

            According to the comments the solution should works as below:

            To create a multi-cluster deployment you can use this tutorial. In this situation cross cluster workload of normal services works fine. However, there is a problem with getting the traffic to the egress gateway routed via the eastwest gateway. This can be solved with this example. You should also change kind: VirtualService to kind: ServiceEntry in both clusters.

            Like Tobias Henkel mentioned:

            I got it to work fine with the service entry if I target the ingress gateway on ports 80/443 which then dispatches further to the mesh external services.

            You can also use Admiral to automate traffic routing.

            See also:

            Source https://stackoverflow.com/questions/67637966

            QUESTION

            Does AWS classic load balancer keeps the SNI after tls termination?
            Asked 2021-May-31 at 10:05

            I have an AWS classic load balancer. Here are my listeners :

            The AWS classic load balancer is doing tls termination, and redirecting the traffic to port 30925 of my nodes
            The process listening on port 30925 is an istio gateway, redirecting traffic afterwards based on the SNI of the request

            However, the AWS classic load balancer doesn't seems to keep the SNI of the request after tls termination

            Is there any documentation regarding the behavior of the load balancer in that situation?
            I found a couple of links talking about SNI (here for example), but it's only talking about the load balancer itself handling the routing of the SNI

            ...

            ANSWER

            Answered 2021-May-31 at 10:05

            Based on the comments.

            If you terminate SSL on the load balancer (LB), SSL-related information is not carried over to your targets. To ensure full SSL-forwarding to your targets, you have to use TCP listener. This way your targets will be responsible for handling SSL, and subsequently will be able to custom process it.

            Source https://stackoverflow.com/questions/67768997

            QUESTION

            How can I retrieve the istio ingress gateway hosts for an HPE Ezmeral Container Platform managed cluster?
            Asked 2021-May-30 at 14:49

            I have configured a K8S cluster with istio-ingressgateway as per the docs.

            Although the HPE Container Platform managed haproxy gateway can route traffic to the istio-ingressgateway, I would like to access the host endpoints directly.

            How can I determine the ingress IP addresses and ports for the hosts avoiding the managed haproxy gateway?

            ...

            ANSWER

            Answered 2021-May-30 at 14:49

            This is how I found the information:

            Source https://stackoverflow.com/questions/67762517

            QUESTION

            Cheap solution for exposing multiple HTTP services in K8s cluster (AWS EKS)
            Asked 2021-May-28 at 10:01

            I'm pretty new to k8s and I'm trying to figure out how to expose to Internet, multiple HTTP services, in cheap manner. Currently I'm using AWS EKS cluster with managed node groups, so the cheap way will be not to provision any kind ELB as it cost. Also I would like those services to be in private subnets so just f.ex only Ingress Resource will be exposed and the nodes will stay private. One load balancer per svc is definitely not an option as it will break down my budget

            The options I consider:

            • Using K8s ingress resources (to be precise: Istio Ingress controller). But the downside of that is, when we creating ingress resource, AWS create Load Balancer for which I will need to pay.

            • Run node groups in public subnets, and create K8s Services of type NodePort so I could reach service using NodeIP:NodePort (NodePort will be specific for each service). The downside of that I will need to remember all IPs and ports assigned to each service. I can live with one service but when the number increase that will be pretty awful to remember.

            • At last, without any other option is to create one load balancer with public IP and also create Ingress controller with Istio. So I will reach each services by single DNS name of Load Balancer and I will route to services by request path.

            Looking forward to any solution and inputs.

            ...

            ANSWER

            Answered 2021-May-28 at 10:01

            I don't think there is any magic here. Option 1 and 3 are basically one and the same (unless I am missing something). As you pointed out I don't think option 2 is viable for the reasons you call out. You have a number of options to go with. I don't know the Istio ingress (but I assume it will be fine). We often see customers using either the NGINX ingress or the ALB ingress.

            All of these options require a Load Balancer.

            Source https://stackoverflow.com/questions/67726946

            QUESTION

            load testing kubernetes service (with istio service mesh)
            Asked 2021-May-26 at 13:08

            When load testing a kubernetes service where routing is done via istio, all the services in the cluster become unresponsive. This happens when there is 100% failure from the service that is being load tested.

            Is there a way to prevent this? Should we apply istio circuit breaking?

            ...

            ANSWER

            Answered 2021-May-26 at 07:44

            In short, yes. Circuit Breaker pattern was designed for detecting when the endpoint is responding slowly or not responding at all.

            Slow responding endpoints are especially troublesome because as you already find out it may cause your system lag. The circuit breaker is a proxy that controls flow to an endpoint. If the endpoint fails or is too slow (based on your configuration), the proxy will open the circuit to the container.

            With connectionPool parameters you can set how many requests you want to be pending over the one that's being established. If you set http1MaxPendingRequests to 1 and maxRequestsPerConnection to 1 any additional requests than that will by denied until the pending request is being processed.

            Another useful option is OutlierDetection. It detects faulty instances and then make it unavailable for a pre-configured time (sometimes called sleep window). While the container is in that period of time its excluded from routing and loadbalancing and has time to recover while not being overloaded with more requests.

            Source https://stackoverflow.com/questions/67697727

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            A NULL pointer dereference was found in pkg/proxy/envoy/v2/debug.go getResourceVersion in Istio pilot before 1.5.0-alpha.0. If a particular HTTP GET request is made to the pilot API endpoint, it is possible to cause the Go runtime to panic (resulting in a denial of service to the istio-pilot application).
            In Istio 1.5.0 though 1.5.8 and Istio 1.6.0 through 1.6.7, when users specify an AuthorizationPolicy resource with DENY actions using wildcard suffixes (e.g. *-some-suffix) for source principals or namespace fields, callers will never be denied access, bypassing the intended policy.
            Istio through 1.5.1 and Envoy through 1.14.1 have a data-leak issue. If there is a TCP connection (negotiated with SNI over HTTPS) to *.example.com, a request for a domain concurrently configured explicitly (e.g., abc.example.com) is sent to the server(s) listening behind *.example.com. The outcome should instead be 421 Misdirected Request. Imagine a shared caching forward proxy re-using an HTTP/2 connection for a large subnet with many users. If a victim is interacting with abc.example.com, and a server (for abc.example.com) recycles the TCP connection to the forward proxy, the victim's browser may suddenly start sending sensitive data to a *.example.com server. This occurs because the forward proxy between the victim and the origin server reuses connections (which obeys the specification), but neither Istio nor Envoy corrects this by sending a 421 error. Similarly, this behavior voids the security model browsers have put in place between domains.
            Istio 1.1.x through 1.1.6 has Incorrect Access Control.
            Istio before 1.2.2 mishandles certain access tokens, leading to "Epoch 0 terminated with an error" in Envoy. This is related to a jwt_authenticator.cc segmentation fault.
            Istio 1.4.x before 1.4.9 and Istio 1.5.x before 1.5.4 contain the following vulnerability when telemetry v2 is enabled: by sending a specially crafted packet, an attacker could trigger a Null Pointer Exception resulting in a Denial of Service. This could be sent to the ingress gateway or a sidecar, triggering a null pointer exception which results in a denial of service. This also affects servicemesh-proxy where a null pointer exception flaw was found in servicemesh-proxy. When running Telemetry v2 (not on by default in version 1.4.x), an attacker could send a specially crafted packet to the ingress gateway or proxy sidecar, triggering a denial of service.
            Istio versions 1.2.10 (End of Life) and prior, 1.3 through 1.3.7, and 1.4 through 1.4.3 allows authentication bypass. The Authentication Policy exact-path matching logic can allow unauthorized access to HTTP paths even if they are configured to be only accessed after presenting a valid JWT token. For example, an attacker can add a ? or # character to a URI that would otherwise satisfy an exact-path match.
            An issue was discovered in Istio 1.3 through 1.3.6. Under certain circumstances, it is possible to bypass a specifically configured Mixer policy. Istio-proxy accepts the x-istio-attributes header at ingress that can be used to affect policy decisions when Mixer policy selectively applies to a source equal to ingress. To exploit this vulnerability, someone has to encode a source.uid in this header. This feature is disabled by default in Istio 1.3 and 1.4.
            Istio 1.3.x before 1.3.5 allows Denial of Service because continue_on_listener_filters_timeout is set to True, a related issue to CVE-2019-18836.
            Envoy 1.12.0 allows a remote denial of service because of resource loops, as demonstrated by a single idle TCP connection being able to keep a worker thread in an infinite busy loop when continue_on_listener_filters_timeout is used."
            Istio before 1.1.13 and 1.2.x before 1.2.4 mishandles regular expressions for long URIs, leading to a denial of service during use of the JWT, VirtualService, HTTPAPISpecBinding, or QuotaSpecBinding API.

            Install Istio

            You can deploy on your local Kubernetes cluster or can use minikube.
            CD into the Istio insall directory on your machine.
            All Pods should either be completed or running. Alls services deployed.

            Support

            Here we are calling istioctl kube-inject to manually inject Envoy containers in our application pod before deploying them.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/mirfanmcs/Istio.git

          • CLI

            gh repo clone mirfanmcs/Istio

          • sshUrl

            git@github.com:mirfanmcs/Istio.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Cloud Libraries

            Try Top Libraries by mirfanmcs

            OnlineStore

            by mirfanmcsC#

            CKAD-Certification

            by mirfanmcsJava

            irfanstore-apigateway

            by mirfanmcsJava

            product-service

            by mirfanmcsJava