Esempio n. 1
0
 def test_create_stress2(self):
     interval = 30
     count = 2  # per node
     node_names = k8sclient.list_ready_nodenames()
     node_names = [n for n in node_names if not n.startswith("10.19.140")]
     # node_names = ["10.19.137.147"]
     for n in node_names:
         print n
     name_prefix = "podstresstest"
     for i in range(1, count + 1):
         labels = {"app": "test_create_stress-" + str(i)}
         for node in node_names:
             node_name = '-'.join(node.split('.'))
             name = "-".join([name_prefix, node_name, str(i)])
             self._create_pod(name, labels=labels, node_name=node)
         # create service to bound those pods
         svc_name = "pod-service-" + str(i)
         k8sclient.create_service(self.namespace,
                                  svc_name,
                                  port=self.port_number,
                                  selector=labels)
         time.sleep(interval)
     # wait for running state
     timeout = count * 30 * len(node_names) + 300
     for i in range(1, count + 1):
         for node in node_names:
             node_name = '-'.join(node.split('.'))
             name = "-".join([name_prefix, node_name, str(i)])
             timeout = self._wait_for_pod(name,
                                          timeout=timeout,
                                          expect_status="Running")
Esempio n. 2
0
def deploy():
    label1 = {"app": "test_service-1"}
    label2 = {"app": "test_service-2"}
    k8sclient.send_create_pod_request(namespace=namespace,
                                      name="pod-1",
                                      args=args,
                                      image=image,
                                      ports={port_number: port_name},
                                      labels=label1,
                                      node_name=node)
    k8sclient.create_service(namespace,
                             "service-1",
                             port=port_number,
                             selector=label1)
    k8sclient.send_create_pod_request(namespace=namespace,
                                      name="pod-2",
                                      args=args,
                                      image=image,
                                      ports={port_number: port_name},
                                      labels=label2,
                                      node_name=node)
    k8sclient.create_service(namespace,
                             "service-2",
                             port=port_number,
                             selector=label2)
Esempio n. 3
0
 def test_service_pod(self):
     # create some pods
     # create service selecting the pods
     name = "pod-service"
     k8sclient.create_service(self.namespace,
                              name,
                              port=self.port_number,
                              selector={"app": "test_create_stress"})
     services = k8sclient.list_services(self.namespace)
     service_names = [s.metadata.name for s in services.items]
     assert name in service_names, service_names
     k8sclient.remove_service(self.namespace, name)
     services = k8sclient.list_services(self.namespace)
     service_names = [s.metadata.name for s in services.items]
     assert name not in service_names, service_names
Esempio n. 4
0
 def test_stress_service_pod(self):
     name = "pod-service"
     for i in range(1000):
         k8sclient.create_service(self.namespace,
                                  name,
                                  port=self.port_number,
                                  selector={"app": "test_create_stress"})
         time.sleep(3)
         services = k8sclient.list_services(self.namespace)
         service_names = [s.metadata.name for s in services.items]
         assert name in service_names, service_names
         k8sclient.remove_service(self.namespace, name)
         time.sleep(3)
         services = k8sclient.list_services(self.namespace)
         service_names = [s.metadata.name for s in services.items]
         assert name not in service_names, service_names
Esempio n. 5
0
def _deploy_on_node(node):
    name_prefix = "-".join(node.split(".")) + uid
    label1 = {name_prefix + "-app": "test_service-1"}
    pod_label1 = label1.copy()
    pod_label1.update(glabel)
    label2 = {name_prefix + "-app": "test_service-2"}
    pod_label2 = label2.copy()
    pod_label2.update(glabel)
    pod1 = name_prefix + "-pod-1"
    pod2 = name_prefix + "-pod-2"
    service1 = "service-1-" + name_prefix
    service2 = "service-2-" + name_prefix
    k8sclient.send_create_pod_request(
        namespace=namespace,
        name=pod1,
        args=args,
        image=image,
        ports={port_number: port_name},
        labels=pod_label1,
        node_name=node,
        requests={'cpu': '0'},
        #limits={'cpu': '1200m'}
    )
    k8sclient.create_service(namespace,
                             service1,
                             port=port_number,
                             selector=label1)
    k8sclient.send_create_pod_request(
        namespace=namespace,
        name=pod2,
        args=args,
        image=image,
        ports={port_number: port_name},
        labels=pod_label2,
        node_name=node,
        requests={'cpu': '0'},
        #limits={'cpu': '1200m'}
    )
    k8sclient.create_service(namespace,
                             service2,
                             port=port_number,
                             selector=label2)
Esempio n. 6
0
def _deploy_global_service():
    k8sclient.create_service(namespace,
                             global_service,
                             port=port_number,
                             selector=glabel)