Skip to content
Snippets Groups Projects
Select Git revision
  • aecfa970c9ec1e5adfaa55ad9b00e04268354dcc
  • main default protected
  • release-0.15
  • automated-updates-main
  • release-0.13
  • automated-updates-release-0.13
  • release-0.14
  • release-0.10
  • release-0.11
  • release-0.12
  • fix-versions-action
  • versions-fix
  • release-0.9
  • release-0.8
  • release-0.7
  • release-0.6
  • release-0.5
  • release-0.4
  • release-0.3
  • release-0.1
  • release-0.2
  • v0.15.0
  • v0.14.0
  • v0.13.0
  • v0.12.0
  • v0.11.0
  • v0.10.0
  • v0.9.0
  • v0.8.0
  • v0.7.0
  • v0.6.0
  • v0.5.0
  • v0.4.0
  • v0.3.0
  • v0.2.0
  • v0.1.0
36 results

EKS-cni-support.md

Blame
  • EKS-cni-support.md 1.84 KiB

    CNI monitoring special configuration updates for EKS

    AWS EKS uses CNI networking plugin for pod networking in Kubernetes using Elastic Network Interfaces on AWS

    One fatal issue that can occur is that you run out of IP addresses in your eks cluster. (Generally happens due to error configs where pods keep scheduling).

    You can monitor the awscni using kube-promethus with : [embedmd]:# (../examples/eks-cni-example.jsonnet)

    local kp = (import 'kube-prometheus/main.libsonnet') +
               (import 'kube-prometheus/platforms/eks.libsonnet') + {
      values+:: {
        common+: {
          namespace: 'monitoring',
        },
      },
      kubernetesControlPlane+: {
        prometheusRuleEksCNI+: {
          spec+: {
            groups+: [
              {
                name: 'example-group',
                rules: [
                  {
                    record: 'aws_eks_available_ip',
                    expr: 'sum by(instance) (awscni_total_ip_addresses) - sum by(instance) (awscni_assigned_ip_addresses) < 10',
                  },
                ],
              },
            ],
          },
        },
      },
    };
    
    { ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +
    { ['0prometheus-operator-' + name]: kp.prometheusOperator[name] for name in std.objectFields(kp.prometheusOperator) } +
    { ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } +
    { ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +
    { ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
    { ['prometheus-adapter-' + name]: kp.prometheusAdapter[name] for name in std.objectFields(kp.prometheusAdapter) }

    After you have the required yaml file please run

    kubectl apply -f manifests/prometheus-serviceMonitorAwsEksCNI.yaml