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

Dynamic Kubelet Configuration #281

Open
mtaufen opened this Issue Apr 26, 2017 · 32 comments

Comments

Projects
None yet
@mtaufen
Contributor

mtaufen commented Apr 26, 2017

Dynamic Kubelet Configuration

@mtaufen mtaufen added the sig/node label Apr 26, 2017

@mtaufen mtaufen added this to the v1.7 milestone Apr 26, 2017

@mtaufen mtaufen self-assigned this Apr 26, 2017

@idvoretskyi idvoretskyi added this to In Progress in Kubernetes 1.7 features May 3, 2017

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented May 23, 2017

Alpha PR: kubernetes/kubernetes#46254

@dchen1107

This comment has been minimized.

Member

dchen1107 commented Jun 14, 2017

Punt this to v1.8.

@calebamiles calebamiles modified the milestones: 1.8, next-milestone Jul 25, 2017

k8s-merge-robot added a commit to kubernetes/kubernetes that referenced this issue Aug 9, 2017

Merge pull request #46254 from mtaufen/dkcfg
Automatic merge from submit-queue (batch tested with PRs 50016, 49583, 49930, 46254, 50337)

Alpha Dynamic Kubelet Configuration

Feature: kubernetes/enhancements#281

This proposal contains the alpha implementation of the Dynamic Kubelet Configuration feature proposed in ~#29459~ [community/contributors/design-proposals/dynamic-kubelet-configuration.md](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/dynamic-kubelet-configuration.md). 

Please note:
- ~The proposal doc is not yet up to date with this implementation, there are some subtle differences and some more significant ones. I will update the proposal doc to match by tomorrow afternoon.~
- ~This obviously needs more tests. I plan to write several O(soon). Since it's alpha and feature-gated, I'm decoupling this review from the review of the tests.~ I've beefed up the unit tests, though there is still plenty of testing to be done.
- ~I'm temporarily holding off on updating the generated docs, api specs, etc, for the sake of my reviewers 😄~ these files now live in a separate commit; the first commit is the one to review.

/cc @dchen1107 @vishh @bgrant0607 @thockin @derekwaynecarr 

```release-note
Adds (alpha feature) the ability to dynamically configure Kubelets by enabling the DynamicKubeletConfig feature gate, posting a ConfigMap to the API server, and setting the spec.configSource field on Node objects. See the proposal at https://github.com/kubernetes/community/blob/master/contributors/design-proposals/dynamic-kubelet-configuration.md for details.
```
@luxas

This comment has been minimized.

Member

luxas commented Sep 12, 2017

@mtaufen Any user/admin-facing docs ready for this feature?

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Sep 12, 2017

No, I really need to write something to teach people how to play with the alpha. What's the preferred place for these docs again?

@luxas

This comment has been minimized.

Member

luxas commented Sep 13, 2017

@mtaufen https://kubernetes.io/docs (https://github.com/kubernetes/kubernetes.github.io)
I'll definitely read what it came to look like finally

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Sep 18, 2017

@idvoretskyi

This comment has been minimized.

Member

idvoretskyi commented Sep 19, 2017

@mtaufen can you update the features tracking board with the relevant data?

Thanks.

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Sep 19, 2017

Done

@pipejakob

This comment has been minimized.

Member

pipejakob commented Sep 27, 2017

Looks like the proposal has moved to:

https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/dynamic-kubelet-configuration.md

@mtaufen Want to update the link in the description?

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Sep 27, 2017

Done, thanks!

@luxas luxas added the stage/beta label Oct 12, 2017

@justaugustus

This comment has been minimized.

Member

justaugustus commented Apr 17, 2018

@mtaufen
Any plans for this in 1.11?

If so, can you please ensure the feature is up-to-date with the appropriate:

  • Description
  • Milestone
  • Assignee(s)
  • Labels:
    • stage/{alpha,beta,stable}
    • sig/*
    • kind/feature

cc @idvoretskyi

@mtaufen mtaufen modified the milestones: v1.10, v1.11 Apr 20, 2018

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Apr 20, 2018

@justaugustus does stage indicate the target for the milestone, or the current status?

@justaugustus

This comment has been minimized.

Member

justaugustus commented Apr 21, 2018

@mtaufen the stage represents the target for the current milestone (v1.11).

@mtaufen mtaufen added stage/beta and removed stage/alpha labels Apr 24, 2018

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Apr 24, 2018

Thanks, updated.

k8s-merge-robot added a commit to kubernetes/kubernetes that referenced this issue May 24, 2018

Merge pull request #57527 from mtaufen/kc-metric
Automatic merge from submit-queue (batch tested with PRs 64013, 63896, 64139, 57527, 62102). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

add dynamic config metrics

This PR exports config-releated metrics from the Kubelet.
The Guages for active, assigned, and last-known-good config can be used
to identify config versions and produce aggregate counts across several
nodes. The error-reporting Gauge can be used to determine whether a node
is experiencing a config-related error, and to prodouce an aggregate
count of nodes in an error state.

kubernetes/enhancements#281

```release-note
The Kubelet now exports metrics that report the assigned (node_config_assigned), last-known-good (node_config_last_known_good), and active (node_config_active) config sources, and a metric indicating whether the node is experiencing a config-related error (node_config_error). The config source metrics always report the value 1, and carry the node_config_name, node_config_uid, node_config_resource_version, and node_config_kubelet_key labels, which identify the config version. The error metric reports 1 if there is an error, 0 otherwise.
```
@mistyhacks

This comment has been minimized.

mistyhacks commented May 24, 2018

@mtaufen please fill out the appropriate line item of the
1.11 feature tracking spreadsheet
and open a placeholder docs PR against the
release-1.11 branch
by 5/25/2018 (tomorrow as I write this) if new docs or docs changes are
needed and a relevant PR has not yet been opened.

k8s-merge-robot added a commit to kubernetes/kubernetes that referenced this issue May 25, 2018

Merge pull request #64275 from mtaufen/dkcfg-beta
Automatic merge from submit-queue (batch tested with PRs 63417, 64249, 64242, 64128, 64275). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

graduate DynamicKubeletConfig feature to beta

Everything in the kubernetes/enhancements#281 beta target except a few documentation-related items is complete. Docs should be done very soon, so I'm sending this PR to graduate to beta before freeze.

```release-note
The dynamic Kubelet config feature is now beta, and the DynamicKubeletConfig feature gate is on by default. In order to use dynamic Kubelet config, ensure that the Kubelet's --dynamic-config-dir option is set. 
```

/cc @luxas
@mtaufen

This comment has been minimized.

Contributor

mtaufen commented May 25, 2018

@mistyhacks done, thanks!

k8s-merge-robot added a commit to kubernetes/kubernetes that referenced this issue Jun 6, 2018

Merge pull request #64354 from mtaufen/dkcfg-safe-fields
Automatic merge from submit-queue (batch tested with PRs 64009, 64780, 64354, 64727, 63650). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

per-field dynamic config advice

Dynamic Kubelet config gives cluster admins and k8s-as-a-service providers a lot of flexibility around reconfiguring the Kubelet in live environments. With great power comes great responsibility. These comments intend to provide more nuanced guidance around using dynamic Kubelet config by adding items to consider when changing various fields and pointing out where cluster admins and k8s-as-service providers should maintain extra caution.

@kubernetes/sig-node-pr-reviews PLEASE provide feedback and help fill in the blanks here, I don't have domain expertise in all of these features.

kubernetes/enhancements#281

```release-note
NONE
```
@kacole2

This comment has been minimized.

Contributor

kacole2 commented Jul 23, 2018

@mtaufen This feature was worked on in the previous milestone, so we'd like to check in and see if there are any plans for this to graduate stages in Kubernetes 1.12 since there is nothing in the original post. This still has the 1.11 milestone as well so we need to update it accordingly.

If there are any updates, please explicitly ping @justaugustus, @kacole2, @robertsandoval, @rajendar38 to note that it is ready to be included in the Features Tracking Spreadsheet for Kubernetes 1.12.


Please note that the Features Freeze is July 31st, after which any incomplete Feature issues will require an Exception request to be accepted into the milestone.

In addition, please be aware of the following relevant deadlines:

  • Docs deadline (open placeholder PRs): 8/21
  • Test case freeze: 8/28

Please make sure all PRs for features have relevant release notes included as well.

Happy shipping!

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Jul 28, 2018

No plans to graduate for 1.12.

@justaugustus justaugustus removed this from the v1.11 milestone Jul 31, 2018

justaugustus pushed a commit to justaugustus/features that referenced this issue Sep 3, 2018

Updating DaemonSet Update Proposal
Move PodTemplate to future, add 2 status fields (kubernetes#281)
@kacole2

This comment has been minimized.

Contributor

kacole2 commented Oct 8, 2018

Hi
This enhancement has been tracked before, so we'd like to check in and see if there are any plans for this to graduate stages in Kubernetes 1.13. This release is targeted to be more ‘stable’ and will have an aggressive timeline. Please only include this enhancement if there is a high level of confidence it will meet the following deadlines:

  • Docs (open placeholder PRs): 11/8
  • Code Slush: 11/9
  • Code Freeze Begins: 11/15
  • Docs Complete and Reviewed: 11/27

Please take a moment to update the milestones on your original post for future tracking and ping @kacole2 if it needs to be included in the 1.13 Enhancements Tracking Sheet

Thanks!

@mtaufen

This comment has been minimized.

Contributor

mtaufen commented Oct 10, 2018

@kacole2 no plans to graduate in 1.13.
Are the milestones already correct for this case (assuming yes given tracked/no)?

@kacole2

This comment has been minimized.

Contributor

kacole2 commented Oct 10, 2018

@mtaufen thank you. everything is correct for labels. thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment