Giter Site home page Giter Site logo

Comments (4)

Bo98 avatar Bo98 commented on May 25, 2024

The 0.0.0.0 thing doesn't break anything since it fails to remove it anyway: #85

Basically what happens is the removal of the original IP and the assignment of the new IP is a two step operation: delete the old access config and add the new access config. During this time, internet connection is unavailable from the node.

When kubeIP deletes an IP, it issues another request to wait until it is done:

err = waitForCompilation(projectID, zone, op)

The wait operation is terminated when the internet connection is lost (the network interface is reloaded I think, so all open connections are dropped). kubeIP sees this as an error and aborts before it can add the new IP, leaving it in the state where it is now.

At this point a new IP can't be added because of two reasons:

  • Connections to the Google API requires an internet connection. This however can be worked around. You can create a VPC network that has Private Google Access enabled, and have a private DNS zone that provides the IPs for either private.googleapis.com or restricted.googleapis.com and CNAME *.googleapis.com to one of those.
  • Connection to the Kubenetes master control plane also requires an internet connection. This cannot be worked around AFAIK. You would need VPC network peering between the two networks and since the control plane is managed by Google, there's no option to do this. What kubeIP could do here is instead of allowing the error on the wait operation to abort back to the start, it could try just retry the wait request or something similar. At this point, connection to the Kubernetes control plane is not actually necessary if it remembers the state where it is at rather than aborting.

This issue only however applies to public clusters. If you create a private cluster this is not an issue because:

  • There is no delete IP operation necessary
  • Private Google Access is enabled and configured by default
  • A VPC peering connection to the control plane exists

so no functional external internet connection is required at all for private clusters.

(yes, this is basically me dumping my personal experience here for anyone who may need it)

from kubeip.

Hax7 avatar Hax7 commented on May 25, 2024

@Bo98 So KubeIP does not work for public clusters?

from kubeip.

Bo98 avatar Bo98 commented on May 25, 2024

When assiging an IP to the node it's running on, no, at least not currently. If you must use a public cluster you'll need to run kubeIP on a separate node.

Private clusters were fine for my case, since you can still assign a public IP for public access to whatever's running in the container.

from kubeip.

alexei-led avatar alexei-led commented on May 25, 2024

fixed with KubeIP v2

from kubeip.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.