This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 8997796a04 Revert selecting `Ready` Pods, remove `Terminating` Pods in
OAP cluster (#10988)
8997796a04 is described below
commit 8997796a041ea8fd6f32cc21733dd1628283a63b
Author: kezhenxu94 <[email protected]>
AuthorDate: Sun Jun 25 13:50:58 2023 +0800
Revert selecting `Ready` Pods, remove `Terminating` Pods in OAP cluster
(#10988)
---
docs/en/changes/changes.md | 2 +-
.../cluster/plugin/kubernetes/KubernetesCoordinator.java | 5 ++---
.../cluster/plugin/kubernetes/NamespacedPodListInformer.java | 3 +--
.../apache/skywalking/library/kubernetes/KubernetesPods.java | 10 ----------
4 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 40c047bded..5bd587794b 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -8,7 +8,6 @@
* Add Neo4j component ID(112) language: Python.
* Add Istio ServiceEntry registry to resolve unknown IPs in ALS.
-* Improve Kubernetes coordinator to only select ready OAP Pods to build
cluster.
* Wrap `deleteProperty` API to the BanyanDBStorageClient.
* [Breaking change] Remove `matchedCounter` from
`HttpUriRecognitionService#feedRawData`.
* Remove patterns from `HttpUriRecognitionService#feedRawData` and add max 10
candidates of raw URIs for each pattern.
@@ -17,6 +16,7 @@
* Fix `NPE` in metrics query when the metric is not exist.
* Remove E2E tests for Istio < 1.15, ElasticSearch < 7.16.3, they might still
work but are not supported as planed.
* Scroll all results in ElasticSearch storage and refactor scrolling logics,
including Service, Instance, Endpoint, Process, etc.
+* Improve Kubernetes coordinator to remove `Terminating` OAP Pods in cluster.
#### UI
* Fix metric name `browser_app_error_rate` in `Browser-Root` dashboard.
diff --git
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
index cda5e40cd9..97abc20da9 100644
---
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
+++
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/KubernetesCoordinator.java
@@ -23,7 +23,6 @@ import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodStatus;
import io.fabric8.kubernetes.client.informers.ResourceEventHandler;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.library.kubernetes.KubernetesPods;
import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.cluster.ClusterCoordinator;
import org.apache.skywalking.oap.server.core.cluster.ClusterHealthStatus;
@@ -179,9 +178,9 @@ public class KubernetesCoordinator extends
ClusterCoordinator {
switch (event) {
case ADDED:
case MODIFIED:
- if (KubernetesPods.isReady(pod)) {
+ if
("Running".equalsIgnoreCase(pod.getStatus().getPhase())) {
remoteInstanceMap.put(remoteInstance.getAddress().toString(), remoteInstance);
- } else {
+ } else if
("Terminating".equalsIgnoreCase(pod.getStatus().getPhase())) {
remoteInstanceMap.remove(remoteInstance.getAddress().toString());
}
break;
diff --git
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/NamespacedPodListInformer.java
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/NamespacedPodListInformer.java
index d26923afec..ac5e9d8f6a 100644
---
a/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/NamespacedPodListInformer.java
+++
b/oap-server/server-cluster-plugin/cluster-kubernetes-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/kubernetes/NamespacedPodListInformer.java
@@ -23,7 +23,6 @@ import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.informers.ResourceEventHandler;
import io.fabric8.kubernetes.client.informers.cache.Lister;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.library.kubernetes.KubernetesPods;
import java.util.List;
import java.util.Optional;
@@ -68,7 +67,7 @@ public enum NamespacedPodListInformer {
return Optional.ofNullable(podLister.list().size() != 0
? podLister.list()
.stream()
- .filter(KubernetesPods::isReady)
+ .filter(pod ->
"Running".equalsIgnoreCase(pod.getStatus().getPhase()))
.collect(Collectors.toList())
: null);
}
diff --git
a/oap-server/server-library/library-kubernetes-support/src/main/java/org/apache/skywalking/library/kubernetes/KubernetesPods.java
b/oap-server/server-library/library-kubernetes-support/src/main/java/org/apache/skywalking/library/kubernetes/KubernetesPods.java
index 2da878c77c..ea82445de6 100644
---
a/oap-server/server-library/library-kubernetes-support/src/main/java/org/apache/skywalking/library/kubernetes/KubernetesPods.java
+++
b/oap-server/server-library/library-kubernetes-support/src/main/java/org/apache/skywalking/library/kubernetes/KubernetesPods.java
@@ -72,16 +72,6 @@ public enum KubernetesPods {
});
}
- public static boolean isReady(Pod pod) {
- return "Running".equalsIgnoreCase(pod.getStatus().getPhase()) &&
- pod.getStatus()
- .getConditions()
- .stream()
- .anyMatch(condition ->
- "Ready".equalsIgnoreCase(condition.getType()) &&
- "True".equalsIgnoreCase(condition.getStatus()));
- }
-
@SneakyThrows
public Optional<Pod> findByIP(final String ip) {
return podByIP.get(ip);