{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/37618333","id":37618333,"diff_hunk":"@@ -0,0 +1,150 @@\n+<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->\n+\n+<!-- BEGIN STRIP_FOR_RELEASE -->\n+\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+\n+<h2>PLEASE NOTE: This document applies to the HEAD of the source tree</h2>\n+\n+If you are using a released version of Kubernetes, you should\n+refer to the docs that go with that version.\n+\n+<strong>\n+The latest 1.0.x release of this document can be found\n+[here](http://releases.k8s.io/release-1.0/docs/proposals/kubemark.md).\n+\n+Documentation for other releases can be found at\n+[releases.k8s.io](http://releases.k8s.io).\n+</strong>\n+--\n+\n+<!-- END STRIP_FOR_RELEASE -->\n+\n+<!-- END MUNGE: UNVERSIONED_WARNING -->\n+\n+# Kubemark proposal\n+\n+## Goal of this document\n+\n+This document describes a design of Kubemark - a system that allows performance testing of a Kubernetes cluster. It describes the assumption, high level design and discusses possible solutions for lower-level problems. It is supposed to be a starting point for more detailed discussion.\n+\n+## Current state and objective\n+\n+Currently performance testing happens on ‘live’ clusters of up to 100 Nodes. It takes quite a while to start such cluster or to push updates to all Nodes, and it uses quite a\n+lot of resources. At this scale the amount of wasted time and used resources is still acceptable. In the next quarter or two we’re targeting 1000 Node cluster, which will push\n+it way beyond ‘acceptable’ level. Additionally we want to enable people without many resources to run scalability tests on bigger clusters than they can afford at given time.\n+\n+This means that we need a system that will allow for realistic performance testing on (much) smaller number of “real” machines. First assumption we make is that Nodes are\n+independent, i.e. number of existing Nodes do not impact a performance of a single Node. This is not entirely true, as number of Nodes can increase latency of various\n+components on Master machine, which in turn may increase latency of Node operations, but we’re not interested in measuring this effect here. In turn we want to measure how\n+number of Nodes and the load imposed by Node daemons affects the performance of Master components.\n+\n+## Kubemark architecture overview\n+\n+The high-level idea behind Kubemark is to write library that allows running artificial \"Hollow\" Nodes that will be able to simulate a behavior of real Kubelet and KubeProxy in a single, lightweight","path":"docs/proposals/kubemark.md","position":53,"original_position":53,"commit_id":"1d5f6579c2050e17c6d875d4371ab600a329967f","original_commit_id":"1d5f6579c2050e17c6d875d4371ab600a329967f","user":{"login":"gmarek","id":1703842,"avatar_url":"https://avatars.githubusercontent.com/u/1703842?v=3","gravatar_id":"","url":"https://api.github.com/users/gmarek","html_url":"https://github.com/gmarek","followers_url":"https://api.github.com/users/gmarek/followers","following_url":"https://api.github.com/users/gmarek/following{/other_user}","gists_url":"https://api.github.com/users/gmarek/gists{/gist_id}","starred_url":"https://api.github.com/users/gmarek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gmarek/subscriptions","organizations_url":"https://api.github.com/users/gmarek/orgs","repos_url":"https://api.github.com/users/gmarek/repos","events_url":"https://api.github.com/users/gmarek/events{/privacy}","received_events_url":"https://api.github.com/users/gmarek/received_events","type":"User","site_admin":false},"body":"It won't be a Hologram anymore, it will be real-ish thing;)","created_at":"2015-08-21T09:16:41Z","updated_at":"2015-08-21T09:16:41Z","html_url":"https://github.com/kubernetes/kubernetes/pull/12530#discussion_r37618333","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/37618333"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/12530#discussion_r37618333"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530","id":42138887,"html_url":"https://github.com/kubernetes/kubernetes/pull/12530","diff_url":"https://github.com/kubernetes/kubernetes/pull/12530.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/12530.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/12530","number":12530,"state":"open","locked":false,"title":"Initial kubemark proposal","user":{"login":"gmarek","id":1703842,"avatar_url":"https://avatars.githubusercontent.com/u/1703842?v=3","gravatar_id":"","url":"https://api.github.com/users/gmarek","html_url":"https://github.com/gmarek","followers_url":"https://api.github.com/users/gmarek/followers","following_url":"https://api.github.com/users/gmarek/following{/other_user}","gists_url":"https://api.github.com/users/gmarek/gists{/gist_id}","starred_url":"https://api.github.com/users/gmarek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gmarek/subscriptions","organizations_url":"https://api.github.com/users/gmarek/orgs","repos_url":"https://api.github.com/users/gmarek/repos","events_url":"https://api.github.com/users/gmarek/events{/privacy}","received_events_url":"https://api.github.com/users/gmarek/received_events","type":"User","site_admin":false},"body":"cc @davidopp @lavalamp @wojtek-t @bgrant0607 @timothysc ","created_at":"2015-08-11T15:00:23Z","updated_at":"2015-08-21T09:16:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a9bbdf77c1a2104832445491c343bb1893775c5f","assignee":{"login":"davidopp","id":8264113,"avatar_url":"https://avatars.githubusercontent.com/u/8264113?v=3","gravatar_id":"","url":"https://api.github.com/users/davidopp","html_url":"https://github.com/davidopp","followers_url":"https://api.github.com/users/davidopp/followers","following_url":"https://api.github.com/users/davidopp/following{/other_user}","gists_url":"https://api.github.com/users/davidopp/gists{/gist_id}","starred_url":"https://api.github.com/users/davidopp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidopp/subscriptions","organizations_url":"https://api.github.com/users/davidopp/orgs","repos_url":"https://api.github.com/users/davidopp/repos","events_url":"https://api.github.com/users/davidopp/events{/privacy}","received_events_url":"https://api.github.com/users/davidopp/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/12530/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/1d5f6579c2050e17c6d875d4371ab600a329967f","head":{"label":"gmarek:kubemark_doc","ref":"kubemark_doc","sha":"1d5f6579c2050e17c6d875d4371ab600a329967f","user":{"login":"gmarek","id":1703842,"avatar_url":"https://avatars.githubusercontent.com/u/1703842?v=3","gravatar_id":"","url":"https://api.github.com/users/gmarek","html_url":"https://github.com/gmarek","followers_url":"https://api.github.com/users/gmarek/followers","following_url":"https://api.github.com/users/gmarek/following{/other_user}","gists_url":"https://api.github.com/users/gmarek/gists{/gist_id}","starred_url":"https://api.github.com/users/gmarek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gmarek/subscriptions","organizations_url":"https://api.github.com/users/gmarek/orgs","repos_url":"https://api.github.com/users/gmarek/repos","events_url":"https://api.github.com/users/gmarek/events{/privacy}","received_events_url":"https://api.github.com/users/gmarek/received_events","type":"User","site_admin":false},"repo":{"id":30216777,"name":"kubernetes","full_name":"gmarek/kubernetes","owner":{"login":"gmarek","id":1703842,"avatar_url":"https://avatars.githubusercontent.com/u/1703842?v=3","gravatar_id":"","url":"https://api.github.com/users/gmarek","html_url":"https://github.com/gmarek","followers_url":"https://api.github.com/users/gmarek/followers","following_url":"https://api.github.com/users/gmarek/following{/other_user}","gists_url":"https://api.github.com/users/gmarek/gists{/gist_id}","starred_url":"https://api.github.com/users/gmarek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gmarek/subscriptions","organizations_url":"https://api.github.com/users/gmarek/orgs","repos_url":"https://api.github.com/users/gmarek/repos","events_url":"https://api.github.com/users/gmarek/events{/privacy}","received_events_url":"https://api.github.com/users/gmarek/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gmarek/kubernetes","description":"Container Cluster Manager","fork":true,"url":"https://api.github.com/repos/gmarek/kubernetes","forks_url":"https://api.github.com/repos/gmarek/kubernetes/forks","keys_url":"https://api.github.com/repos/gmarek/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gmarek/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gmarek/kubernetes/teams","hooks_url":"https://api.github.com/repos/gmarek/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/gmarek/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/gmarek/kubernetes/events","assignees_url":"https://api.github.com/repos/gmarek/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/gmarek/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/gmarek/kubernetes/tags","blobs_url":"https://api.github.com/repos/gmarek/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gmarek/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gmarek/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/gmarek/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gmarek/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/gmarek/kubernetes/languages","stargazers_url":"https://api.github.com/repos/gmarek/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/gmarek/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/gmarek/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/gmarek/kubernetes/subscription","commits_url":"https://api.github.com/repos/gmarek/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/gmarek/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/gmarek/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/gmarek/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/gmarek/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/gmarek/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gmarek/kubernetes/merges","archive_url":"https://api.github.com/repos/gmarek/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gmarek/kubernetes/downloads","issues_url":"https://api.github.com/repos/gmarek/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/gmarek/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/gmarek/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/gmarek/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gmarek/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/gmarek/kubernetes/releases{/id}","created_at":"2015-02-03T00:37:49Z","updated_at":"2015-03-10T14:50:28Z","pushed_at":"2015-08-21T08:43:56Z","git_url":"git://github.com/gmarek/kubernetes.git","ssh_url":"git@github.com:gmarek/kubernetes.git","clone_url":"https://github.com/gmarek/kubernetes.git","svn_url":"https://github.com/gmarek/kubernetes","homepage":"http://kubernetes.io","size":101772,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kubernetes:master","ref":"master","sha":"b6f18c7ce08714c8d4f6019463879a164a41750e","user":{"login":"kubernetes","id":13629408,"avatar_url":"https://avatars.githubusercontent.com/u/13629408?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes","html_url":"https://github.com/kubernetes","followers_url":"https://api.github.com/users/kubernetes/followers","following_url":"https://api.github.com/users/kubernetes/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes/subscriptions","organizations_url":"https://api.github.com/users/kubernetes/orgs","repos_url":"https://api.github.com/users/kubernetes/repos","events_url":"https://api.github.com/users/kubernetes/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes/received_events","type":"Organization","site_admin":false},"repo":{"id":20580498,"name":"kubernetes","full_name":"kubernetes/kubernetes","owner":{"login":"kubernetes","id":13629408,"avatar_url":"https://avatars.githubusercontent.com/u/13629408?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes","html_url":"https://github.com/kubernetes","followers_url":"https://api.github.com/users/kubernetes/followers","following_url":"https://api.github.com/users/kubernetes/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes/subscriptions","organizations_url":"https://api.github.com/users/kubernetes/orgs","repos_url":"https://api.github.com/users/kubernetes/repos","events_url":"https://api.github.com/users/kubernetes/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kubernetes/kubernetes","description":"Container Cluster Manager from Google","fork":false,"url":"https://api.github.com/repos/kubernetes/kubernetes","forks_url":"https://api.github.com/repos/kubernetes/kubernetes/forks","keys_url":"https://api.github.com/repos/kubernetes/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes/kubernetes/teams","hooks_url":"https://api.github.com/repos/kubernetes/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes/kubernetes/events","assignees_url":"https://api.github.com/repos/kubernetes/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes/kubernetes/tags","blobs_url":"https://api.github.com/repos/kubernetes/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes/kubernetes/languages","stargazers_url":"https://api.github.com/repos/kubernetes/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/kubernetes/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/kubernetes/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/kubernetes/kubernetes/subscription","commits_url":"https://api.github.com/repos/kubernetes/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes/kubernetes/merges","archive_url":"https://api.github.com/repos/kubernetes/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes/kubernetes/downloads","issues_url":"https://api.github.com/repos/kubernetes/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes/kubernetes/releases{/id}","created_at":"2014-06-06T22:56:04Z","updated_at":"2015-08-21T07:54:47Z","pushed_at":"2015-08-21T08:43:58Z","git_url":"git://github.com/kubernetes/kubernetes.git","ssh_url":"git@github.com:kubernetes/kubernetes.git","clone_url":"https://github.com/kubernetes/kubernetes.git","svn_url":"https://github.com/kubernetes/kubernetes","homepage":"http://kubernetes.io","size":356611,"stargazers_count":9820,"watchers_count":9820,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2368,"mirror_url":null,"open_issues_count":1765,"forks":2368,"open_issues":1765,"watchers":9820,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/12530"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/12530"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/12530/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/12530/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/1d5f6579c2050e17c6d875d4371ab600a329967f"}}}}