Skip to content
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

Improve Cilium integration with managed Kubernetes providers #16631

Merged
merged 5 commits into from
Jul 1, 2021

Commits on Jul 1, 2021

  1. pkg/k8s: replace GetNode instances with a k8s store

    Polling the k8s node from kube-apiserver to retrieve its state has some
    scalability concerns, specially in large clutser. To avoid these
    concerns we will start using a k8s node cache which will receive the
    node events as they come and will have the most up to date node resource
    in its local cache.
    
    As the slim Node structure does not contain all the fields from Core V1
    Node, which are essential in case we want to perform an Update of this
    retrieved Node into kube-apiserver, this commit switches the usage of
    slim Node to kubernetes' core v1.Node. It is safe to perform this
    switch since the K8s Node watcher is only watching for a single node,
    itself.
    
    Signed-off-by: André Martins <andre@cilium.io>
    aanm committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    086530c View commit details
    Browse the repository at this point in the history
  2. pkg/k8s: remove node.cilium.io/agent-not-ready taint from nodes

    In some environments, usually in cloud providers, Cilium is deployed on
    a cluster that has a pre-installed CNI plugin installed. This default
    installation can cause Pods to have their network managed by that CNI
    plugin. This results in certain Pods from being unmanaged by Cilium
    which are often undetected by users.
    
    To guarantee that Pods are only scheduled when Cilium has configured the
    node, Cilium will remove an existing taint used for this purpose:
    'node.cilium.io/agent-not-ready'. This taint should be created on
    cluster creation for users that want to use this functionality.
    
    Suggested-by: Timo Beckers <timo@isovalent.com>
    Signed-off-by: André Martins <andre@cilium.io>
    aanm committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    af4f21e View commit details
    Browse the repository at this point in the history
  3. docs: re-write docs to create clusters with tainted nodes

    As Cilium will remove the node taint
    'node.cilium.io/agent-not-ready=true:NoSchedule' once it is up and
    ready, the documentation has all the necessary steps for users to create
    clusters using that taint. Having nodes created with this taint will
    prevent pods from being scheduled into those nodes until Cilium had
    configured the node where it's being deployed.
    
    Signed-off-by: André Martins <andre@cilium.io>
    aanm committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    e069d29 View commit details
    Browse the repository at this point in the history
  4. .github/workflows: create cloud clusters with node taints

    To replicate the same steps as users do, GH workflows will now create
    clusters with node taints for which Cilium will remove them once it's
    ready in that node.
    
    Signed-off-by: André Martins <andre@cilium.io>
    aanm committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    33323d9 View commit details
    Browse the repository at this point in the history
  5. docs: remove restartPods option from node init

    With a node taint setup on node creation, users will no longer be
    required to restart application pods since application pods will only
    start when Cilium is deployed and running in the cluster.
    
    Signed-off-by: André Martins <andre@cilium.io>
    aanm committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    4a5a070 View commit details
    Browse the repository at this point in the history