diff --git a/tcp_tests/fixtures/stacklight_fixtures.py b/tcp_tests/fixtures/stacklight_fixtures.py
index 6d7d2e9..f907055 100644
--- a/tcp_tests/fixtures/stacklight_fixtures.py
+++ b/tcp_tests/fixtures/stacklight_fixtures.py
@@ -72,6 +72,7 @@
     LOG.warning('Restarting keepalived service on controllers...')
     sl_actions._salt.local(tgt='ctl*', fun='cmd.run',
                            args='systemctl restart keepalived.service')
+    LOG.warning('Restarting keepalived service on mon nodes...')
     sl_actions._salt.local(tgt='mon*', fun='cmd.run',
                        args='systemctl restart keepalived.service')
     return sl_actions
diff --git a/tcp_tests/tests/system/test_install_k8s.py b/tcp_tests/tests/system/test_install_k8s.py
index 0af33e3..fa8f3fc 100644
--- a/tcp_tests/tests/system/test_install_k8s.py
+++ b/tcp_tests/tests/system/test_install_k8s.py
@@ -26,7 +26,7 @@
 
     @pytest.mark.fail_snapshot
     def test_k8s_install(self, config, show_step,
-                         k8s_deployed, k8s_actions, sl_deployed):
+                         k8s_deployed, k8s_actions, sl_deployed, sl_actions):
         """Test for deploying MCP environment with k8s+stacklight and check it
 
         Scenario:
@@ -78,10 +78,21 @@
                     metric, res.text)
 
         prometheus_client = sl_deployed.api
-        current_targets = prometheus_client.get_targets()
-        #todo (tleontovich) add assertion that k8s targets here
-        LOG.debug('Current targets after install {0}'.format(current_targets))
+        try:
+            current_targets = prometheus_client.get_targets()
+            LOG.debug('Current targets after install {0}'.format(current_targets))
+        except:
+            LOG.warning('Restarting keepalived service on mon nodes...')
+            sl_actions._salt.local(tgt='mon*', fun='cmd.run',
+                                   args='systemctl restart keepalived')
+            LOG.warning(
+                'Ip states after forset restart {0}'.format(
+                    sl_actions._salt.local(tgt='mon*',
+                                           fun='cmd.run', args='ip a')))
+            current_targets = prometheus_client.get_targets()
+            LOG.debug('Current targets after install {0}'.format(current_targets))
 
+        #todo (tleontovich) add assertion that k8s targets here
         for metric in metrics:
             res = prometheus_client.get_query(metric)
             for entry in res:
