-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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
Service topology alpha documentation #17459
Service topology alpha documentation #17459
Conversation
Deploy preview for kubernetes-io-vnext-staging processing. Building with commit 461c486 https://app.netlify.com/sites/kubernetes-io-vnext-staging/deploys/5dd8613bac0d5700091ad7ee |
/hold |
|
||
{{% capture whatsnext %}} | ||
|
||
* [Enabling Service Topology](/docs/tasks/administer-cluster/enabling-service-topology) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* [Enabling Service Topology](/docs/tasks/administer-cluster/enabling-service-topology) | |
* Read about [enabling Service Topology](/docs/tasks/administer-cluster/enabling-service-topology/) |
Can you add me as collaborator to your repo? I can help to write the docs, push commit to your remote branch. Or maybe I can just request change to add suggested content. |
PrerequisitesThe following prerequisites are needed in order to enable topology aware service routing:
|
Enable Service TopologyTo enable service topology, enable the
|
You can submit PRs against my fork if you want. Or I can incorporate your suggestions. |
I'm going to submit PRs against your fork. |
@imroc @johnbelamaric Just a reminder about the last Docs deadline - 22nd Nov, by which this PR needs to be merged! |
Sorry for the delay. I think I can just comment the suggestions to this PR, and @johnbelamaric write to the commits. |
MotivationFigure out a generic way to implement the "local service" route, say "topology aware routing of service", simply call it "service topology". Locality is defined by user, it can be any topology-related thing. "Local" means the "same topology level", e.g. same node, same rack, same failure zone, same failure region, same cloud provider etc. Two nodes are considered "local" if they have the same value for a particular label, called the "topology key". |
Topology KeysIf your cluster has Service Topology enabled, you can create Services with topology keys by setting a field:
|
Can I fire another PR on this? I can respond quickly to the review, help to make the service topology documentation gets merged before Docs deadline. |
If you want that's fine with me, I am at KubeCon. Otherwise I can get to this later tonight or tomorrow morning. |
Just using this PR then. I am a little busy too, try to take the time to write the doc. |
IntroductionService Topology makes it possible for network traffic of service to be forwarded nearby, reducing network hops and improving network performance. It uses topology keys to decide the preferred topological domains to be used, e.g. node, rack, zone, region, etc. |
Using Topology KeysapiVersion: v1
kind: Service
metadata:
name: nginx
spec:
type: ClusterIP
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
topologyKeys: ["kubernetes.io/hostname", "topology.kubernetes.io/zone", "*"] please help to describe this 😅 |
@johnbelamaric Update on this PR? |
I am working on this now and will have an update within the hour. Thanks for your patience, it's been a hectic week! |
3be8dce
to
36dbcdd
Compare
/assign @robscott |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all the work on these docs! I just caught a few small things.
content/en/docs/concepts/services-networking/service-topology.md
Outdated
Show resolved
Hide resolved
content/en/docs/concepts/services-networking/service-topology.md
Outdated
Show resolved
Hide resolved
content/en/docs/concepts/services-networking/service-topology.md
Outdated
Show resolved
Hide resolved
content/en/docs/concepts/services-networking/service-topology.md
Outdated
Show resolved
Hide resolved
535314c
to
461c486
Compare
Thanks @robscott for the review! @daminisatya I think we are good to go now, assuming Rob can LGTM with the latest. |
Thanks! /lgtm |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all the work on this. Almost is lgtm, only one small thing needs confirmation.
|
||
{{% capture whatsnext %}} | ||
|
||
* Read about [enabling Service Topology](/docs/tasks/administer-cluster/enabling-service-topology) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: enabling --> Enabling
And currently the doc Enabling Service Topology
is not exists, will it be added in later commit or another PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added in this PR #17808 PTAL
Oops...do we need it, since it’s in this doc?
…On Fri, Nov 22, 2019 at 5:50 PM roc ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In content/en/docs/concepts/services-networking/service-topology.md
<#17459 (comment)>:
> +
+* Valid topology keys are currently limited to `kubernetes.io/hostname` <http://kubernetes.io/hostname>,
+ `topology.kubernetes.io/zone` <http://topology.kubernetes.io/zone>, and `topology.kubernetes.io/region` <http://topology.kubernetes.io/region>, but will
+ be generalized to other node labels in the future.
+
+* Topology keys must be valid label keys and at most 16 keys may be specified.
+
+* The catch-all value, `"*"`, must be the last value in the topology keys, if
+ it is used.
+
+
+{{% /capture %}}
+
+{{% capture whatsnext %}}
+
+* Read about [enabling Service Topology](/docs/tasks/administer-cluster/enabling-service-topology)
nit: enabling --> Enabling
And currently the doc Enabling Service Topology is not exists, will be
added in later commit or another PR?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#17459?email_source=notifications&email_token=ACIHRMZ6RWX4ALFBIKFE5ZDQVCD7NA5CNFSM4JJ3DV4KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCMXZPCA#pullrequestreview-321886088>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACIHRMZ7ZUGKA3IRTXNK233QVCD7NANCNFSM4JJ3DV4A>
.
|
Maybe we don't need it, just add an simple Service example in this doc? |
/lgtm @johnbelamaric Thank you for the PR. let me know once it is final, I will approve it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
feature: | ||
title: Service Topology | ||
description: > | ||
Routing of service traffice based upon cluster topology. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/traffice/traffic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
^ I can fix this in a follow-up PR, I have some other changes I'd like to add :)
@johnbelamaric Kindly update the PR with these small review comments ASAP! |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: daminisatya The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/hold cancel |
Thanks all for following up on this, I was OOO and had very limited network access the last few days! |
* feat: graduate TaintNodesByCondition to GA (#17073) * Promote StartupProbe to beta (enabled by default). (#17164) * Watch bookmarks to GA (#17026) * feat: graduate ScheduleDaemonSetPods to GA (#17350) * Update Docker installation instructions (#17405) * Use exact version numbers for installing Docker in Ubuntu (#17428) * Move CSIMigration and CSIMigrationGCE to Beta in Kubernetes v1.17 (#17478) * Promote NodeLease feature to GA (#17189) * Update docs for csi topology ga (#17408) * Update RunAsUsername to beta (#17460) * doc:Update RunAsUsername to beta * doc: update samples - kubernetes.io/os is no longer beta * Updating based on review feedback * Promote Node-specific volume limits to GA (#17432) * Promote PodShareProcessNamespace to stable (#17192) * Promote PodShareProcessNamespace to stable * Add for_k8s_version to feature-state label Co-Authored-By: Tim Bannister <tim@scalefactory.com> * Readd version-check to shareProcessNamespace task * Update service load balancer finalizer doc for GA (#17438) * Update Topology Manager docs (#17451) * Added information on how device plugins can take advantage of Topology Manager * Updated the Topology Manager documentation to include additionalinformation and update some out of date sections * Fix broken Topology Manager link (#17746) Part of What's Next Device Plugin section * Update CRD defaulting docs for GA (#17450) * Add documentation for VolumeSnapshot Beta (#17233) * Updating EndpointSlice documentation for beta release in 1.17 (#17411) * (docs/dualstack): v1.17 updates (#17457) * Add placehold doc updates for dualstack in 1.17 Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * Add Downward API and /etc/hosts Pod IP validation Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * remove addressed known issue via k/k pr 85246 Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * Remove known issue and add flag as part of k/k 79993 Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * remove follow up placeholders Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * Update verbiage Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * Make IP addressing consistent throughout the task Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * Update to status.podIPs Signed-off-by: Lachlan Evenson <lachlan.evenson@microsoft.com> * Update content/en/docs/tasks/network/validate-dual-stack.md Use set instead of env Co-Authored-By: Khaled Henidak (Kal) <khnidk@outlook.com> * add topology.kubernetes.io/zone, topology.kubernetes.io/region and node.kubernetes.io/instance-type labels to docs (#17498) Signed-off-by: Andrew Sy Kim <kiman@vmware.com> * Service topology alpha documentation (#17459) * Update list of feature flags for in-tree plugins migrated to CSI (#17533) Signed-off-by: Deep Debroy <ddebroy@docker.com> * Update Node concept for TaintNodesByCondition going GA (#17577) * feat: graduate ResourceQuotaScopeSelectors to GA in 1.17 (#17554) * kubeadm: update the upgrade documentation for 1.17 (#17587) * doc: Simplify Windows deployments with RuntimeClass (#16697) * doc: Simplify Windows deployments with RuntimeClass * Updating on review feedback * doc: Adding windows-build label from enhancement 1301 * update doc for kubelet option --reserved-cpus (#17648) * feat: update TaintNodesByCondition in feature gates table (#17377) * Update docs for v1 resource quota configuration (#17547) * AdmissionConfiguration v1 (#17548) * Update WebhookAdmissionConfiguration examples (#17549) * Update AWS EBS Migration Feature state (#16126) * Add resource version section to api-concepts documentation (#16910) * Add Resource Version semantics section to api concepts * Clarify risks of going back in time, add details about compaction and watch cache sizes * Apply suggestions from liggitt Co-Authored-By: Jordan Liggitt <jordan@liggitt.net> * remove pesudocode, apply feedback * Fix typo * Clarify equality rules * Cleanup kubectl generators docs (#17609) * Write ReplicationController without a space * Drop mentioning unsupported cluster versions * Fix capitalization for “API group” * Tweak wording * Avoid using deprecated generator in example * add Antrea description in dev-1.17 (#17919) * Promote VolumeSubpathEnvExpansion to GA * Reference Documentation for the Kubernetes API for 1.17 (#18019) * Update feature-gates.md (#18033) * Reference Documentation for kubectl Commands for 1.17 (#18017) * Update for v1.17 (#18034) * Update config.toml(release-1.17) for 1.17 (#18031)
Placeholder docs PR for kubernetes/enhancements#536
/sig network