Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update apiserver federation doc #261

Merged
merged 2 commits into from
Jan 12, 2017
Merged

Conversation

lavalamp
Copy link
Member

Rename to aggregation.

In two commits to get the github UI to show a diff.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jan 10, 2017
@deads2k
Copy link
Contributor

deads2k commented Jan 10, 2017

On my tomorrow list.

admin to use it without any change to the core kubernetes repository, we
unblock these APIs.
* Place for staging experimental APIs: New APIs can remain in separate
aggregated servers until they become stable, at which point, they can be moved
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a fan of moving APIs. I'd rather see us bless some APIs (maybe a "recommended addons" list or something?), but I don't think we should be in the business of taking people's APIs and of growing our surface area further.

1. In test or single-user mode. An individual developer who wants to test
their own apiserver could run their own private copy of `kube-aggregator`,
configured such that only they can interact with it. This allows for testing
both `kube-aggregator` and any custom apiservers without the potential for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that the single user mode will not proxy requests. A single user can't proxy the request because it can't terminate authentication for client certificates and then act as a front proxy (no front proxy client cert), so the functionality is reduced due to lack of knowledge.

configured such that only they can interact with it. This allows for testing
both `kube-aggregator` and any custom apiservers without the potential for
causing any collateral damage in the rest of the cluster.
2. In gateway mode. Each cluster should run kube-aggregator as the official
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add wording that this is the recommended cluster topology?


### Constraints

* Unique API groups across servers: Each API server (and groups of servers, in HA)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With API registration, this restriction no longer exists.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's by group version, updating.

(list the suported groupVersions at `/apis` and list the supported resources
at `/apis/<groupVersion>/`)
* No bootstrap problem: The core kubernetes server should not depend on any
other aggregated server to come up. Other servers can only depend on the core
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"other servers can only depend on the core kubernetes server" seems overly strict. They can only be guaranteed that the core kube server exists, but finding and using others doesn't seem like abuse as long as their absence is tolerated.


Nothing below the `kubernetes-aggregator` can rely on the aggregator or proxy being present.
`kubernetes-aggregator` should be runnable as a pod backing a service in a well-known location.
Something like `api.kube-public.svc` or similar seems appropriate since we'll want to allow
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I put this name in here. I like it, but I want to be sure that @lavalamp noticed it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not in love with it but I did notice and don't have a better suggestion right now.

`kubernetes-aggregator` should be runnable as a pod backing a service in a well-known location.
Something like `api.kube-public.svc` or similar seems appropriate since we'll want to allow
network traffic to it from every other namespace in the cluster. We could also choose to put
it in a dedicated namespace. Compromise of that namespace will expose the entire cluster since
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important detail here. There's no logical way around this one, but its worth pointing out.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And to clarify, any authenticating proxy would have this issue. Given current GKE token restrictions, any aggregation API server not accepting front proxy user information for tokens won't work.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'll modify to just recommend a dedicated namespace.

@deads2k
Copy link
Contributor

deads2k commented Jan 10, 2017

A few comments reading through, nothing major. lgtm overall.

@lavalamp
Copy link
Member Author

Updated, PTAL

@lavalamp
Copy link
Member Author

FYI @bgrant0607 @nikhiljindal

@deads2k
Copy link
Contributor

deads2k commented Jan 12, 2017

lgtm

@lavalamp lavalamp merged commit a1d8453 into kubernetes:master Jan 12, 2017
ruebenramirez pushed a commit to ruebenramirez/community that referenced this pull request Apr 22, 2017
danehans pushed a commit to danehans/community that referenced this pull request Jul 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants