Skip to content

Checklist for kubeadm join --control-plane implementation #751

New issue

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

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

Already on GitHub? # to your account

Closed
11 tasks done
fabriziopandini opened this issue Apr 13, 2018 · 7 comments
Closed
11 tasks done

Checklist for kubeadm join --control-plane implementation #751

fabriziopandini opened this issue Apr 13, 2018 · 7 comments
Assignees
Labels
area/HA kind/documentation Categorizes issue or PR as related to documentation. kind/feature Categorizes issue or PR as related to a new feature. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Milestone

Comments

@fabriziopandini
Copy link
Member

fabriziopandini commented Apr 13, 2018

This is the checklist for the implementation of kubeadm join --control-plane Kubernetes Enhancement Proposal.

A first prototype is here, but the final implementation is expected to:

  • take advantage of the API.ControlPlaneEndpoint introduced in v1.10 (see here)
  • remove/simplify as much as possible preconditions/limitations defined in the proposal (see here).
  • simplify as much as possible the UX

The implementation is going to be done through a set of PRs; any contribution is always well accepted!

@timothysc timothysc added this to the v1.11 milestone Apr 13, 2018
@timothysc timothysc added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Apr 13, 2018
@timothysc timothysc removed their assignment Apr 13, 2018
k8s-github-robot pushed a commit to kubernetes/kubernetes that referenced this issue Apr 23, 2018
…eEndpoint2

Automatic merge from submit-queue (batch tested with PRs 62464, 62947). 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>.

make API.ControlPlaneEndpoint accept IP

**What this PR does / why we need it**:
This PR implements one of the actions defined by kubernetes/kubeadm#751 (checklist form implementing HA in kubeadm).

With this PR, the `API.ControlPlaneEndpoint` value in the kubeadm MasterConfiguration file now accepts both DNS and IP.

The `API.ControlPlaneEndpoint` should be used to set a stable IP address for the control plane; in an HA configuration, this should be the load balancer address (no matter if identified by a DNS name or by a stable IP).

**Special notes for your reviewer**:
/CC @timothysc 
This PR is the same of #62667, that I closed by error 😥

**Release note**:
```release-note
NONE
```
Nb. first #62667 already has the release note
@neolit123
Copy link
Member

@fabriziopandini

hi,

remove --feature-gates=HighAvailability

would this mean to simply ignore the FG in the case of kubeadm join --master or remove it from the code base completely:
https://github.com/kubernetes/kubernetes/search?utf8=%E2%9C%93&q=HighAvailability&type=

@chulkilee
Copy link

BTW kubernetes/website#8301 should be mentioned too

@fabriziopandini
Copy link
Member Author

@neolit123
if I'm right, the Lease Endpoint reconciler will be the default reconciler in v1.11

If this is true IMO we can remove this feature gates-from the code, having care to provide a safe path for upgrading clusters now using this flag (e.g. by implementing a mutation of the kubeadm configmap that removes this flag when updating).

@luxas, @timothysc could you confirm the Lease reconciler will be default in v1.11 ? WDYT of the proposed solutions ?

@luxas luxas modified the milestones: v1.11, v1.12 May 14, 2018
@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. and removed kind/enhancement labels Jun 5, 2018
@fanux
Copy link

fanux commented Jul 3, 2018

I think we can run etcd in cluster.
On master0:

kubeadm add master [master1]

Then add a etcd member [master1]

On master1:

kubeadm join --master

To join a etcd node and fetch pki files

hh pushed a commit to ii/kubernetes that referenced this issue Jul 12, 2018
…hases

Automatic merge from submit-queue (batch tested with PRs 65105, 62948). 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>.

make kubeadm phases ready for join master

**What this PR does / why we need it**:
This PR implements one of the actions defined by kubernetes/kubeadm#751 (checklist form implementing HA in kubeadm).

With this PR, kubeadm phases implements methods that will be used by the `kubeadm join --master`workflow, and more in detail:
- kubeconfig phase implements a new method for creating kubeconfig required files (nb. with respect to init, the kubelet.conf file should not be created because it will generated by the TLS bootstrap process)
- certs phase implements a new method for checking the pki provided by the users (all the certificates are present, the API server certificate is properly configured)

**Special notes for your reviewer**:
/CC @timothysc @kubernetes/sig-cluster-lifecycle-pr-reviews 

**Release note**:
```release-note
NONE
```
@fabriziopandini fabriziopandini changed the title Checklist for kubeadm join --master implementation Checklist for kubeadm join --controlplane implementation Aug 9, 2018
@fabriziopandini fabriziopandini changed the title Checklist for kubeadm join --controlplane implementation Checklist for kubeadm join --control-plane implementation Aug 10, 2018
@neolit123 neolit123 added the kind/documentation Categorizes issue or PR as related to documentation. label Aug 10, 2018
k8s-github-robot pushed a commit to kubernetes/kubernetes that referenced this issue Aug 11, 2018
Automatic merge from submit-queue (batch tested with PRs 67017, 67190, 67110, 67140, 66873). 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>.

Kubeadm join --control-plane main workflow

**What this PR does / why we need it**:
This PR implements one of the actions defined by kubernetes/kubeadm#751 (checklist form implementing HA in kubeadm).

With this PR, kubeadm implements the `kubeadm join --control-plane`workflow, as described in the [KEP 0015-kubeadm-join-master.md](https://github.com/kubernetes/community/blob/master/keps/sig-cluster-lifecycle/0015-kubeadm-join-master.md) with the exception of the update of the `kubeadm-config` ConfigMap that will be completed in a following PR as soon as the implementation in the config file will allow it. 

**Special notes for your reviewer**:
/CC @timothysc @luxas @chuckha  @kubernetes/sig-cluster-lifecycle-pr-reviews 

**Release note**:
```
`kubeadm join` now has the --experimental-control-plane flag that triggers deploy of a new control plane instance on the joining node. 
```
k8s-github-robot pushed a commit to kubernetes/kubernetes that referenced this issue Aug 23, 2018
Automatic merge from submit-queue. 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>.

Kubeadm ha upgrade

**What this PR does / why we need it**:
This PR implements one of the actions defined by kubernetes/kubeadm#751 (checklist form implementing HA in kubeadm). see [KEP 0015](https://github.com/kubernetes/community/blob/master/keps/sig-cluster-lifecycle/0015-kubeadm-join-master.md) for more context

With this PR, kubeadm implements a new command `kubeadm upgrade node experimental-control-plane` that managed upgrade of control plane components on a secondary control plane instance. 

The entire workflow in case of HA clusters will be:

- Upgrade the control plane
   - run `kubeadm upgrade apply` on a first control plane instance
   - run `kubeadm upgrade node experimental-control-plane` on secondary control plane instances
- Upgrade nodes

**Special notes for your reviewer**:
/CC @timothysc @luxas @chuckha  @kubernetes/sig-cluster-lifecycle-pr-reviews 

**Release note**:
```
kubeadm now has the `kubeadm upgrade node experimental-control-plane` command for upgrading secondary control plane instances created with `kubeadm join --experimental-control-plane`. 
```
@timothysc
Copy link
Member

/assign @chuckha

Once the HA doc references we can close this issue.

@timothysc
Copy link
Member

I'm actually going to close this in favor of #1044 doc update as the last step.

@fabriziopandini
Copy link
Member Author

Thanks @timothysc . it was on my list to update this tracking issue (done) and close in favour of more actionable tickets; added #1123 as well

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
area/HA kind/documentation Categorizes issue or PR as related to documentation. kind/feature Categorizes issue or PR as related to a new feature. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
None yet
Development

No branches or pull requests

8 participants