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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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