From ba31fc7dda33e7ae88df407b1534214790077833 Mon Sep 17 00:00:00 2001 From: "huanqing.shao" Date: Thu, 16 Jul 2020 22:54:57 +0800 Subject: [PATCH] introduction --- .vuepress/config-sidebar.js | 7 + .../hpa.assets/horizontal-pod-autoscaler.png | Bin 0 -> 67857 bytes learning/k8s-advanced/hpa/hpa.md | 37 + .../k8s-advanced/sec/authenticate/ldap.md | 10 + .../change-log/change-log-on-the-way-2.0.md | 1 - .../metrics-nodes.json | 87 + .../nodes.json | 2019 +++++++++++++++++ .../prometheus-adapter.yaml | 76 + 8 files changed, 2236 insertions(+), 1 deletion(-) create mode 100644 learning/k8s-advanced/hpa/hpa.assets/horizontal-pod-autoscaler.png create mode 100644 learning/k8s-advanced/hpa/hpa.md create mode 100644 support/change-log/prometheus-adapter-compitable-issue/metrics-nodes.json create mode 100644 support/change-log/prometheus-adapter-compitable-issue/nodes.json create mode 100644 support/change-log/prometheus-adapter-compitable-issue/prometheus-adapter.yaml diff --git a/.vuepress/config-sidebar.js b/.vuepress/config-sidebar.js index 00ac00b..a8ff769 100644 --- a/.vuepress/config-sidebar.js +++ b/.vuepress/config-sidebar.js @@ -411,6 +411,13 @@ let sidebar = { ] }, 'k8s-advanced/gc', + { + title: '自动伸缩', + collapsable: true, + children: [ + 'k8s-advanced/hpa/hpa', + ] + }, { title: '安全', collapsable: true, diff --git a/learning/k8s-advanced/hpa/hpa.assets/horizontal-pod-autoscaler.png b/learning/k8s-advanced/hpa/hpa.assets/horizontal-pod-autoscaler.png new file mode 100644 index 0000000000000000000000000000000000000000..e43f526e87ce143c5ce2402baa6b751eea1a5f5e GIT binary patch literal 67857 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 + +本文翻译自 Kubernetes 官网 [Horizontal Pod Autoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)。 + +Horizontal Pod Autoscaler 根据观察到的 CPU 利用率(或某些由应用程序提供的 [custom metrics](https://git.k8s.io/community/contributors/design-proposals/instrumentation/custom-metrics-api.md))自动调整控制器(Replication Controller / Deployment / ReplicaSet / StatefulSet)的 Pod 的数量。Horizontal Pod Autoscaler 不能应用于不可伸缩的对象,例如 DaemonSet。 + +Horizontal Pod Autoscaler 被实现为 Kubernetes 中的一个 API 对象及一个 [控制器](/learning/k8s-bg/architecture/controller.html)。API 对象定义了控制器的行为;控制器则周期性地调整 Deployment(或 Replication Contoller / ReplicaSet / StatefulSet)中的 Pod 副本数(replicas字段),使其匹配用户在 API 对象中定义的平均 CPU 利用率。 + + + +## Horizontal Pod Autoscaler 的工作方式 + +

+ +

+ +Horizontal Pod Autoscaler 被实现为一个控制循环,通过 controller manager 的参数 `--horizontal-pod-autoscaler-sync-period` 可以控制该循环的周期(默认值为 15 秒)。 + +在每个循环周期内,controller manager 所有 HorizontalPodAutoscaler 对象中指定的度量信息(metrics)。查询的方式可以是通过 resource metrics API (metrics-server,pod 的资源度量信息CPU/内存)或者 custom metrics API(所有其他度量信息)。 + +* 如果 HorizontalPodAutoscaler 中指定了使用 pod 的资源度量(例如 CPU)来说,则 controller 从 resource metrics API (通常使用 metrics-server)获取目标 Pod 的度量信息。如果 HorizontalPodAutoscaler 中指定的是资源利用率,则 controller 将度量值除以 Pod 中定义的容器的资源请求,得到一个以百分比表示的资源利用率;如果 HorizontalPodAutoscaler 中指定的是原始值,则直接使用从 resource metrics API 中获取的结果。此时,contoller 将所有目标 Pod 的资源利用率(或原始值)求平均,并计算出一个比例,用于调整期望副本数的值。 + > 请注意,如果某些 Pod 的容器没有设置 CPU 的 [资源请求](/learning/k8s-intermediate/config/computing-resource.html),则 controller 不能计算该 Pod 的 CPU 利用率,contoller 也就不能 针对 HorizontalPodAutoscaler 中定义的 CPU 利用率执行任何操作。请参考 [算法](#算法) 章节,了解更多与之相关的内容。 +* 对于 Pod 的自定义度量(custom metrics),controller 的工作机制与上述过程相似,区别在于,自定义度量只支持原始值,不支持资源利用率的值。 +* + +## 算法 diff --git a/learning/k8s-advanced/sec/authenticate/ldap.md b/learning/k8s-advanced/sec/authenticate/ldap.md index 6a302fa..0f5144e 100644 --- a/learning/k8s-advanced/sec/authenticate/ldap.md +++ b/learning/k8s-advanced/sec/authenticate/ldap.md @@ -11,3 +11,13 @@ meta: # Kubernetes Authentication LDAP + +本文介绍了两部分内容,如果您已经有 LDAP 在使用,请直接进入文档的第二部分内容。 + +* 安装 OpenLDAP + > 仅用于配合此文档达成演示目的,部署到生产环境时,请参考 OpenLDAP 的官方网站 +* 配置 Kubernetes/Kuboard 使用 OpenLDAP 登录 + +## 安装 OpenLDAP + +## 配置 Kubernetes/Kuboard 使用 OpenLDAP 登录 diff --git a/support/change-log/change-log-on-the-way-2.0.md b/support/change-log/change-log-on-the-way-2.0.md index ec39375..a632cc4 100644 --- a/support/change-log/change-log-on-the-way-2.0.md +++ b/support/change-log/change-log-on-the-way-2.0.md @@ -48,4 +48,3 @@ https://github.com/NVIDIA/k8s-device-plugin#enabling-gpu-support-in-kubernetes @ * 当没有编辑权限时,只显示 预览YAML,而不是 预览/编辑YAML -* 文件浏览器,显示隐藏文件 diff --git a/support/change-log/prometheus-adapter-compitable-issue/metrics-nodes.json b/support/change-log/prometheus-adapter-compitable-issue/metrics-nodes.json new file mode 100644 index 0000000..f6104c1 --- /dev/null +++ b/support/change-log/prometheus-adapter-compitable-issue/metrics-nodes.json @@ -0,0 +1,87 @@ +{ + "kind": "NodeMetricsList", + "apiVersion": "metrics.k8s.io/v1beta1", + "metadata": { + "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes" + }, + "items": [ + { + "metadata": { + "name": "qingke7", + "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/qingke7", + "creationTimestamp": "2020-06-30T07:54:33Z" + }, + "timestamp": "2020-06-30T07:54:33Z", + "window": "1m0s", + "usage": { + "cpu": "300m", + "memory": "4869932Ki" + } + }, + { + "metadata": { + "name": "k8s", + "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/k8s", + "creationTimestamp": "2020-06-30T07:54:33Z" + }, + "timestamp": "2020-06-30T07:54:33Z", + "window": "1m0s", + "usage": { + "cpu": "283m", + "memory": "3250712Ki" + } + }, + { + "metadata": { + "name": "iz2ze0ephck4d1aw6rxk8gz", + "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/iz2ze0ephck4d1aw6rxk8gz", + "creationTimestamp": "2020-06-30T07:54:33Z" + }, + "timestamp": "2020-06-30T07:54:33Z", + "window": "1m0s", + "usage": { + "cpu": "351m", + "memory": "4602996Ki" + } + }, + { + "metadata": { + "name": "qingke0", + "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/qingke0", + "creationTimestamp": "2020-06-30T07:54:33Z" + }, + "timestamp": "2020-06-30T07:54:33Z", + "window": "1m0s", + "usage": { + "cpu": "1219m", + "memory": "1240616Ki" + } + }, + { + "metadata": { + "name": "qingke1", + "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/qingke1", + "creationTimestamp": "2020-06-30T07:54:33Z" + }, + "timestamp": "2020-06-30T07:54:33Z", + "window": "1m0s", + "usage": { + "cpu": "181m", + "memory": "1004804Ki" + } + }, + { + "metadata": { + "name": "qingke6", + "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes/qingke6", + "creationTimestamp": "2020-06-30T07:54:33Z" + }, + "timestamp": "2020-06-30T07:54:33Z", + "window": "1m0s", + "usage": { + "cpu": "152m", + "memory": "954652Ki" + } + } + ] +} diff --git a/support/change-log/prometheus-adapter-compitable-issue/nodes.json b/support/change-log/prometheus-adapter-compitable-issue/nodes.json new file mode 100644 index 0000000..d676e8c --- /dev/null +++ b/support/change-log/prometheus-adapter-compitable-issue/nodes.json @@ -0,0 +1,2019 @@ +{ + "kind": "NodeList", + "apiVersion": "v1", + "metadata": { + "selfLink": "/api/v1/nodes", + "resourceVersion": "1562631" + }, + "items": [ + { + "metadata": { + "name": "iz2ze0ephck4d1aw6rxk8gz", + "selfLink": "/api/v1/nodes/iz2ze0ephck4d1aw6rxk8gz", + "uid": "14763ea9-be8a-4372-990b-2977fdcde1e3", + "resourceVersion": "1562506", + "creationTimestamp": "2020-06-23T01:43:05Z", + "labels": { + "beta.kubernetes.io/arch": "amd64", + "beta.kubernetes.io/os": "linux", + "file": "nfs", + "kubernetes.io/arch": "amd64", + "kubernetes.io/hostname": "iz2ze0ephck4d1aw6rxk8gz", + "kubernetes.io/os": "linux", + "node-role.kubernetes.io/rocketmq": "true" + }, + "annotations": { + "kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock", + "node.alpha.kubernetes.io/ttl": "0", + "projectcalico.org/IPv4Address": "192.168.7.16/24", + "projectcalico.org/IPv4IPIPTunnelAddr": "172.16.85.128" + } + }, + "spec": { + "podCIDR": "172.16.5.0/24", + "podCIDRs": [ + "172.16.5.0/24" + ] + }, + "status": { + "capacity": { + "cpu": "4", + "ephemeral-storage": "41152812Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "16160956Ki", + "pods": "110" + }, + "allocatable": { + "cpu": "4", + "ephemeral-storage": "37926431477", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "16058556Ki", + "pods": "110" + }, + "conditions": [ + { + "type": "NetworkUnavailable", + "status": "False", + "lastHeartbeatTime": "2020-06-23T01:43:09Z", + "lastTransitionTime": "2020-06-23T01:43:09Z", + "reason": "CalicoIsUp", + "message": "Calico is running on this node" + }, + { + "type": "MemoryPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:43Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasSufficientMemory", + "message": "kubelet has sufficient memory available" + }, + { + "type": "DiskPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:43Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasNoDiskPressure", + "message": "kubelet has no disk pressure" + }, + { + "type": "PIDPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:43Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasSufficientPID", + "message": "kubelet has sufficient PID available" + }, + { + "type": "Ready", + "status": "True", + "lastHeartbeatTime": "2020-06-30T07:53:43Z", + "lastTransitionTime": "2020-06-28T02:20:37Z", + "reason": "KubeletReady", + "message": "kubelet is posting ready status" + } + ], + "addresses": [ + { + "type": "InternalIP", + "address": "192.168.7.16" + }, + { + "type": "Hostname", + "address": "iz2ze0ephck4d1aw6rxk8gz" + } + ], + "daemonEndpoints": { + "kubeletEndpoint": { + "Port": 10250 + } + }, + "nodeInfo": { + "machineID": "20200324192605263653907622370367", + "systemUUID": "9fff2bd1-b8ea-4b61-909b-07639b2d0b59", + "bootID": "2e5e7f12-bdcd-49b9-9ea9-4ba57ea61cee", + "kernelVersion": "4.19.91-18.al7.x86_64", + "osImage": "Aliyun Linux 2.1903 LTS (Hunting Beagle)", + "containerRuntimeVersion": "docker://19.3.0", + "kubeletVersion": "v1.16.0", + "kubeProxyVersion": "v1.16.0", + "operatingSystem": "linux", + "architecture": "amd64" + }, + "images": [ + { + "names": [ + "styletang/rocketmq-console-ng@sha256:96e99d10eda871640b9529b75da30fa6ca85fc15722661acb9660639e6904fc3", + "styletang/rocketmq-console-ng:latest" + ], + "sizeBytes": 702417475 + }, + { + "names": [ + "jenkins/jenkins@sha256:0e8912b04f962b258ff9f51fb85fd1a9c5458e9d6e2f84aee747d765de0b7b70", + "jenkins/jenkins:lts" + ], + "sizeBytes": 658311436 + }, + { + "names": [ + "mysql@sha256:32f9d9a069f7a735e28fd44ea944d53c61f990ba71460c5c183e610854ca4854", + "mysql:5.7" + ], + "sizeBytes": 448102503 + }, + { + "names": [ + "mongo@sha256:b39da8a18a6a9429f964f58d0da883d726f495dce3a00e3a7e67bd89cd16b40c", + "mongo:3.4.20-jessie" + ], + "sizeBytes": 390096856 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-broker@sha256:02a5321db5d570ecbc198b4395a34339293742bbcc0c9eac2e47a38373c6ff43", + "192.168.7.6/qingke/rocketmq-broker:4.7.0" + ], + "sizeBytes": 389001406 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-namesrv@sha256:463b5e36ca1973ceb2090bbbbaf4ad98217723cbf5a6cce12a5bd0ec4fd6a919", + "192.168.7.6/qingke/rocketmq-namesrv:4.7.0" + ], + "sizeBytes": 388994926 + }, + { + "names": [ + "solsson/kafka@sha256:450c6fdacae3f89ca28cecb36b2f120aad9b19583d68c411d551502ee8d0b09b" + ], + "sizeBytes": 368555491 + }, + { + "names": [ + "influxdb@sha256:c2fcf7ff5d4a0043f22879bf70a8972496b0d2cd7350f638657d0ca4ad149d9e", + "influxdb:1.7.10" + ], + "sizeBytes": 310752428 + }, + { + "names": [ + "fanux/lvscare:latest" + ], + "sizeBytes": 298145855 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/test_k8s/xtrabackup@sha256:7139d82c492c9e2938f6893bfe506e0aec97fd44c5fb48053f5aa6816417508b", + "registry.cn-hangzhou.aliyuncs.com/test_k8s/xtrabackup:1.0" + ], + "sizeBytes": 264925334 + }, + { + "names": [ + "k8s.gcr.io/etcd:3.3.15-0" + ], + "sizeBytes": 246640776 + }, + { + "names": [ + "k8s.gcr.io/kube-apiserver:v1.16.0" + ], + "sizeBytes": 217066846 + }, + { + "names": [ + "grafana/grafana@sha256:bd55ea2bad17f5016431734b42fdfc202ebdc7d08b6c4ad35ebb03d06efdff69", + "grafana/grafana:6.4.3" + ], + "sizeBytes": 205977864 + }, + { + "names": [ + "calico/node:v3.8.2" + ], + "sizeBytes": 188867043 + }, + { + "names": [ + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume@sha256:4129be52db5fecdc12101c88017cf2780a131e63f813cb7a06d22c9dcba6bce9", + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume:l1" + ], + "sizeBytes": 165760163 + }, + { + "names": [ + "k8s.gcr.io/kube-controller-manager:v1.16.0" + ], + "sizeBytes": 163310046 + }, + { + "names": [ + "calico/cni:v3.8.2" + ], + "sizeBytes": 157250943 + }, + { + "names": [ + "eipwork/kuboard:latest" + ], + "sizeBytes": 132645069 + }, + { + "names": [ + "solsson/kafka-initutils@sha256:f6d9850c6c3ad5ecc35e717308fddb47daffbde18eb93e98e031128fe8b899ef" + ], + "sizeBytes": 113972719 + }, + { + "names": [ + "redis@sha256:ebb2ae851126fe3df2c151bf3cb949522be2c8e37838204e01607f3fd5ebe99c", + "redis:6.0.3" + ], + "sizeBytes": 104120620 + }, + { + "names": [ + "redis@sha256:5dcccb533dc0deacce4a02fe9035134576368452db0b4323b98a4b2ba2d3b302", + "redis:5.0.5" + ], + "sizeBytes": 98185582 + }, + { + "names": [ + "cvallance/mongo-k8s-sidecar@sha256:cd62d32db488fbf78dfbaef020edd7fc09ee4d3fe5d50cc0579e747e8232c77f", + "cvallance/mongo-k8s-sidecar:latest" + ], + "sizeBytes": 90977117 + }, + { + "names": [ + "k8s.gcr.io/kube-scheduler:v1.16.0" + ], + "sizeBytes": 87265822 + }, + { + "names": [ + "k8s.gcr.io/kube-proxy:v1.16.0" + ], + "sizeBytes": 86056924 + }, + { + "names": [ + "traefik@sha256:d8d07854fc8123227b916460903ae368a27146108df96a696b08656e5a47b52b", + "traefik:v1.7.23" + ], + "sizeBytes": 76378808 + }, + { + "names": [ + "ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7", + "ubuntu:latest" + ], + "sizeBytes": 73852122 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:8791a35427c3f0d16be5e0d953e9704b74b196ff2c4f65e20bc8740738eda87c", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.88-00a6585-aliyun" + ], + "sizeBytes": 68574874 + }, + { + "names": [ + "quay.io/prometheus/alertmanager@sha256:3d52ab7ef3a2e23e26a73cfd0ce13189e3796fb276b9af3e79664e4f743d8a1d", + "quay.io/prometheus/alertmanager:v0.18.0" + ], + "sizeBytes": 51873059 + }, + { + "names": [ + "calico/kube-controllers:v3.8.2" + ], + "sizeBytes": 46809393 + }, + { + "names": [ + "quay.io/coreos/prometheus-operator@sha256:c0bcb231fe67cd11fd26f7adf5ac1080dfac189ac94705538bd4ab7dd99a98a9", + "quay.io/coreos/prometheus-operator:v0.34.0" + ], + "sizeBytes": 45519458 + }, + { + "names": [ + "k8s.gcr.io/coredns:1.6.2" + ], + "sizeBytes": 44100963 + }, + { + "names": [ + "quay.io/coreos/kube-rbac-proxy@sha256:9d07c391aeb1a9d02eb4343c113ed01825227c70c32b3cae861711f90191b0fd", + "quay.io/coreos/kube-rbac-proxy:v0.4.1" + ], + "sizeBytes": 41317870 + }, + { + "names": [ + "quay.io/coreos/kube-state-metrics@sha256:99e18bb3ca7344cb8ece2b5ced2599d561d2de2306531366e8198364d17b0f22", + "quay.io/coreos/kube-state-metrics:v1.9.2" + ], + "sizeBytes": 32818003 + }, + { + "names": [ + "quay.io/prometheus/node-exporter@sha256:a2f29256e53cc3e0b64d7a472512600b2e9410347d53cdc85b49f659c17e02ee", + "quay.io/prometheus/node-exporter:v0.18.1" + ], + "sizeBytes": 22933477 + }, + { + "names": [ + "calico/pod2daemon-flexvol:v3.8.2" + ], + "sizeBytes": 9371181 + }, + { + "names": [ + "quay.io/coreos/configmap-reload@sha256:e2fd60ff0ae4500a75b80ebaa30e0e7deba9ad107833e8ca53f0047c42c5a057", + "quay.io/coreos/configmap-reload:v0.0.1" + ], + "sizeBytes": 4785056 + }, + { + "names": [ + "busybox@sha256:836945da1f3afe2cfff376d379852bbb82e0237cb2925d53a13f53d6e8a8c48c" + ], + "sizeBytes": 1219598 + }, + { + "names": [ + "busybox@sha256:95cf004f559831017cdf4628aaf1bb30133677be8702a8c5f2994629f637a209", + "busybox:latest" + ], + "sizeBytes": 1219430 + }, + { + "names": [ + "k8s.gcr.io/pause:3.1" + ], + "sizeBytes": 742472 + } + ], + "volumesInUse": [ + "flexvolume-alicloud/nas/kafka-data-kafka-1-pvc-db64ada4-d674-4563-a97f-d78668376e80", + "flexvolume-alicloud/nas/kafka-data-pzoo-2-pvc-8a2807e1-9819-4dc5-a241-5667d09f9ef2", + "flexvolume-alicloud/nas/kafka-data-zoo-0-pvc-a8580c93-c0b4-4ab5-84fc-dbf7a75f93d1", + "flexvolume-alicloud/nas/redis-redis-data-redis-app-2-pvc-09bd8363-39f4-46b2-9449-f9146adb01d2", + "flexvolume-alicloud/nas/redis-redis-data-redis-app-5-pvc-01ca1226-7168-41a5-964b-299f54e5ff9d", + "flexvolume-alicloud/nas/rocketmq-volume-rocketmq-broker-master-prod-statefulset-rocketmq-broker-master-prod-0-pvc-0e83c4a4-d37c-435d-92b9-aef39bee5b4b", + "flexvolume-alicloud/nas/rocketmq-volume-rocketmq-broker-slave-prod-statefulset-rocketmq-broker-slave-prod-0-pvc-3b7a5767-19c6-443d-ab39-f79fc91aede3" + ] + } + }, + { + "metadata": { + "name": "k8s", + "selfLink": "/api/v1/nodes/k8s", + "uid": "8c8faa63-3d46-42c9-be3d-86a13b9ff6c7", + "resourceVersion": "1562509", + "creationTimestamp": "2020-06-23T01:43:05Z", + "labels": { + "beta.kubernetes.io/arch": "amd64", + "beta.kubernetes.io/os": "linux", + "file": "nfs", + "kubernetes.io/arch": "amd64", + "kubernetes.io/hostname": "k8s", + "kubernetes.io/os": "linux", + "node-role.kubernetes.io/rocketmq": "true" + }, + "annotations": { + "kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock", + "node.alpha.kubernetes.io/ttl": "0", + "projectcalico.org/IPv4Address": "192.168.7.9/24", + "projectcalico.org/IPv4IPIPTunnelAddr": "172.16.77.0" + } + }, + "spec": { + "podCIDR": "172.16.4.0/24", + "podCIDRs": [ + "172.16.4.0/24" + ] + }, + "status": { + "capacity": { + "cpu": "4", + "ephemeral-storage": "41152812Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "15453244Ki", + "pods": "110" + }, + "allocatable": { + "cpu": "4", + "ephemeral-storage": "37926431477", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "15350844Ki", + "pods": "110" + }, + "conditions": [ + { + "type": "NetworkUnavailable", + "status": "False", + "lastHeartbeatTime": "2020-06-23T06:38:27Z", + "lastTransitionTime": "2020-06-23T06:38:27Z", + "reason": "CalicoIsUp", + "message": "Calico is running on this node" + }, + { + "type": "MemoryPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasSufficientMemory", + "message": "kubelet has sufficient memory available" + }, + { + "type": "DiskPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasNoDiskPressure", + "message": "kubelet has no disk pressure" + }, + { + "type": "PIDPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasSufficientPID", + "message": "kubelet has sufficient PID available" + }, + { + "type": "Ready", + "status": "True", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-28T02:20:03Z", + "reason": "KubeletReady", + "message": "kubelet is posting ready status" + } + ], + "addresses": [ + { + "type": "InternalIP", + "address": "192.168.7.9" + }, + { + "type": "Hostname", + "address": "k8s" + } + ], + "daemonEndpoints": { + "kubeletEndpoint": { + "Port": 10250 + } + }, + "nodeInfo": { + "machineID": "20200324192605263653907622370367", + "systemUUID": "bbca2865-f74d-4372-9da0-df29362d63da", + "bootID": "a7e6b3cb-798f-49a3-9116-52fc6c505954", + "kernelVersion": "4.19.91-18.al7.x86_64", + "osImage": "Aliyun Linux 2.1903 LTS (Hunting Beagle)", + "containerRuntimeVersion": "docker://19.3.0", + "kubeletVersion": "v1.16.0", + "kubeProxyVersion": "v1.16.0", + "operatingSystem": "linux", + "architecture": "amd64" + }, + "images": [ + { + "names": [ + "logstash@sha256:4f1b895c2eca36d25aab8141443b88c187294ae922004bef613607a0580095ec", + "logstash:6.8.8" + ], + "sizeBytes": 835028317 + }, + { + "names": [ + "kibana@sha256:53891a7457becef4a21e339d225f9fa1ad143cab23898366e1ddd4d2a9de85dd", + "kibana:6.8.8" + ], + "sizeBytes": 742691036 + }, + { + "names": [ + "jenkins/jenkins@sha256:0e8912b04f962b258ff9f51fb85fd1a9c5458e9d6e2f84aee747d765de0b7b70", + "jenkins/jenkins:lts" + ], + "sizeBytes": 658311436 + }, + { + "names": [ + "mysql@sha256:e821ca8cc7a44d354486f30c6a193ec6b70a4eed8c8362aeede4e9b8d74b8ebb", + "mysql:5.7" + ], + "sizeBytes": 448101935 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-broker@sha256:02a5321db5d570ecbc198b4395a34339293742bbcc0c9eac2e47a38373c6ff43", + "192.168.7.6/qingke/rocketmq-broker:4.7.0" + ], + "sizeBytes": 389001406 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-namesrv@sha256:463b5e36ca1973ceb2090bbbbaf4ad98217723cbf5a6cce12a5bd0ec4fd6a919", + "192.168.7.6/qingke/rocketmq-namesrv:4.7.0" + ], + "sizeBytes": 388994926 + }, + { + "names": [ + "solsson/kafka@sha256:450c6fdacae3f89ca28cecb36b2f120aad9b19583d68c411d551502ee8d0b09b" + ], + "sizeBytes": 368555491 + }, + { + "names": [ + "fanux/lvscare:latest" + ], + "sizeBytes": 298145855 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/test_k8s/xtrabackup@sha256:7139d82c492c9e2938f6893bfe506e0aec97fd44c5fb48053f5aa6816417508b", + "registry.cn-hangzhou.aliyuncs.com/test_k8s/xtrabackup:1.0" + ], + "sizeBytes": 264925334 + }, + { + "names": [ + "k8s.gcr.io/etcd:3.3.15-0" + ], + "sizeBytes": 246640776 + }, + { + "names": [ + "k8s.gcr.io/kube-apiserver:v1.16.0" + ], + "sizeBytes": 217066846 + }, + { + "names": [ + "calico/node:v3.8.2" + ], + "sizeBytes": 188867043 + }, + { + "names": [ + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume@sha256:4129be52db5fecdc12101c88017cf2780a131e63f813cb7a06d22c9dcba6bce9", + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume:l1" + ], + "sizeBytes": 165760163 + }, + { + "names": [ + "k8s.gcr.io/kube-controller-manager:v1.16.0" + ], + "sizeBytes": 163310046 + }, + { + "names": [ + "calico/cni:v3.8.2" + ], + "sizeBytes": 157250943 + }, + { + "names": [ + "eipwork/kuboard:latest" + ], + "sizeBytes": 132645069 + }, + { + "names": [ + "quay.io/prometheus/prometheus@sha256:b6275644820cf7a256cd9502eafb35a0b1862b59a3c49afb8267f75ffe79efcc", + "quay.io/prometheus/prometheus:v2.11.0" + ], + "sizeBytes": 125685107 + }, + { + "names": [ + "solsson/kafka-initutils@sha256:f6d9850c6c3ad5ecc35e717308fddb47daffbde18eb93e98e031128fe8b899ef" + ], + "sizeBytes": 113972719 + }, + { + "names": [ + "redis@sha256:89051d5ec46a89d4a708467af38eaaf4029450c4b1b9835ffd413cf70625b22e", + "redis:6.0.3" + ], + "sizeBytes": 104120620 + }, + { + "names": [ + "k8s.gcr.io/kube-scheduler:v1.16.0" + ], + "sizeBytes": 87265822 + }, + { + "names": [ + "k8s.gcr.io/kube-proxy:v1.16.0" + ], + "sizeBytes": 86056924 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:8791a35427c3f0d16be5e0d953e9704b74b196ff2c4f65e20bc8740738eda87c", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.88-00a6585-aliyun" + ], + "sizeBytes": 68574874 + }, + { + "names": [ + "quay.io/coreos/k8s-prometheus-adapter-amd64@sha256:5882cda1ee0a8e65e7df4af93a7a1cf36ade9108ee35ef155d7009dc6eaad8a0", + "quay.io/coreos/k8s-prometheus-adapter-amd64:v0.5.0" + ], + "sizeBytes": 60881026 + }, + { + "names": [ + "quay.io/prometheus/alertmanager@sha256:3d52ab7ef3a2e23e26a73cfd0ce13189e3796fb276b9af3e79664e4f743d8a1d", + "quay.io/prometheus/alertmanager:v0.18.0" + ], + "sizeBytes": 51873059 + }, + { + "names": [ + "calico/kube-controllers:v3.8.2" + ], + "sizeBytes": 46809393 + }, + { + "names": [ + "eipwork/nfs-client-provisioner@sha256:4c16495be5b893efea1c810e8451c71e1c58f076494676cae2ecab3a382b6ed0", + "eipwork/nfs-client-provisioner:v3.1.0-k8s1.11" + ], + "sizeBytes": 45478559 + }, + { + "names": [ + "k8s.gcr.io/coredns:1.6.2" + ], + "sizeBytes": 44100963 + }, + { + "names": [ + "quay.io/coreos/kube-rbac-proxy@sha256:9d07c391aeb1a9d02eb4343c113ed01825227c70c32b3cae861711f90191b0fd", + "quay.io/coreos/kube-rbac-proxy:v0.4.1" + ], + "sizeBytes": 41317870 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:db154db88857dc10ac528d45bebcd74d9729104b54df643546287b92132ef6a0", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.9.7-42e8198" + ], + "sizeBytes": 24096073 + }, + { + "names": [ + "quay.io/prometheus/node-exporter@sha256:a2f29256e53cc3e0b64d7a472512600b2e9410347d53cdc85b49f659c17e02ee", + "quay.io/prometheus/node-exporter:v0.18.1" + ], + "sizeBytes": 22933477 + }, + { + "names": [ + "quay.io/coreos/prometheus-config-reloader@sha256:459bc1b1fc51420cd244b082fe14444f6d8596997c2e40f52c08d1f5a09ab860", + "quay.io/coreos/prometheus-config-reloader:v0.34.0" + ], + "sizeBytes": 10152002 + }, + { + "names": [ + "calico/pod2daemon-flexvol:v3.8.2" + ], + "sizeBytes": 9371181 + }, + { + "names": [ + "quay.io/coreos/configmap-reload@sha256:e2fd60ff0ae4500a75b80ebaa30e0e7deba9ad107833e8ca53f0047c42c5a057", + "quay.io/coreos/configmap-reload:v0.0.1" + ], + "sizeBytes": 4785056 + }, + { + "names": [ + "juliohm/kubernetes-cifs-volumedriver-installer@sha256:5bbde5743d39087e3126682b0ed2ce8eda3f66d5053482d3c124bf042bbd1c27", + "juliohm/kubernetes-cifs-volumedriver-installer:2.0" + ], + "sizeBytes": 4004607 + }, + { + "names": [ + "busybox@sha256:95cf004f559831017cdf4628aaf1bb30133677be8702a8c5f2994629f637a209", + "busybox@sha256:fcb738410aff78aa381cbc6e790141f9b20f45b0f3f4945a3f9aeb1771b9f2f1", + "busybox@sha256:fd4a8673d0344c3a7f427fe4440d4b8dfd4fa59cfabbd9098f9eb0cb4ba905d0", + "busybox:latest" + ], + "sizeBytes": 1219430 + }, + { + "names": [ + "k8s.gcr.io/pause:3.1" + ], + "sizeBytes": 742472 + } + ], + "volumesInUse": [ + "flexvolume-alicloud/nas/kafka-data-kafka-2-pvc-44287eb3-4a86-48fb-b27f-2499a9e1893f", + "flexvolume-alicloud/nas/kafka-data-pzoo-1-pvc-94e1c867-4859-4d2f-af4e-1e3a2fda4e2a", + "flexvolume-alicloud/nas/redis-redis-data-redis-app-1-pvc-13433247-b669-4bf6-a346-7773c1be0ec5", + "flexvolume-alicloud/nas/redis-redis-data-redis-app-4-pvc-4f3c15bd-129d-430f-8598-635031e44746" + ] + } + }, + { + "metadata": { + "name": "qingke0", + "selfLink": "/api/v1/nodes/qingke0", + "uid": "f2980d1a-a345-4675-ab39-b40876502d26", + "resourceVersion": "1562623", + "creationTimestamp": "2020-06-23T01:41:44Z", + "labels": { + "beta.kubernetes.io/arch": "amd64", + "beta.kubernetes.io/os": "linux", + "kubernetes.io/arch": "amd64", + "kubernetes.io/hostname": "qingke0", + "kubernetes.io/os": "linux", + "node-role.kubernetes.io/master": "" + }, + "annotations": { + "kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock", + "node.alpha.kubernetes.io/ttl": "0", + "projectcalico.org/IPv4Address": "192.168.7.5/24", + "projectcalico.org/IPv4IPIPTunnelAddr": "172.16.50.128" + } + }, + "spec": { + "podCIDR": "172.16.0.0/24", + "podCIDRs": [ + "172.16.0.0/24" + ], + "taints": [ + { + "key": "node-role.kubernetes.io/master", + "effect": "NoSchedule" + } + ] + }, + "status": { + "capacity": { + "cpu": "2", + "ephemeral-storage": "41152812Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "3840512Ki", + "pods": "110" + }, + "allocatable": { + "cpu": "2", + "ephemeral-storage": "37926431477", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "3738112Ki", + "pods": "110" + }, + "conditions": [ + { + "type": "NetworkUnavailable", + "status": "False", + "lastHeartbeatTime": "2020-06-23T01:42:12Z", + "lastTransitionTime": "2020-06-23T01:42:12Z", + "reason": "CalicoIsUp", + "message": "Calico is running on this node" + }, + { + "type": "MemoryPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:30Z", + "lastTransitionTime": "2020-06-23T01:41:39Z", + "reason": "KubeletHasSufficientMemory", + "message": "kubelet has sufficient memory available" + }, + { + "type": "DiskPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:30Z", + "lastTransitionTime": "2020-06-23T01:41:39Z", + "reason": "KubeletHasNoDiskPressure", + "message": "kubelet has no disk pressure" + }, + { + "type": "PIDPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:30Z", + "lastTransitionTime": "2020-06-23T01:41:39Z", + "reason": "KubeletHasSufficientPID", + "message": "kubelet has sufficient PID available" + }, + { + "type": "Ready", + "status": "True", + "lastHeartbeatTime": "2020-06-30T07:54:30Z", + "lastTransitionTime": "2020-06-28T05:44:36Z", + "reason": "KubeletReady", + "message": "kubelet is posting ready status" + } + ], + "addresses": [ + { + "type": "InternalIP", + "address": "192.168.7.5" + }, + { + "type": "Hostname", + "address": "qingke0" + } + ], + "daemonEndpoints": { + "kubeletEndpoint": { + "Port": 10250 + } + }, + "nodeInfo": { + "machineID": "20200324192605263653907622370367", + "systemUUID": "df1d11f2-6cd6-4197-96ce-95d9ce1ba3c9", + "bootID": "fdd20995-ae05-48a2-ad38-a2c92b776fad", + "kernelVersion": "4.19.91-18.al7.x86_64", + "osImage": "Aliyun Linux 2.1903 LTS (Hunting Beagle)", + "containerRuntimeVersion": "docker://19.3.8", + "kubeletVersion": "v1.16.0", + "kubeProxyVersion": "v1.16.0", + "operatingSystem": "linux", + "architecture": "amd64" + }, + "images": [ + { + "names": [ + "192.168.7.6/qingke/elasticsearch@sha256:60e00b6b7d0a455abf461d1e8a08fad5472815fd78200ed2c5b0fc7695ae9c05" + ], + "sizeBytes": 898378488 + }, + { + "names": [ + "192.168.7.6/qingke/elasticsearch@sha256:812d5900c8a1342bbe3f108560deacf43ac6beeb150e66f3a26b2b601cd13d1c", + "192.168.7.6/qingke/elasticsearch:6.8.8" + ], + "sizeBytes": 898378488 + }, + { + "names": [ + "192.168.7.6/qingke/elasticsearch@sha256:c6fbfd8765850655101f22a40f3fd9feb9cf7e84151329db98834422b9767ac9" + ], + "sizeBytes": 898376544 + }, + { + "names": [ + "192.168.7.6/qingke/elasticsearch@sha256:a02e473eae30f3bf1ee9bf57c7cf08ee6c14d2792977ceec54729781d4793d78" + ], + "sizeBytes": 898376532 + }, + { + "names": [ + "192.168.7.6/qingke/elasticsearch@sha256:1fe7031f1eeae949c2ceccafa749a4e71d515049e045e36aa5e471ab9bdeecfc" + ], + "sizeBytes": 898376530 + }, + { + "names": [ + "192.168.7.6/qingke/elasticsearch@sha256:5ed63634e961fc7276c63fa7fa0b0782a2744396300983d996ac0b8c550d6e40" + ], + "sizeBytes": 898376172 + }, + { + "names": [ + "\u003cnone\u003e@\u003cnone\u003e", + "\u003cnone\u003e:\u003cnone\u003e" + ], + "sizeBytes": 898375938 + }, + { + "names": [ + "docker.elastic.co/elasticsearch/elasticsearch@sha256:0e0fd27c4e133399d8c5419141915cbf04966aa808427f21bd316fb7c5bed61f", + "docker.elastic.co/elasticsearch/elasticsearch:6.8.8" + ], + "sizeBytes": 898375938 + }, + { + "names": [ + "mongo@sha256:b39da8a18a6a9429f964f58d0da883d726f495dce3a00e3a7e67bd89cd16b40c", + "mongo:3.4.20-jessie" + ], + "sizeBytes": 390096856 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-broker@sha256:02a5321db5d570ecbc198b4395a34339293742bbcc0c9eac2e47a38373c6ff43", + "192.168.7.6/qingke/rocketmq-broker:4.7.0" + ], + "sizeBytes": 389001406 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-namesrv@sha256:463b5e36ca1973ceb2090bbbbaf4ad98217723cbf5a6cce12a5bd0ec4fd6a919", + "192.168.7.6/qingke/rocketmq-namesrv:4.7.0" + ], + "sizeBytes": 388994926 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-base@sha256:fffddeb033dd0dc13d66460c2ce307bddf8772f9fb77b2bfc88f6c8d1976f671", + "192.168.7.6/qingke/rocketmq-base:4.7.0" + ], + "sizeBytes": 388992029 + }, + { + "names": [ + "fanux/lvscare:latest" + ], + "sizeBytes": 298145855 + }, + { + "names": [ + "k8s.gcr.io/etcd:3.3.15-0" + ], + "sizeBytes": 246640776 + }, + { + "names": [ + "k8s.gcr.io/kube-apiserver:v1.16.0" + ], + "sizeBytes": 217066846 + }, + { + "names": [ + "centos@sha256:e9ce0b76f29f942502facd849f3e468232492b259b9d9f076f71b392293f1582", + "centos:7" + ], + "sizeBytes": 203343032 + }, + { + "names": [ + "calico/node:v3.8.2" + ], + "sizeBytes": 188867043 + }, + { + "names": [ + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume@sha256:4129be52db5fecdc12101c88017cf2780a131e63f813cb7a06d22c9dcba6bce9", + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume:l1" + ], + "sizeBytes": 165760163 + }, + { + "names": [ + "k8s.gcr.io/kube-controller-manager:v1.16.0" + ], + "sizeBytes": 163310046 + }, + { + "names": [ + "calico/cni:v3.8.2" + ], + "sizeBytes": 157250943 + }, + { + "names": [ + "envoyproxy/envoy:v1.11.2" + ], + "sizeBytes": 149570572 + }, + { + "names": [ + "prom/prometheus@sha256:42d2395cd7192cac9c787b517c4c276a184e5512da793cce9db8ee626f2cbde1", + "prom/prometheus:latest" + ], + "sizeBytes": 135379208 + }, + { + "names": [ + "eipwork/kuboard:latest" + ], + "sizeBytes": 132645069 + }, + { + "names": [ + "k8s.gcr.io/kube-scheduler:v1.16.0" + ], + "sizeBytes": 87265822 + }, + { + "names": [ + "k8s.gcr.io/kube-proxy:v1.16.0" + ], + "sizeBytes": 86056924 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:8791a35427c3f0d16be5e0d953e9704b74b196ff2c4f65e20bc8740738eda87c", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.88-00a6585-aliyun" + ], + "sizeBytes": 68574874 + }, + { + "names": [ + "calico/kube-controllers:v3.8.2" + ], + "sizeBytes": 46809393 + }, + { + "names": [ + "k8s.gcr.io/coredns:1.6.2" + ], + "sizeBytes": 44100963 + }, + { + "names": [ + "quay.io/coreos/kube-rbac-proxy@sha256:9d07c391aeb1a9d02eb4343c113ed01825227c70c32b3cae861711f90191b0fd", + "quay.io/coreos/kube-rbac-proxy:v0.4.1" + ], + "sizeBytes": 41317870 + }, + { + "names": [ + "gcr.io/heptio-images/contour:v0.15.2" + ], + "sizeBytes": 39030784 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:db154db88857dc10ac528d45bebcd74d9729104b54df643546287b92132ef6a0", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.9.7-42e8198" + ], + "sizeBytes": 24096073 + }, + { + "names": [ + "quay.io/prometheus/node-exporter@sha256:a2f29256e53cc3e0b64d7a472512600b2e9410347d53cdc85b49f659c17e02ee", + "quay.io/prometheus/node-exporter:v0.18.1" + ], + "sizeBytes": 22933477 + }, + { + "names": [ + "prom/node-exporter@sha256:6965ed8f31c5edba19d269d10238f59624e6b004f650ce925b3408ce222f9e49", + "prom/node-exporter:v0.15.2" + ], + "sizeBytes": 22821162 + }, + { + "names": [ + "prom/node-exporter@sha256:c390c8fea4cd362a28ad5070aedd6515aacdfdffd21de6db42ead05e332be5a9", + "prom/node-exporter:v0.17.0" + ], + "sizeBytes": 20982005 + }, + { + "names": [ + "calico/pod2daemon-flexvol:v3.8.2" + ], + "sizeBytes": 9371181 + }, + { + "names": [ + "192.168.7.6/qingke/k8s.gcr.io/pause@sha256:fcaff905397ba63fd376d0c3019f1f1cb6e7506131389edbcb3d22719f1ae54d", + "192.168.7.6/qingke/k8s.gcr.io/pause:3.1", + "k8s.gcr.io/pause:3.1" + ], + "sizeBytes": 742472 + } + ] + } + }, + { + "metadata": { + "name": "qingke1", + "selfLink": "/api/v1/nodes/qingke1", + "uid": "7d6629f7-2304-4a67-bc48-a2b8c2fe44df", + "resourceVersion": "1562617", + "creationTimestamp": "2020-06-23T01:42:14Z", + "labels": { + "beta.kubernetes.io/arch": "amd64", + "beta.kubernetes.io/os": "linux", + "kubernetes.io/arch": "amd64", + "kubernetes.io/hostname": "qingke1", + "kubernetes.io/os": "linux", + "node-role.kubernetes.io/master": "" + }, + "annotations": { + "kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock", + "node.alpha.kubernetes.io/ttl": "0", + "projectcalico.org/IPv4Address": "192.168.7.4/24", + "projectcalico.org/IPv4IPIPTunnelAddr": "172.16.113.128" + } + }, + "spec": { + "podCIDR": "172.16.1.0/24", + "podCIDRs": [ + "172.16.1.0/24" + ], + "taints": [ + { + "key": "node-role.kubernetes.io/master", + "effect": "NoSchedule" + } + ] + }, + "status": { + "capacity": { + "cpu": "2", + "ephemeral-storage": "41152812Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "3840528Ki", + "pods": "110" + }, + "allocatable": { + "cpu": "2", + "ephemeral-storage": "37926431477", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "3738128Ki", + "pods": "110" + }, + "conditions": [ + { + "type": "NetworkUnavailable", + "status": "False", + "lastHeartbeatTime": "2020-06-23T01:42:27Z", + "lastTransitionTime": "2020-06-23T01:42:27Z", + "reason": "CalicoIsUp", + "message": "Calico is running on this node" + }, + { + "type": "MemoryPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:28Z", + "lastTransitionTime": "2020-06-23T01:42:14Z", + "reason": "KubeletHasSufficientMemory", + "message": "kubelet has sufficient memory available" + }, + { + "type": "DiskPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:28Z", + "lastTransitionTime": "2020-06-23T01:42:14Z", + "reason": "KubeletHasNoDiskPressure", + "message": "kubelet has no disk pressure" + }, + { + "type": "PIDPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:28Z", + "lastTransitionTime": "2020-06-23T01:42:14Z", + "reason": "KubeletHasSufficientPID", + "message": "kubelet has sufficient PID available" + }, + { + "type": "Ready", + "status": "True", + "lastHeartbeatTime": "2020-06-30T07:54:28Z", + "lastTransitionTime": "2020-06-28T02:21:32Z", + "reason": "KubeletReady", + "message": "kubelet is posting ready status" + } + ], + "addresses": [ + { + "type": "InternalIP", + "address": "192.168.7.4" + }, + { + "type": "Hostname", + "address": "qingke1" + } + ], + "daemonEndpoints": { + "kubeletEndpoint": { + "Port": 10250 + } + }, + "nodeInfo": { + "machineID": "20200324192605263653907622370367", + "systemUUID": "ed85e16a-9b8b-4ad8-8ec0-868af93f9c4e", + "bootID": "5d4eca25-9991-4393-b94b-a35a764a3ea4", + "kernelVersion": "4.19.91-18.al7.x86_64", + "osImage": "Aliyun Linux 2.1903 LTS (Hunting Beagle)", + "containerRuntimeVersion": "docker://19.3.0", + "kubeletVersion": "v1.16.0", + "kubeProxyVersion": "v1.16.0", + "operatingSystem": "linux", + "architecture": "amd64" + }, + "images": [ + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller@sha256:72c448a995c2a001ab407b71417822a92887c4b442d74baba02f43f0f3d53cf4", + "registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v1.14.3.8-58bf821-aliyun" + ], + "sizeBytes": 391070423 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-broker@sha256:02a5321db5d570ecbc198b4395a34339293742bbcc0c9eac2e47a38373c6ff43", + "192.168.7.6/qingke/rocketmq-broker:4.7.0" + ], + "sizeBytes": 389001406 + }, + { + "names": [ + "192.168.7.6/qingke/rocketmq-namesrv@sha256:463b5e36ca1973ceb2090bbbbaf4ad98217723cbf5a6cce12a5bd0ec4fd6a919", + "192.168.7.6/qingke/rocketmq-namesrv:4.7.0" + ], + "sizeBytes": 388994926 + }, + { + "names": [ + "fanux/lvscare:latest" + ], + "sizeBytes": 298145855 + }, + { + "names": [ + "k8s.gcr.io/etcd:3.3.15-0" + ], + "sizeBytes": 246640776 + }, + { + "names": [ + "k8s.gcr.io/kube-apiserver:v1.16.0" + ], + "sizeBytes": 217066846 + }, + { + "names": [ + "calico/node:v3.8.2" + ], + "sizeBytes": 188867043 + }, + { + "names": [ + "eipwork/kuboard@sha256:ac58c563cbed9c305572e4215919ca166d59141450a4818af5fd510fb3b76d3f", + "eipwork/kuboard:v2.0.1" + ], + "sizeBytes": 180568311 + }, + { + "names": [ + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume@sha256:4129be52db5fecdc12101c88017cf2780a131e63f813cb7a06d22c9dcba6bce9", + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume:l1" + ], + "sizeBytes": 165760163 + }, + { + "names": [ + "k8s.gcr.io/kube-controller-manager:v1.16.0" + ], + "sizeBytes": 163310046 + }, + { + "names": [ + "calico/cni:v3.8.2" + ], + "sizeBytes": 157250943 + }, + { + "names": [ + "envoyproxy/envoy:v1.11.2" + ], + "sizeBytes": 149570572 + }, + { + "names": [ + "eipwork/kuboard:latest" + ], + "sizeBytes": 132645069 + }, + { + "names": [ + "k8s.gcr.io/kube-scheduler:v1.16.0" + ], + "sizeBytes": 87265822 + }, + { + "names": [ + "k8s.gcr.io/kube-proxy:v1.16.0" + ], + "sizeBytes": 86056924 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:8791a35427c3f0d16be5e0d953e9704b74b196ff2c4f65e20bc8740738eda87c", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.88-00a6585-aliyun" + ], + "sizeBytes": 68574874 + }, + { + "names": [ + "calico/kube-controllers:v3.8.2" + ], + "sizeBytes": 46809393 + }, + { + "names": [ + "k8s.gcr.io/coredns:1.6.2" + ], + "sizeBytes": 44100963 + }, + { + "names": [ + "quay.io/coreos/kube-rbac-proxy@sha256:9d07c391aeb1a9d02eb4343c113ed01825227c70c32b3cae861711f90191b0fd", + "quay.io/coreos/kube-rbac-proxy:v0.4.1" + ], + "sizeBytes": 41317870 + }, + { + "names": [ + "gcr.io/heptio-images/contour:v0.15.2" + ], + "sizeBytes": 39030784 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:db154db88857dc10ac528d45bebcd74d9729104b54df643546287b92132ef6a0", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.9.7-42e8198" + ], + "sizeBytes": 24096073 + }, + { + "names": [ + "quay.io/prometheus/node-exporter@sha256:a2f29256e53cc3e0b64d7a472512600b2e9410347d53cdc85b49f659c17e02ee", + "quay.io/prometheus/node-exporter:v0.18.1" + ], + "sizeBytes": 22933477 + }, + { + "names": [ + "prom/node-exporter@sha256:6965ed8f31c5edba19d269d10238f59624e6b004f650ce925b3408ce222f9e49", + "prom/node-exporter:v0.15.2" + ], + "sizeBytes": 22821162 + }, + { + "names": [ + "prom/node-exporter@sha256:c390c8fea4cd362a28ad5070aedd6515aacdfdffd21de6db42ead05e332be5a9", + "prom/node-exporter:v0.17.0" + ], + "sizeBytes": 20982005 + }, + { + "names": [ + "calico/pod2daemon-flexvol:v3.8.2" + ], + "sizeBytes": 9371181 + }, + { + "names": [ + "k8s.gcr.io/pause:3.1" + ], + "sizeBytes": 742472 + } + ] + } + }, + { + "metadata": { + "name": "qingke6", + "selfLink": "/api/v1/nodes/qingke6", + "uid": "8720db91-0475-4d9d-ac2e-f8c4f4981336", + "resourceVersion": "1562627", + "creationTimestamp": "2020-06-30T06:48:19Z", + "labels": { + "beta.kubernetes.io/arch": "amd64", + "beta.kubernetes.io/os": "linux", + "kubernetes.io/arch": "amd64", + "kubernetes.io/hostname": "qingke6", + "kubernetes.io/os": "linux", + "node-role.kubernetes.io/master": "" + }, + "annotations": { + "kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock", + "node.alpha.kubernetes.io/ttl": "0", + "projectcalico.org/IPv4Address": "192.168.7.3/24", + "projectcalico.org/IPv4IPIPTunnelAddr": "172.16.4.0" + } + }, + "spec": { + "podCIDR": "172.16.2.0/24", + "podCIDRs": [ + "172.16.2.0/24" + ], + "taints": [ + { + "key": "node-role.kubernetes.io/master", + "effect": "NoSchedule" + } + ] + }, + "status": { + "capacity": { + "cpu": "2", + "ephemeral-storage": "41152812Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "3840512Ki", + "pods": "110" + }, + "allocatable": { + "cpu": "2", + "ephemeral-storage": "37926431477", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "3738112Ki", + "pods": "110" + }, + "conditions": [ + { + "type": "NetworkUnavailable", + "status": "False", + "lastHeartbeatTime": "2020-06-30T06:50:22Z", + "lastTransitionTime": "2020-06-30T06:50:22Z", + "reason": "CalicoIsUp", + "message": "Calico is running on this node" + }, + { + "type": "MemoryPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:26Z", + "lastTransitionTime": "2020-06-30T06:48:14Z", + "reason": "KubeletHasSufficientMemory", + "message": "kubelet has sufficient memory available" + }, + { + "type": "DiskPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:26Z", + "lastTransitionTime": "2020-06-30T06:48:14Z", + "reason": "KubeletHasNoDiskPressure", + "message": "kubelet has no disk pressure" + }, + { + "type": "PIDPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:54:26Z", + "lastTransitionTime": "2020-06-30T06:48:14Z", + "reason": "KubeletHasSufficientPID", + "message": "kubelet has sufficient PID available" + }, + { + "type": "Ready", + "status": "True", + "lastHeartbeatTime": "2020-06-30T07:54:26Z", + "lastTransitionTime": "2020-06-30T06:48:24Z", + "reason": "KubeletReady", + "message": "kubelet is posting ready status" + } + ], + "addresses": [ + { + "type": "InternalIP", + "address": "192.168.7.3" + }, + { + "type": "Hostname", + "address": "qingke6" + } + ], + "daemonEndpoints": { + "kubeletEndpoint": { + "Port": 10250 + } + }, + "nodeInfo": { + "machineID": "20200324192605263653907622370367", + "systemUUID": "ae0dc8b7-bda6-4e01-b9e3-0c2ddeceea27", + "bootID": "f8377404-2f85-4b8a-ac45-de5f8cf92a76", + "kernelVersion": "4.19.91-18.al7.x86_64", + "osImage": "Aliyun Linux 2.1903 LTS (Hunting Beagle)", + "containerRuntimeVersion": "docker://19.3.0", + "kubeletVersion": "v1.16.0", + "kubeProxyVersion": "v1.16.0", + "operatingSystem": "linux", + "architecture": "amd64" + }, + "images": [ + { + "names": [ + "fanux/lvscare:latest" + ], + "sizeBytes": 298145855 + }, + { + "names": [ + "k8s.gcr.io/etcd:3.3.15-0" + ], + "sizeBytes": 246640776 + }, + { + "names": [ + "k8s.gcr.io/kube-apiserver:v1.16.0" + ], + "sizeBytes": 217066846 + }, + { + "names": [ + "calico/node:v3.8.2" + ], + "sizeBytes": 188867043 + }, + { + "names": [ + "eipwork/kuboard@sha256:a02e79c7d1c088b0b286a130ce22c5fdd0a0d922818d1ee791d3c3e7cd6424fb", + "eipwork/kuboard:v2.0.2.1" + ], + "sizeBytes": 181651211 + }, + { + "names": [ + "eipwork/kuboard@sha256:ac58c563cbed9c305572e4215919ca166d59141450a4818af5fd510fb3b76d3f", + "eipwork/kuboard:v2.0.1" + ], + "sizeBytes": 180568311 + }, + { + "names": [ + "k8s.gcr.io/kube-controller-manager:v1.16.0" + ], + "sizeBytes": 163310046 + }, + { + "names": [ + "calico/cni:v3.8.2" + ], + "sizeBytes": 157250943 + }, + { + "names": [ + "k8s.gcr.io/kube-scheduler:v1.16.0" + ], + "sizeBytes": 87265822 + }, + { + "names": [ + "k8s.gcr.io/kube-proxy:v1.16.0" + ], + "sizeBytes": 86056924 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:8791a35427c3f0d16be5e0d953e9704b74b196ff2c4f65e20bc8740738eda87c", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.88-00a6585-aliyun" + ], + "sizeBytes": 68574874 + }, + { + "names": [ + "calico/kube-controllers:v3.8.2" + ], + "sizeBytes": 46809393 + }, + { + "names": [ + "k8s.gcr.io/coredns:1.6.2" + ], + "sizeBytes": 44100963 + }, + { + "names": [ + "quay.io/coreos/kube-rbac-proxy@sha256:9d07c391aeb1a9d02eb4343c113ed01825227c70c32b3cae861711f90191b0fd", + "quay.io/coreos/kube-rbac-proxy:v0.4.1" + ], + "sizeBytes": 41317870 + }, + { + "names": [ + "quay.io/prometheus/node-exporter@sha256:a2f29256e53cc3e0b64d7a472512600b2e9410347d53cdc85b49f659c17e02ee", + "quay.io/prometheus/node-exporter:v0.18.1" + ], + "sizeBytes": 22933477 + }, + { + "names": [ + "calico/pod2daemon-flexvol:v3.8.2" + ], + "sizeBytes": 9371181 + }, + { + "names": [ + "k8s.gcr.io/pause:3.1" + ], + "sizeBytes": 742472 + } + ] + } + }, + { + "metadata": { + "name": "qingke7", + "selfLink": "/api/v1/nodes/qingke7", + "uid": "7e2bc9ad-b033-482b-94ed-f361c12132b0", + "resourceVersion": "1562508", + "creationTimestamp": "2020-06-23T01:43:05Z", + "labels": { + "beta.kubernetes.io/arch": "amd64", + "beta.kubernetes.io/os": "linux", + "file": "nfs", + "kubernetes.io/arch": "amd64", + "kubernetes.io/hostname": "qingke7", + "kubernetes.io/os": "linux", + "node-role.kubernetes.io/rocketmq": "true" + }, + "annotations": { + "kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock", + "node.alpha.kubernetes.io/ttl": "0", + "projectcalico.org/IPv4Address": "192.168.7.10/24", + "projectcalico.org/IPv4IPIPTunnelAddr": "172.16.74.0" + } + }, + "spec": { + "podCIDR": "172.16.3.0/24", + "podCIDRs": [ + "172.16.3.0/24" + ] + }, + "status": { + "capacity": { + "cpu": "4", + "ephemeral-storage": "41152812Ki", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "15453244Ki", + "pods": "110" + }, + "allocatable": { + "cpu": "4", + "ephemeral-storage": "37926431477", + "hugepages-1Gi": "0", + "hugepages-2Mi": "0", + "memory": "15350844Ki", + "pods": "110" + }, + "conditions": [ + { + "type": "NetworkUnavailable", + "status": "False", + "lastHeartbeatTime": "2020-06-23T06:39:45Z", + "lastTransitionTime": "2020-06-23T06:39:45Z", + "reason": "CalicoIsUp", + "message": "Calico is running on this node" + }, + { + "type": "MemoryPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasSufficientMemory", + "message": "kubelet has sufficient memory available" + }, + { + "type": "DiskPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasNoDiskPressure", + "message": "kubelet has no disk pressure" + }, + { + "type": "PIDPressure", + "status": "False", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-23T01:43:05Z", + "reason": "KubeletHasSufficientPID", + "message": "kubelet has sufficient PID available" + }, + { + "type": "Ready", + "status": "True", + "lastHeartbeatTime": "2020-06-30T07:53:44Z", + "lastTransitionTime": "2020-06-28T02:18:04Z", + "reason": "KubeletReady", + "message": "kubelet is posting ready status" + } + ], + "addresses": [ + { + "type": "InternalIP", + "address": "192.168.7.10" + }, + { + "type": "Hostname", + "address": "qingke7" + } + ], + "daemonEndpoints": { + "kubeletEndpoint": { + "Port": 10250 + } + }, + "nodeInfo": { + "machineID": "20200324192605263653907622370367", + "systemUUID": "a32813bc-00b3-4bc5-a0ba-0ca52c1642a0", + "bootID": "ce9baccf-5a23-4dfb-b59a-e84c4930109a", + "kernelVersion": "4.19.91-18.al7.x86_64", + "osImage": "Aliyun Linux 2.1903 LTS (Hunting Beagle)", + "containerRuntimeVersion": "docker://19.3.0", + "kubeletVersion": "v1.16.0", + "kubeProxyVersion": "v1.16.0", + "operatingSystem": "linux", + "architecture": "amd64" + }, + "images": [ + { + "names": [ + "elasticsearch@sha256:6606066f12f09efeaaee8c3e9445fc1d60df5e947d87688049f9443207d2ead2", + "elasticsearch:6.8.8" + ], + "sizeBytes": 898375938 + }, + { + "names": [ + "jenkins/jenkins@sha256:0e8912b04f962b258ff9f51fb85fd1a9c5458e9d6e2f84aee747d765de0b7b70", + "jenkins/jenkins:lts" + ], + "sizeBytes": 658311436 + }, + { + "names": [ + "mysql@sha256:e821ca8cc7a44d354486f30c6a193ec6b70a4eed8c8362aeede4e9b8d74b8ebb", + "mysql:5.7" + ], + "sizeBytes": 448101935 + }, + { + "names": [ + "solsson/kafka@sha256:450c6fdacae3f89ca28cecb36b2f120aad9b19583d68c411d551502ee8d0b09b" + ], + "sizeBytes": 368555491 + }, + { + "names": [ + "influxdb@sha256:719906adf2d0f83961de6c32858265044873b6644379b1c54b6903f558bf8b0e", + "influxdb:1.7.10" + ], + "sizeBytes": 310658163 + }, + { + "names": [ + "fanux/lvscare:latest" + ], + "sizeBytes": 298145855 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/test_k8s/xtrabackup@sha256:7139d82c492c9e2938f6893bfe506e0aec97fd44c5fb48053f5aa6816417508b", + "registry.cn-hangzhou.aliyuncs.com/test_k8s/xtrabackup:1.0" + ], + "sizeBytes": 264925334 + }, + { + "names": [ + "k8s.gcr.io/etcd:3.3.15-0" + ], + "sizeBytes": 246640776 + }, + { + "names": [ + "k8s.gcr.io/kube-apiserver:v1.16.0" + ], + "sizeBytes": 217066846 + }, + { + "names": [ + "calico/node:v3.8.2" + ], + "sizeBytes": 188867043 + }, + { + "names": [ + "eipwork/kuboard@sha256:ac58c563cbed9c305572e4215919ca166d59141450a4818af5fd510fb3b76d3f", + "eipwork/kuboard:latest" + ], + "sizeBytes": 180568311 + }, + { + "names": [ + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume@sha256:4129be52db5fecdc12101c88017cf2780a131e63f813cb7a06d22c9dcba6bce9", + "registry.cn-beijing.aliyuncs.com/lyf1999/flexvolume:l1" + ], + "sizeBytes": 165760163 + }, + { + "names": [ + "k8s.gcr.io/kube-controller-manager:v1.16.0" + ], + "sizeBytes": 163310046 + }, + { + "names": [ + "calico/cni:v3.8.2" + ], + "sizeBytes": 157250943 + }, + { + "names": [ + "\u003cnone\u003e@\u003cnone\u003e", + "\u003cnone\u003e:\u003cnone\u003e" + ], + "sizeBytes": 132645069 + }, + { + "names": [ + "quay.io/prometheus/prometheus@sha256:b6275644820cf7a256cd9502eafb35a0b1862b59a3c49afb8267f75ffe79efcc", + "quay.io/prometheus/prometheus:v2.11.0" + ], + "sizeBytes": 125685107 + }, + { + "names": [ + "solsson/kafka-initutils@sha256:f6d9850c6c3ad5ecc35e717308fddb47daffbde18eb93e98e031128fe8b899ef" + ], + "sizeBytes": 113972719 + }, + { + "names": [ + "redis@sha256:89051d5ec46a89d4a708467af38eaaf4029450c4b1b9835ffd413cf70625b22e", + "redis:6.0.3" + ], + "sizeBytes": 104120620 + }, + { + "names": [ + "k8s.gcr.io/kube-scheduler:v1.16.0" + ], + "sizeBytes": 87265822 + }, + { + "names": [ + "k8s.gcr.io/kube-proxy:v1.16.0" + ], + "sizeBytes": 86056924 + }, + { + "names": [ + "ubuntu@sha256:35c4a2c15539c6c1e4e5fa4e554dac323ad0107d8eb5c582d6ff386b383b7dce", + "ubuntu:latest" + ], + "sizeBytes": 73856440 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume@sha256:8791a35427c3f0d16be5e0d953e9704b74b196ff2c4f65e20bc8740738eda87c", + "registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.14.8.88-00a6585-aliyun" + ], + "sizeBytes": 68574874 + }, + { + "names": [ + "quay.io/coreos/k8s-prometheus-adapter-amd64@sha256:5882cda1ee0a8e65e7df4af93a7a1cf36ade9108ee35ef155d7009dc6eaad8a0", + "quay.io/coreos/k8s-prometheus-adapter-amd64:v0.5.0" + ], + "sizeBytes": 60881026 + }, + { + "names": [ + "minio/minio@sha256:05dd142f7a67d3b79a84b24d1520c0c58876be14e165491b6dfca171fe11c1f6", + "minio/minio:RELEASE.2020-05-08T02-40-49Z" + ], + "sizeBytes": 56792262 + }, + { + "names": [ + "quay.io/prometheus/alertmanager@sha256:3d52ab7ef3a2e23e26a73cfd0ce13189e3796fb276b9af3e79664e4f743d8a1d", + "quay.io/prometheus/alertmanager:v0.18.0" + ], + "sizeBytes": 51873059 + }, + { + "names": [ + "calico/kube-controllers:v3.8.2" + ], + "sizeBytes": 46809393 + }, + { + "names": [ + "eipwork/nfs-client-provisioner@sha256:4c16495be5b893efea1c810e8451c71e1c58f076494676cae2ecab3a382b6ed0", + "eipwork/nfs-client-provisioner:v3.1.0-k8s1.11" + ], + "sizeBytes": 45478559 + }, + { + "names": [ + "k8s.gcr.io/coredns:1.6.2" + ], + "sizeBytes": 44100963 + }, + { + "names": [ + "registry.cn-hangzhou.aliyuncs.com/acs/alicloud-disk-controller@sha256:e874300568ced63ff0ae15667f867f78a66b8aad1a132da96aeadebda690c5a5", + "registry.cn-hangzhou.aliyuncs.com/acs/alicloud-disk-controller:v1.12.6.21-54d91d6-aliyun" + ], + "sizeBytes": 41866337 + }, + { + "names": [ + "quay.io/coreos/kube-rbac-proxy@sha256:9d07c391aeb1a9d02eb4343c113ed01825227c70c32b3cae861711f90191b0fd", + "quay.io/coreos/kube-rbac-proxy:v0.4.1" + ], + "sizeBytes": 41317870 + }, + { + "names": [ + "quay.io/prometheus/node-exporter@sha256:a2f29256e53cc3e0b64d7a472512600b2e9410347d53cdc85b49f659c17e02ee", + "quay.io/prometheus/node-exporter:v0.18.1" + ], + "sizeBytes": 22933477 + }, + { + "names": [ + "quay.io/coreos/prometheus-config-reloader@sha256:459bc1b1fc51420cd244b082fe14444f6d8596997c2e40f52c08d1f5a09ab860", + "quay.io/coreos/prometheus-config-reloader:v0.34.0" + ], + "sizeBytes": 10152002 + }, + { + "names": [ + "calico/pod2daemon-flexvol:v3.8.2" + ], + "sizeBytes": 9371181 + }, + { + "names": [ + "quay.io/coreos/configmap-reload@sha256:e2fd60ff0ae4500a75b80ebaa30e0e7deba9ad107833e8ca53f0047c42c5a057", + "quay.io/coreos/configmap-reload:v0.0.1" + ], + "sizeBytes": 4785056 + }, + { + "names": [ + "juliohm/kubernetes-cifs-volumedriver-installer@sha256:5bbde5743d39087e3126682b0ed2ce8eda3f66d5053482d3c124bf042bbd1c27", + "juliohm/kubernetes-cifs-volumedriver-installer:2.0" + ], + "sizeBytes": 4004607 + }, + { + "names": [ + "busybox@sha256:95cf004f559831017cdf4628aaf1bb30133677be8702a8c5f2994629f637a209", + "busybox:latest" + ], + "sizeBytes": 1219430 + }, + { + "names": [ + "busybox@sha256:bbc3a03235220b170ba48a157dd097dd1379299370e1ed99ce976df0355d24f0", + "busybox:1.27" + ], + "sizeBytes": 1129289 + }, + { + "names": [ + "k8s.gcr.io/pause:3.1" + ], + "sizeBytes": 742472 + } + ], + "volumesInUse": [ + "flexvolume-alicloud/nas/influxdb-pv-0", + "flexvolume-alicloud/nas/kafka-data-kafka-0-pvc-e2211852-f968-41dd-8830-b63b8882569a", + "flexvolume-alicloud/nas/kafka-data-pzoo-0-pvc-8c722dfd-44d4-4c7d-94e5-70d4c8674f09", + "flexvolume-alicloud/nas/kafka-data-zoo-1-pvc-8b996e41-3281-4c95-bc90-4912d8cbc00c", + "flexvolume-alicloud/nas/minio-pv-0", + "flexvolume-alicloud/nas/redis-redis-data-redis-app-0-pvc-09e45545-9672-4776-a59c-2d9852f9e4f1", + "flexvolume-alicloud/nas/redis-redis-data-redis-app-3-pvc-548f676b-6c2a-40d1-8773-378eab6d053c" + ] + } + } + ] +} diff --git a/support/change-log/prometheus-adapter-compitable-issue/prometheus-adapter.yaml b/support/change-log/prometheus-adapter-compitable-issue/prometheus-adapter.yaml new file mode 100644 index 0000000..d54f9e4 --- /dev/null +++ b/support/change-log/prometheus-adapter-compitable-issue/prometheus-adapter.yaml @@ -0,0 +1,76 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + deployment.kubernetes.io/revision: '1' + kubectl.kubernetes.io/last-applied-configuration: > + {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"prometheus-adapter","namespace":"monitoring"},"spec":{"replicas":1,"selector":{"matchLabels":{"name":"prometheus-adapter"}},"strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}},"template":{"metadata":{"labels":{"name":"prometheus-adapter"}},"spec":{"containers":[{"args":["--cert-dir=/var/run/serving-cert","--config=/etc/adapter/config.yaml","--logtostderr=true","--metrics-relist-interval=1m","--prometheus-url=http://prometheus-k8s.monitoring.svc:9090/","--secure-port=6443"],"image":"quay.io/coreos/k8s-prometheus-adapter-amd64:v0.5.0","name":"prometheus-adapter","ports":[{"containerPort":6443}],"volumeMounts":[{"mountPath":"/tmp","name":"tmpfs","readOnly":false},{"mountPath":"/var/run/serving-cert","name":"volume-serving-cert","readOnly":false},{"mountPath":"/etc/adapter","name":"config","readOnly":false}]}],"nodeSelector":{"kubernetes.io/os":"linux"},"serviceAccountName":"prometheus-adapter","volumes":[{"emptyDir":{},"name":"tmpfs"},{"emptyDir":{},"name":"volume-serving-cert"},{"configMap":{"name":"adapter-config"},"name":"config"}]}}}} + creationTimestamp: '2020-06-23T07:20:13Z' + generation: 1 + labels: {} + name: prometheus-adapter + namespace: monitoring + resourceVersion: '49918' + selfLink: /apis/apps/v1/namespaces/monitoring/deployments/prometheus-adapter + uid: b801b8f2-3df5-40e0-829d-377c0db12350 +spec: + progressDeadlineSeconds: 600 + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + name: prometheus-adapter + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + type: RollingUpdate + template: + metadata: + creationTimestamp: null + labels: + name: prometheus-adapter + spec: + containers: + - args: + - '--cert-dir=/var/run/serving-cert' + - '--config=/etc/adapter/config.yaml' + - '--logtostderr=true' + - '--metrics-relist-interval=1m' + - '--prometheus-url=http://prometheus-k8s.monitoring.svc:9090/' + - '--secure-port=6443' + image: 'quay.io/coreos/k8s-prometheus-adapter-amd64:v0.5.0' + imagePullPolicy: IfNotPresent + name: prometheus-adapter + ports: + - containerPort: 6443 + protocol: TCP + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /tmp + name: tmpfs + - mountPath: /var/run/serving-cert + name: volume-serving-cert + - mountPath: /etc/adapter + name: config + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + serviceAccount: prometheus-adapter + serviceAccountName: prometheus-adapter + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: tmpfs + - emptyDir: {} + name: volume-serving-cert + - configMap: + defaultMode: 420 + name: adapter-config + name: config