update example
This commit is contained in:
@@ -5,14 +5,60 @@ AWS EKS uses [CNI](https://github.com/aws/amazon-vpc-cni-k8s) networking plugin
|
|||||||
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).
|
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 :
|
You can monitor the `awscni` using kube-promethus with :
|
||||||
```
|
[embedmd]:# (../examples/eks-cni-example.jsonnet)
|
||||||
local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') +
|
```jsonnet
|
||||||
(import 'kube-prometheus/kube-prometheus-aws-eks-cni.libsonnet') +
|
local kp = (import 'kube-prometheus/kube-prometheus-eks.libsonnet') + {
|
||||||
{
|
local service = kp.core.v1.service,
|
||||||
|
local servicePort = kp.core.v1.service.mixin.spec.portsType,
|
||||||
_config+:: {
|
_config+:: {
|
||||||
# ... config here
|
namespace: 'monitoring',
|
||||||
}
|
},
|
||||||
|
prometheus+: {
|
||||||
|
AwsEksCniMetricService:
|
||||||
|
service.new('aws-node', { 'k8s-app' : 'aws-node' } , servicePort.newNamed('cni-metrics-port', 61678, 61678)) +
|
||||||
|
service.mixin.metadata.withNamespace('kube-system') +
|
||||||
|
service.mixin.metadata.withLabels({ 'k8s-app': 'aws-node' }) +
|
||||||
|
service.mixin.spec.withClusterIp('None'),
|
||||||
|
serviceMonitorAwsEksCNI:
|
||||||
|
{
|
||||||
|
apiVersion: 'monitoring.coreos.com/v1',
|
||||||
|
kind: 'ServiceMonitor',
|
||||||
|
metadata: {
|
||||||
|
name: 'awsekscni',
|
||||||
|
namespace: kp.namespace,
|
||||||
|
labels: {
|
||||||
|
'k8s-app': 'eks-cni',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
spec: {
|
||||||
|
jobLabel: 'k8s-app',
|
||||||
|
selector: {
|
||||||
|
matchLabels: {
|
||||||
|
'k8s-app': 'aws-node',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
namespaceSelector: {
|
||||||
|
matchNames: [
|
||||||
|
'kube-system',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
endpoints: [
|
||||||
|
{
|
||||||
|
port: 'cni-metrics-port',
|
||||||
|
interval: '30s',
|
||||||
|
path: '/metrics',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
{ ['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) } +
|
||||||
|
{ ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
|
||||||
|
{ ['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
|
After you have the required yaml file please run
|
||||||
|
|||||||
55
examples/eks-cni-example.jsonnet
Normal file
55
examples/eks-cni-example.jsonnet
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
local kp = (import 'kube-prometheus/kube-prometheus-eks.libsonnet') + {
|
||||||
|
local service = kp.core.v1.service,
|
||||||
|
local servicePort = kp.core.v1.service.mixin.spec.portsType,
|
||||||
|
_config+:: {
|
||||||
|
namespace: 'monitoring',
|
||||||
|
},
|
||||||
|
prometheus+: {
|
||||||
|
AwsEksCniMetricService:
|
||||||
|
service.new('aws-node', { 'k8s-app' : 'aws-node' } , servicePort.newNamed('cni-metrics-port', 61678, 61678)) +
|
||||||
|
service.mixin.metadata.withNamespace('kube-system') +
|
||||||
|
service.mixin.metadata.withLabels({ 'k8s-app': 'aws-node' }) +
|
||||||
|
service.mixin.spec.withClusterIp('None'),
|
||||||
|
serviceMonitorAwsEksCNI:
|
||||||
|
{
|
||||||
|
apiVersion: 'monitoring.coreos.com/v1',
|
||||||
|
kind: 'ServiceMonitor',
|
||||||
|
metadata: {
|
||||||
|
name: 'awsekscni',
|
||||||
|
namespace: kp.namespace,
|
||||||
|
labels: {
|
||||||
|
'k8s-app': 'eks-cni',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
spec: {
|
||||||
|
jobLabel: 'k8s-app',
|
||||||
|
selector: {
|
||||||
|
matchLabels: {
|
||||||
|
'k8s-app': 'aws-node',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
namespaceSelector: {
|
||||||
|
matchNames: [
|
||||||
|
'kube-system',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
endpoints: [
|
||||||
|
{
|
||||||
|
port: 'cni-metrics-port',
|
||||||
|
interval: '30s',
|
||||||
|
path: '/metrics',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
{ ['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) } +
|
||||||
|
{ ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
|
||||||
|
{ ['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) } +
|
||||||
|
{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|
||||||
local service = k.core.v1.service;
|
|
||||||
local servicePort = k.core.v1.service.mixin.spec.portsType;
|
|
||||||
|
|
||||||
{
|
|
||||||
prometheus+: {
|
|
||||||
AwsEksCniMetricService:
|
|
||||||
service.new('aws-node', { 'k8s-app' : 'aws-node' } , servicePort.newNamed('cni-metrics-port', 61678, 61678)) +
|
|
||||||
service.mixin.metadata.withNamespace('kube-system') +
|
|
||||||
service.mixin.metadata.withLabels({ 'k8s-app': 'aws-node' }) +
|
|
||||||
service.mixin.spec.withClusterIp('None'),
|
|
||||||
serviceMonitorAwsEksCNI:
|
|
||||||
{
|
|
||||||
apiVersion: 'monitoring.coreos.com/v1',
|
|
||||||
kind: 'ServiceMonitor',
|
|
||||||
metadata: {
|
|
||||||
name: 'awsekscni',
|
|
||||||
namespace: 'monitoring',
|
|
||||||
labels: {
|
|
||||||
'k8s-app': 'eks-cni',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
spec: {
|
|
||||||
jobLabel: 'k8s-app',
|
|
||||||
selector: {
|
|
||||||
matchLabels: {
|
|
||||||
'k8s-app': 'aws-node',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
namespaceSelector: {
|
|
||||||
matchNames: [
|
|
||||||
'kube-system',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
endpoints: [
|
|
||||||
{
|
|
||||||
port: 'cni-metrics-port',
|
|
||||||
interval: '30s',
|
|
||||||
path: '/metrics',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user