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);

Reply via email to