{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/260","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/260/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/260/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/260/events","html_url":"https://github.com/kubernetes/kubernetes/issues/260","id":36624869,"number":260,"title":"Proposal: nominal services","user":{"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},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/api","name":"area/api","color":"e1ed21"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/downward-api","name":"area/downward-api","color":"8fffcf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/networking","name":"area/networking","color":"006b75"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/design","name":"kind/design","color":"c7def8"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/priority/P1","name":"priority/P1","color":"eb6420"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/api","name":"team/api","color":"d2b48c"}],"state":"open","locked":false,"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},"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/16","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.2-candidate","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/16/labels","id":1278500,"number":16,"title":"v1.2-candidate","description":"Things to consider for next minor release.","creator":{"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},"open_issues":65,"closed_issues":0,"state":"open","created_at":"2015-08-29T03:54:34Z","updated_at":"2015-09-23T00:26:02Z","due_on":null,"closed_at":null},"comments":133,"created_at":"2014-06-26T23:35:17Z","updated_at":"2015-09-23T15:33:10Z","closed_at":null,"body":"@smarterclayton raised this issue in #199: how should Kubernetes support non-load-balanced and/or stateful services? Specifically, Zookeeper was the example.\r\n\r\nZookeeper (or etcd) exhibits 3 common problems:\r\n1. Identification of the instance(s) clients should contact\r\n2. Identification of peers\r\n3. Stateful instances\r\n\r\nAnd it enables master election for other replicated services, which typically share the same problems, and probably need to advertise the elected master to clients."},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/142640825","html_url":"https://github.com/kubernetes/kubernetes/issues/260#issuecomment-142640825","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/260","id":142640825,"user":{"login":"pkriens","id":200494,"avatar_url":"https://avatars.githubusercontent.com/u/200494?v=3","gravatar_id":"","url":"https://api.github.com/users/pkriens","html_url":"https://github.com/pkriens","followers_url":"https://api.github.com/users/pkriens/followers","following_url":"https://api.github.com/users/pkriens/following{/other_user}","gists_url":"https://api.github.com/users/pkriens/gists{/gist_id}","starred_url":"https://api.github.com/users/pkriens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pkriens/subscriptions","organizations_url":"https://api.github.com/users/pkriens/orgs","repos_url":"https://api.github.com/users/pkriens/repos","events_url":"https://api.github.com/users/pkriens/events{/privacy}","received_events_url":"https://api.github.com/users/pkriens/received_events","type":"User","site_admin":false},"created_at":"2015-09-23T15:33:10Z","updated_at":"2015-09-23T15:33:10Z","body":"The discussion is all about IP numbers and Pods but in my experience with Mongo & Zookeeper the IP the Pods should stay irrelevant (not become pets). The persistent _volume_ needs a nominal number since this volume records the IP number of the other 'volumes'.  Whatever Pod that mounts that volume should be able to use that recorded IP number somehow. The volume is the pet ...\r\n\r\nA DNS name that is constant in time for a volume and assigned to a Pod that mounts the volume would come a long way I think.\r\n\r\nChanging of ensemble membership in Mongo & ZK will always require custom code to run and I expect it to be the same for most other ensembles. So Replication Controller is the wrong name, these pets need more a Member Ship controller. A Member Ship controller should be able to handle the initial setup and then incremental changes to the ensembles, and finally kill it off. \r\n\r\nGiven a constant DNS name based on mounted volume & the possibility to handle the ensemble membership with custom code should make it possible to handle these type of systems I think."}}