{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/81820895","pull_request_review_id":2772968,"id":81820895,"diff_hunk":"@@ -0,0 +1,194 @@\n+<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->\n+\n+<!-- BEGIN STRIP_FOR_RELEASE -->\n+\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/img/warning.png\" alt=\"WARNING\"\n+     width=\"25\" height=\"25\">\n+<img src=\"http://kubernetes.io/kubernetes/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+<!-- TAG RELEASE_LINK, added by the munger automatically -->\n+<strong>\n+The latest release of this document can be found\n+[here](http://releases.k8s.io/release-1.3/docs/proposals/job.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+# Ingress HA, Scheduling, and Provisioning Proposal\n+----\n+\n+\n+## Overview\n+Ingress can be used to expose a service in the kubernetes cluster:\n+\n+* usually cluster admin deploys one Ingress Pod\n+* user creates a Ingress resource\n+* the Ingress Pod will list&watch All Ingress Resources in the cluster\n+* user out of cluster then can access service in the cluster by accessing \n+  the node's ip on which Ingress Pod is running, Ingress Pod will forward \n+  request into cluster based on rules defined in Ingress Resource\n+\n+This just works. What's the issus then?\n+\n+The issues is:\n+\n+* It does not provide High Availability because client needs to know \n+  the IP addresss of the node where Ingress Pod is running. In case of a \n+  failure the Ingress Pod can be be moved to a different node.\n+* How many Ingress Pod should run in a cluster? Should all Ingress Pod \n+  list&watch all Ingress Resource with out distinction? There is no way \n+  to bind or schedule ingress resource to a Ingress Pod/ReplicaSet(or a \n+  set of Ingress Pods/ReplicaSets), result in insufficient or excessive \n+  use of resource.\n+\n+## Goal\n+This Proposal aims to address the above issues by the following mechanism:\n+\n+* Ingress HA: using keepalived and VIP to provide High Availability(mainly","path":"docs/proposals/ingress-ha-scheduling-provisioning.md","position":65,"original_position":65,"commit_id":"d95360a4a7392304b7ea4bc4566b2e979e9adc13","original_commit_id":"d95360a4a7392304b7ea4bc4566b2e979e9adc13","user":{"login":"bprashanth","id":10927820,"avatar_url":"https://avatars.githubusercontent.com/u/10927820?v=3","gravatar_id":"","url":"https://api.github.com/users/bprashanth","html_url":"https://github.com/bprashanth","followers_url":"https://api.github.com/users/bprashanth/followers","following_url":"https://api.github.com/users/bprashanth/following{/other_user}","gists_url":"https://api.github.com/users/bprashanth/gists{/gist_id}","starred_url":"https://api.github.com/users/bprashanth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bprashanth/subscriptions","organizations_url":"https://api.github.com/users/bprashanth/orgs","repos_url":"https://api.github.com/users/bprashanth/repos","events_url":"https://api.github.com/users/bprashanth/events{/privacy}","received_events_url":"https://api.github.com/users/bprashanth/received_events","type":"User","site_admin":false},"body":"clarify how much this gives us over just running a Service over the ingress controller(s)? ","created_at":"2016-10-04T18:21:08Z","updated_at":"2016-10-04T18:31:07Z","html_url":"https://github.com/kubernetes/kubernetes/pull/34013#discussion_r81820895","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/81820895"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/34013#discussion_r81820895"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013","id":87904810,"html_url":"https://github.com/kubernetes/kubernetes/pull/34013","diff_url":"https://github.com/kubernetes/kubernetes/pull/34013.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/34013.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/34013","number":34013,"state":"open","locked":false,"title":"Ingress HA, Scheduling, and Provisioning Proposal","user":{"login":"mqliang","id":12423751,"avatar_url":"https://avatars.githubusercontent.com/u/12423751?v=3","gravatar_id":"","url":"https://api.github.com/users/mqliang","html_url":"https://github.com/mqliang","followers_url":"https://api.github.com/users/mqliang/followers","following_url":"https://api.github.com/users/mqliang/following{/other_user}","gists_url":"https://api.github.com/users/mqliang/gists{/gist_id}","starred_url":"https://api.github.com/users/mqliang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mqliang/subscriptions","organizations_url":"https://api.github.com/users/mqliang/orgs","repos_url":"https://api.github.com/users/mqliang/repos","events_url":"https://api.github.com/users/mqliang/events{/privacy}","received_events_url":"https://api.github.com/users/mqliang/received_events","type":"User","site_admin":false},"body":"The idea in this doc is proposed at a high level, API/Implementation design is also rough mainly for illustrating the idea behind it. Comments are welcomed.\r\n\r\n@kubernetes/sig-network \r\n\r\ncc @ddysher @hongchaodeng\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.kubernetes.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/34013)\r\n<!-- Reviewable:end -->\r\n","created_at":"2016-10-04T14:26:14Z","updated_at":"2016-10-04T18:31:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f051c18921c52f6b66039e1d94d8aa62bfbea86d","assignee":{"login":"bgrant0607","id":7725777,"avatar_url":"https://avatars.githubusercontent.com/u/7725777?v=3","gravatar_id":"","url":"https://api.github.com/users/bgrant0607","html_url":"https://github.com/bgrant0607","followers_url":"https://api.github.com/users/bgrant0607/followers","following_url":"https://api.github.com/users/bgrant0607/following{/other_user}","gists_url":"https://api.github.com/users/bgrant0607/gists{/gist_id}","starred_url":"https://api.github.com/users/bgrant0607/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgrant0607/subscriptions","organizations_url":"https://api.github.com/users/bgrant0607/orgs","repos_url":"https://api.github.com/users/bgrant0607/repos","events_url":"https://api.github.com/users/bgrant0607/events{/privacy}","received_events_url":"https://api.github.com/users/bgrant0607/received_events","type":"User","site_admin":false},"assignees":[{"login":"bgrant0607","id":7725777,"avatar_url":"https://avatars.githubusercontent.com/u/7725777?v=3","gravatar_id":"","url":"https://api.github.com/users/bgrant0607","html_url":"https://github.com/bgrant0607","followers_url":"https://api.github.com/users/bgrant0607/followers","following_url":"https://api.github.com/users/bgrant0607/following{/other_user}","gists_url":"https://api.github.com/users/bgrant0607/gists{/gist_id}","starred_url":"https://api.github.com/users/bgrant0607/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgrant0607/subscriptions","organizations_url":"https://api.github.com/users/bgrant0607/orgs","repos_url":"https://api.github.com/users/bgrant0607/repos","events_url":"https://api.github.com/users/bgrant0607/events{/privacy}","received_events_url":"https://api.github.com/users/bgrant0607/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/34013/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/d95360a4a7392304b7ea4bc4566b2e979e9adc13","head":{"label":"mqliang:ingress-proposal","ref":"ingress-proposal","sha":"d95360a4a7392304b7ea4bc4566b2e979e9adc13","user":{"login":"mqliang","id":12423751,"avatar_url":"https://avatars.githubusercontent.com/u/12423751?v=3","gravatar_id":"","url":"https://api.github.com/users/mqliang","html_url":"https://github.com/mqliang","followers_url":"https://api.github.com/users/mqliang/followers","following_url":"https://api.github.com/users/mqliang/following{/other_user}","gists_url":"https://api.github.com/users/mqliang/gists{/gist_id}","starred_url":"https://api.github.com/users/mqliang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mqliang/subscriptions","organizations_url":"https://api.github.com/users/mqliang/orgs","repos_url":"https://api.github.com/users/mqliang/repos","events_url":"https://api.github.com/users/mqliang/events{/privacy}","received_events_url":"https://api.github.com/users/mqliang/received_events","type":"User","site_admin":false},"repo":{"id":42916417,"name":"kubernetes","full_name":"mqliang/kubernetes","owner":{"login":"mqliang","id":12423751,"avatar_url":"https://avatars.githubusercontent.com/u/12423751?v=3","gravatar_id":"","url":"https://api.github.com/users/mqliang","html_url":"https://github.com/mqliang","followers_url":"https://api.github.com/users/mqliang/followers","following_url":"https://api.github.com/users/mqliang/following{/other_user}","gists_url":"https://api.github.com/users/mqliang/gists{/gist_id}","starred_url":"https://api.github.com/users/mqliang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mqliang/subscriptions","organizations_url":"https://api.github.com/users/mqliang/orgs","repos_url":"https://api.github.com/users/mqliang/repos","events_url":"https://api.github.com/users/mqliang/events{/privacy}","received_events_url":"https://api.github.com/users/mqliang/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mqliang/kubernetes","description":"Container Cluster Manager from Google","fork":true,"url":"https://api.github.com/repos/mqliang/kubernetes","forks_url":"https://api.github.com/repos/mqliang/kubernetes/forks","keys_url":"https://api.github.com/repos/mqliang/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mqliang/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mqliang/kubernetes/teams","hooks_url":"https://api.github.com/repos/mqliang/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/mqliang/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/mqliang/kubernetes/events","assignees_url":"https://api.github.com/repos/mqliang/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/mqliang/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/mqliang/kubernetes/tags","blobs_url":"https://api.github.com/repos/mqliang/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mqliang/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mqliang/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/mqliang/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mqliang/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/mqliang/kubernetes/languages","stargazers_url":"https://api.github.com/repos/mqliang/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/mqliang/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/mqliang/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/mqliang/kubernetes/subscription","commits_url":"https://api.github.com/repos/mqliang/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/mqliang/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/mqliang/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/mqliang/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/mqliang/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/mqliang/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mqliang/kubernetes/merges","archive_url":"https://api.github.com/repos/mqliang/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mqliang/kubernetes/downloads","issues_url":"https://api.github.com/repos/mqliang/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/mqliang/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/mqliang/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/mqliang/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mqliang/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/mqliang/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/mqliang/kubernetes/deployments","created_at":"2015-09-22T06:44:47Z","updated_at":"2016-01-29T08:29:39Z","pushed_at":"2016-10-04T16:44:24Z","git_url":"git://github.com/mqliang/kubernetes.git","ssh_url":"git@github.com:mqliang/kubernetes.git","clone_url":"https://github.com/mqliang/kubernetes.git","svn_url":"https://github.com/mqliang/kubernetes","homepage":"http://kubernetes.io","size":311906,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"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":"96fde0fe8ddb603a5ab55d2bcef32b2b744eef1c","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":"Production-Grade Container Scheduling and Management","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}","deployments_url":"https://api.github.com/repos/kubernetes/kubernetes/deployments","created_at":"2014-06-06T22:56:04Z","updated_at":"2016-10-04T15:56:44Z","pushed_at":"2016-10-04T18:26:49Z","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":577252,"stargazers_count":17296,"watchers_count":17296,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5606,"mirror_url":null,"open_issues_count":4790,"forks":5606,"open_issues":4790,"watchers":17296,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/34013"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/34013"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/34013/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/34013/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/d95360a4a7392304b7ea4bc4566b2e979e9adc13"}}}}
{"actor":{"display_login":"bprashanth"}}