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

Move to kubeadm as default deployment #3301

Closed
8 of 9 tasks
woopstar opened this issue Sep 13, 2018 · 13 comments
Closed
8 of 9 tasks

Move to kubeadm as default deployment #3301

woopstar opened this issue Sep 13, 2018 · 13 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
Milestone

Comments

@woopstar
Copy link
Member

woopstar commented Sep 13, 2018

This issue is about to make a checklist of what we need to do before we can move to kubeadm as default deployment.

Please feel free to add comments and I'll update the list here.

@woopstar woopstar modified the milestone: 2.7 Sep 13, 2018
@woopstar woopstar added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Sep 13, 2018
@ant31
Copy link
Contributor

ant31 commented Sep 13, 2018

Currently you're only able to go from a non-kubeadm deployment to a kubeadm deployment. We need to update the playbook so you can go from a kubeadm deployment to a non-kubeadm deployment

Why ?

@chadswen
Copy link
Member

chadswen commented Sep 13, 2018

@woopstar Thanks for starting this!

Question I think we need to answer: How much variance do we actually need between ansible templated and kubeadm generated static pod manifests?

If it turns out we can use kubeadm to generate a manifest that will work in place for either provisioning path, could we retire the ansible templates and always use kubeadm? See: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd-phase-controlplane

That's how I'd like to approach this transformation effort across the project, phase by phase. In cases where there's no advantage to using an ansible native approach compared to an equivalent kubeadm phase, I think we should always favor kubeadm and remove redundant options.

@woopstar
Copy link
Member Author

Currently you're only able to go from a non-kubeadm deployment to a kubeadm deployment. We need to update the playbook so you can go from a kubeadm deployment to a non-kubeadm deployment

Why ?

This was something @mattymo wanted before we switched.

@riverzhang riverzhang added this to the 2.7 milestone Sep 17, 2018
@woopstar
Copy link
Member Author

@woopstar Thanks for starting this!

Question I think we need to answer: How much variance do we actually need between ansible templated and kubeadm generated static pod manifests?

If it turns out we can use kubeadm to generate a manifest that will work in place for either provisioning path, could we retire the ansible templates and always use kubeadm? See: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd-phase-controlplane

That's how I'd like to approach this transformation effort across the project, phase by phase. In cases where there's no advantage to using an ansible native approach compared to an equivalent kubeadm phase, I think we should always favor kubeadm and remove redundant options.

My opinion is that we do not want variation. There should be no need to maintain two versions of the manifest files. If we want to alter something on them, then we should look back and see "why do we want to do so?" and then maybe add it as a PR to the kubeadm itself so we only maintain templates in one place.
Kubeadm does, in fact, create manifest files in Kubespray now when you deploy, so you only need to keep the kubeadm config files in "sync" and I like that a lot.

@chadswen
Copy link
Member

chadswen commented Sep 20, 2018

Updated the checklist.

Since we seem to all agree that kubeadm only phases are the path forward:

  1. Do we want to get the ball rolling by making the kubeadm CLI download tasks non-optional?
  2. Should we always run the non-kubeadm -> kubeadm conversion tasks in roles/kubernetes/master and other roles and update the non-kubeadm default paths? This would allow us to always use the kubeadm conventions decribed here.

@woopstar
Copy link
Member Author

Updated the checklist.

Since we seem to all agree that kubeadm only phases are the path forward:

  1. Do we want to get the ball rolling by making the kubeadm CLI download tasks non-optional?
  2. Should we always run the non-kubeadm -> kubeadm conversion tasks in roles/kubernetes/master and other roles and update the non-kubeadm default paths? This would allow us to always use the kubeadm conventions decribed here.

I guess if we rename our manifests and files to match the scheme provided by kubeadm, the transitions between non-kubeadm and kubeadm is fairly easy as the files will just be overwritten with either of the configs?

@ant31
Copy link
Contributor

ant31 commented Sep 24, 2018

a kubeadm deployment to a non-kubeadm deployment

I still don't have a clear answer to this.
I would skip that if it's too complex. as we probably don't want to maintain non-kubeadm after the migration.

@woopstar
Copy link
Member Author

a kubeadm deployment to a non-kubeadm deployment

I still don't have a clear answer to this.
I would skip that if it's too complex. as we probably don't want to maintain non-kubeadm after the migration.

I agree. But I guess @mattymo should answer to this as it was his initial demand.

@woopstar woopstar modified the milestones: 2.7, v2.8 Sep 26, 2018
@timothysc
Copy link
Member

Just let us know how we can help.

@woopstar
Copy link
Member Author

We need to test and verify the cloud provider are working as expected with kubeadm. I think that is the last part.

@ant31
Copy link
Contributor

ant31 commented Sep 28, 2018

Can we check that scaling up the cluster (adding new master and/or node) with kubeadm works ?

@ant31
Copy link
Contributor

ant31 commented Oct 17, 2018

Currently you're only able to go from a non-kubeadm deployment to a kubeadm

is this already handled? how and where?

riverzhang added a commit to riverzhang/kubespray that referenced this issue Nov 16, 2018
k8s-ci-robot pushed a commit that referenced this issue Nov 21, 2018
* Switch to kubeadm deployment mode

Discuss:#3301

* Add non-kubeadm upgrage to kubeadm cluster
@woopstar woopstar closed this as completed Dec 6, 2018
@Nastradamus
Copy link

Does anyone know how to convert a non-kubeadm installation to a kubeadm installation? Can't find any info. Now we use Kubernetes 1.16.8 with Kubespray fork with support of non-kubeadm: https://github.com/southbridgeio/kubespray

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
Projects
None yet
Development

No branches or pull requests

8 participants