python中一个简单但有用的kubernetes工具包
pyk的Python项目详细描述
这是一个简单但有用的工具包,它支持您编写 带有kubernetes的微服务风格应用程序。
PYK工具包应该由以下工具使用 kploy或从您自己的应用程序。它 是面向清单的,也就是说,它期望在 yaml文件;目前pyk的api如下:
- 执行任意 operation 并返回资源(如果有): execute_operation(method='GET',ops_path='',payload='')
- 返回资源的说明: describe_resource(resource_path)
- 删除资源:delete_resource(resource_path)
- 创建复制控制器(RC): create_rc(manifest_filename, namespace='default')
- A级钢筋混凝土: scale_rc(manifest_filename, namespace='default', num_replicas=0)
- 创建服务: create_svc(manifest_filename, namespace='default')
使用pyk
例如,一个简单的使用模式是创建Replication Controller:
import pprint from pyk import toolkit pyk_client = toolkit.KubeHTTPClient() # assumes local API Server at http://localhost:8080 _, rc_url = pyk_client.create_rc(manifest_filename='manifest/nginx-webserver-rc.yaml') rc = pyk_client.describe_resource(rc_url) pprint.pprint(rc.json())
测试PYK
要运行测试,请使用 test_pyk.py $KUBERNETES_API_SERVER_URL,例如:
$ ./test_pyk.py http://52.33.181.164/service/kubernetes
上面运行了所有的测试。您还可以指定特定的测试,如 所以:
$ ./test_pyk.py http://52.33.181.164/service/kubernetes "init app" ================================================================================ = Test case: init a simple app 2015-11-28T05:13:16 From manifest/nginx-webserver-rc.yaml I created the RC "webserver-rc" at /api/v1/namespaces/default/replicationcontrollers/webserver-rc 2015-11-28T05:13:17 From manifest/webserver-svc.yaml I created the service "webserver-svc" at /api/v1/namespaces/default/services/webserver-svc 2015-11-28T05:13:18 Found following endpoints: 2015-11-28T05:13:18 /api/v1/namespaces/default/endpoints/k8sm-scheduler -> { "addresses": [ { "ip": "10.0.3.45" } ], "ports": [ { "port": 25504, "protocol": "TCP" } ] } 2015-11-28T05:13:18 /api/v1/namespaces/default/endpoints/kubernetes -> { "addresses": [ { "ip": "10.0.3.45" } ], "ports": [ { "port": 25502, "protocol": "TCP" } ] } 2015-11-28T05:13:18 /api/v1/namespaces/default/endpoints/webserver-svc ->