معرفی شرکت ها


autoqube-kubernetes-1.0.2


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

Kubernetes Handler module for AUTOQUBE load testing
ویژگی مقدار
سیستم عامل -
نام فایل autoqube-kubernetes-1.0.2
نام autoqube-kubernetes
نسخه کتابخانه 1.0.2
نگهدارنده ['CloudFxLabs']
ایمیل نگهدارنده ['gswaroop@cloudfxlabs.io']
نویسنده CloudFxLabs
ایمیل نویسنده gswaroop@cloudfxlabs.io
آدرس صفحه اصلی https://gitlab.com/autoqube/aq-kubernetes
آدرس اینترنتی https://pypi.org/project/autoqube-kubernetes/
مجوز BSD 3
python-autoqube_kubernetes ========================== This library contains: - Objects for * Creating, updating and deleting a Kubernetes cluster. * Deploying various objects on Kubernetes cluster. * Running Jmeter Load tests on Kubernetes cluster. **Table of Contents** .. contents:: :backlinks: none :local: Installation ------------ python-autoqube_kubernetes is compatible with Python 3.x. It is listed on `PyPi as 'autoqube_kubernetes'`_. The recommended way to install is via pip_: .. code:: pip install autoqube_kubernetes .. _PyPi as 'autoqube_kubernetes': https://pypi.python.org/pypi/autoqube_kubernetes/ .. _pip: http://www.pip-installer.org Prerequisites ------------- - **kops**: kops is a command line utility tool required to manage kubernetes cluster. The installation information is available at `kops installation`_. - **kubectl**: kubectl is a command line utility tool required to manage various objects on existing kubernetes cluster. The installation information is available at `kubectl installation`_. - **dns-zone**: A public hosted zone should be created for AWS which would be the same as the name of the cluster. Please refer `creating dns-zone`_. .. _kops installation: https://github.com/kubernetes/kops/blob/master/docs/install.md .. _kubectl installation: https://kubernetes.io/docs/tasks/tools/install-kubectl/ .. _creating dns-zone: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html KubernetesHandler ----------------- KubernetesHandler object will create, delete cluster and run load tests. Kubernetes cluster ~~~~~~~~~~~~~~~~~~ Currently the cluster creation is supported only on AWS cloud platform. For creating a new Kubernetes cluster, the following parameters are needed: - cloud_provider : The cloud provider on which the cluster needs to be created. - cluster_config : The configuration details for the cluster. - env_config : The environment configuration for storage of cloud provider essential keys. A typical cluster configuration file would be like .. code-block:: python config = { "cloud_provider": "AWS", "cluster_config": { 'node-count': 2, 'master-size': 't2.small', 'master-zones': 'us-west-2a', 'zones': 'us-west-2a', 'name': 'aq.autoqube.io', 'node-size': 't2.small', 'ssh-public-key': '/Users/autoqube/.ssh/id_rsa.pub', 'dns-zone': 'aq.autoqube.io', }, "env_config": { 'AWS_ACCESS_KEY_ID': '*********************', 'AWS_SECRET_ACCESS_KEY': '***********************', 'AWS_REGION': 'us-west-2', 'KUBECONFIG': '/Users/autoqube/kubernetes/aq.autoqube.io/kubeconfig', 'KOPS_STATE_STORE': 's3://agent-kops-store' }, } *For better understanding or debugging of various processes running behind, setup a logging functionality.* .. code-block:: python from autoqube_kubernetes import KubernetesHandler import config import logging root_logger = logging.getLogger() console_handler = logging.StreamHandler() root_logger.setLevel(logging.INFO) root_logger.addHandler(console_handler) kubernetes_handler = KubernetesHandler(config) kubernetes_handler.create_cluster() # Creation of cluster with the above configuration. # kubeconfig will be stored in the path specified in the configuration. kubernetes_handler.delete_cluster() # Deletion of cluster with the above configuration. Load Testing ~~~~~~~~~~~~ - Currently only 'jmeter' load testing is supported on kubernetes cluster. - Load testing using jmeter on a kubernetes cluster has been inspired from the following `blog`_. - The results of the load test can be visually seen on grafana service dashboards. - The templates for deployment of various kubernetes objects required for jmeter load testing can be downloaded from `Jmeter Load Test Templates`_. - Extract the downloaded templates and place them in location accessible by python. - The following parameters are needed for load testing * load_config - The configuration details about type of load test and the templates for kubernetes objects. * test_file_config - The configuration details about the test files for load test. A sample configuration would be like .. code-block:: python load_config = { 'test_type': 'jmeter', 'templates_path': '/Users/autoqube/kubernetes/load_testing/k8s_templates/jmeter/' } test_file_config = { 'test_files': ['./tmp/sample.jmx', './tmp/sample.csv'] } .. _blog: https://blog.kubernauts.io/load-testing-as-a-service-with-jmeter-on-kubernetes-fc5288bb0c8b .. _Jmeter Load Test Templates: https://drive.google.com/file/d/1egtHVMALE3FzwFZ6OJO9ZiR678mvvaaY/ KubernetesHandler will create the necessary objects on cluster and run load tests. .. code-block:: python # After creation of kubernetes cluster using 'kubernetes_handler'. kubernetes_handler.create_load_test(load_config) # Creates pods, deployments, services and other objects required for # load testing on cluster. kubernetes_handler.run_load_test(test_file_config) # Run load tests using the test files provided in the configuration kubernetes_handler.destroy_load_test(load_config) # Once the tests are complete, all the resources created can be destroyed # and only empty cluster will remain. KubernetesClient ---------------- KubernetesClient can be used to perform various actions on existing cluster like: * Creating objects from yaml files * Destroying resources on cluster * Listing all the pods and services on cluster * Executing commands on a specific pod * Copy files to a specific pod kubeconfig of a cluster is required. .. code-block:: python from autoqube_kubernetes import KubernetesClient kubernetes_client = KubernetesClient('/path/to/kubeconfig') namespace = 'autoqube' # Namespace on which the operations are to be performed. kubernetes_client.create_object('/path/to/yaml', namespace) # Creates object from yaml file. kubernetes_client.get_pod_list(namespace) # Lists all the pods. kubernetes_client.get_service_list(namespace) # Lists all the services. podname = 'autoqube-jmeter' commands_list = ['cd ~', 'ls'] kubernetes_client.execute_commands(podname, commands_list, namespace) # Executes the commands on a specific pod. kubernetes_client.destroy_all_resources(namespace) # Destroys all resources in a given namespace.


نیازمندی

مقدار نام
- kubernetes
- pymongo
- pyyaml


نحوه نصب


نصب پکیج whl autoqube-kubernetes-1.0.2:

    pip install autoqube-kubernetes-1.0.2.whl


نصب پکیج tar.gz autoqube-kubernetes-1.0.2:

    pip install autoqube-kubernetes-1.0.2.tar.gz