Commit Graph

738 Commits

Author SHA1 Message Date
Lubomir I. Ivanov
fb7ddf88e9 kubeadm: mark the "master" label/taint as deprecated
- Mark the "node-role.kubernetes.io/master" key for labels
and taints as deprecated.
- During "kubeadm init/join" apply the label
"node-role.kubernetes.io/control-plane" to new control-plane nodes,
next to the existing "node-role.kubernetes.io/master" label.
- During "kubeadm upgrade apply", find all Nodes with the "master"
label and also apply the "control-plane" label to them
(if they don't have it).
- During upgrade health-checks collect Nodes labeled both "master"
and "control-plane".
- Rename the constants.ControlPlane{Taint|Toleraton} to
constants.OldControlPlane{Taint|Toleraton} to manage the transition.
- Mark constants.OldControlPlane{{Taint|Toleraton} as deprecated.
- Use constants.OldControlPlane{{Taint|Toleraton} instead of
constants.ControlPlane{Taint|Toleraton} everywhere.
- Introduce constants.ControlPlane{Taint|Toleraton}.
- Add constants.ControlPlaneToleraton to the kube-dns / CoreDNS
Deployments to make them anticipate the introduction
of the "node-role.kubernetes.io/control-plane:NoSchedule"
taint (constants.ControlPlaneTaint) on kubeadm control-plane Nodes.
2020-11-10 22:10:13 +02:00
Kubernetes Prow Robot
604569482f
Merge pull request #94504 from neolit123/1.20-warning-cert-bounds-client-side
kubeadm: print warnings on invalid cert period instead of erroring out
2020-09-29 02:49:25 -07:00
Kubernetes Prow Robot
770eb2c4a0
Merge pull request #94871 from neolit123/1.20-kubeadm-remove-experimental-kustomize
kubeadm: remove the --experimental-kustomize feature
2020-09-24 08:16:06 -07:00
Kubernetes Prow Robot
3aa546923c
Merge pull request #94586 from BedivereZero/master
Stop container before remove for Docker
2020-09-23 10:14:25 -07:00
fabriziopandini
66b8847dbf Remove kubeadm audit package 2020-09-19 17:20:39 +02:00
Lubomir I. Ivanov
8ece27bf4b kubeadm: remove the --experimental-kustomize feature
The feature was replaced by --experimental-patches and deprecated in
1.19.
2020-09-18 03:49:53 +03:00
Kubernetes Prow Robot
5dd2676bf6
Merge pull request #94555 from SataQiu/fix-crisocket-warning-20200905
Fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR
2020-09-14 09:41:12 -07:00
Kubernetes Prow Robot
7ffc46924f
Merge pull request #94102 from neolit123/1.19-fix-etcd-700-perms
kubeadm: adjust the logic around etcd data directory creation
2020-09-14 09:40:59 -07:00
SataQiu
c318973cec fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR 2020-09-10 14:05:36 +08:00
Lubomir I. Ivanov
b5b9698fbf kubeadm: print warnings on invalid cert period instead of erroring out
Client side period validation of certificates should not be
fatal, as local clock skews are not so uncommon. The validation
should be left to the running servers.

- Remove this validation from TryLoadCertFromDisk().
- Add a new function ValidateCertPeriod(), that can be used for this
purpose on demand.
- In phases/certs add a new function CheckCertificatePeriodValidity()
that will print warnings if a certificate does not pass period
validation, and caches certificates that were already checked.
- Use the function in a number of places where certificates
are loaded from disk.
2020-09-09 20:53:13 +03:00
BedivereZero
437c166199 Stop container before remove for Docker 2020-09-08 15:42:03 +08:00
Lubomir I. Ivanov
ebf163684a kubeadm: adjust the logic around etcd data directory creation
- Ensure the directory is created with 0700 via a new function
called CreateDataDirectory().
- Call this function in the init phases instead of the manual call
to MkdirAll.
- Call this function when joining control-plane nodes with local etcd.

If the directory creation is left to the kubelet via the
static Pod hostPath mounts, it will end up with 0755
which is not desired.
2020-09-03 18:38:54 +03:00
Kubernetes Prow Robot
8e29d9563d
Merge pull request #94385 from loopever/fix-typo
fix typos in cmd/kubeadm
2020-09-03 03:41:55 -07:00
Lubomir I. Ivanov
d9441906c4 kubeadm: make the scheduler and KCM connect to local endpoint
Pinning the kube-controller-manager and kube-scheduler kubeconfig files
to point to the control-plane-endpoint can be problematic during
immutable upgrades if one of these components ends up contacting an N-1
kube-apiserver:
https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager
For example, the components can send a request for a non-existing API
version.

Instead of using the CPE for these components, use the LocalAPIEndpoint.
This guarantees that the components would talk to the local
kube-apiserver, which should be the same version, unless the user
explicitly patched manifests.
2020-09-01 19:38:28 +03:00
loopever
847e59186a fix typos in cmd/kubeadm 2020-09-01 10:09:45 +08:00
Kubernetes Prow Robot
a39f9dfde7
Merge pull request #93626 from vikkyomkar/issue-2237
[Cleanup] Removes usage of the k8s-master label (version marker)
2020-08-27 11:52:09 -07:00
Manuel Rüger
f289a3d6a7 kubeadm: Separate argument key/value in log msg
Users might be more used to `-o yaml` instead of -oyaml and get
confused event if the command works.

Signed-off-by: Manuel Rüger <manuel@rueg.eu>
2020-08-14 23:49:07 +02:00
vikkyomkar
f505f10e94 removed k8s-master label 2020-08-01 15:52:18 +05:30
Kubernetes Prow Robot
19f0a54d6b
Merge pull request #92183 from wallrj/2163-csr-only-external-ca-mode-2
kubeadm alpha certs generate-csr
2020-07-13 07:18:32 -07:00
Kubernetes Prow Robot
82baa26905
Merge pull request #92753 from QianChenglong/fix/kubeadm-altnames
kubeadm: remove duplicate DNS names and IP addresses from generated certificates
2020-07-09 09:10:20 -07:00
Richard Wall
57712220a1 Add new helper functions for creating keys, kubeconfig and CSR files
Signed-off-by: Richard Wall <richard.wall@jetstack.io>
2020-07-09 06:16:22 +01:00
Rostislav M. Georgiev
d023f3d25d kubeadm: Cleanup and refactor the LoadJoinConfigurationFromFile test
Back in the v1alpha2 days the fuzzer test needed to be disabled. To ensure that
there were no config breaks and everything worked correctly extensive replacement
tests were put in place that functioned as unit tests for the kubeadm config utils
as well.

The fuzzer test has been reenabled for a long time now and there's no need for
these replacements. Hence, over time most of these were disabled, deleted and
refactored. The last remnants are part of the LoadJoinConfigurationFromFile test.

The test data for those old tests remains largely unused today, but it still receives
updates as it contains kubelet's and kube-proxy's component configs. Updates to these
configs are usually done because the maintainers of those need to add a new field.

Hence, to cleanup old code and reduce maintenance burden, the last test that depends
on this test data is finally refactored and cleaned up to represent a simple unit test
of `LoadJoinConfigurationFromFile`.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-07-03 20:00:49 +03:00
QianChenglong
883f318df4 Fix duplicate altnames in cert 2020-07-03 12:14:36 +08:00
Kubernetes Prow Robot
d71a09271c
Merge pull request #92017 from neolit123/1.19-patches
kubeadm: introduce --experimental-patches and deprecate --experimental-kustomize
2020-07-02 04:17:01 -07:00
Kubernetes Prow Robot
4c523b1981
Merge pull request #92131 from SataQiu/fix-etcd-opt-20200615
kubeadm: increase robustness for kubeadm etcd operations
2020-07-01 00:06:21 -07:00
Lubomir I. Ivanov
ceb768ccbd kubeadm: apply patches to static Pods
Add PatchStaticPod() in staticpod/utils.go

Apply patches to static Pods in:
- phases/controlplane/CreateStaticPodFiles()
- phases/etcd/CreateLocalEtcdStaticPodManifestFile() and
CreateStackedEtcdStaticPodManifestFile()

Add unit tests and update Bazel.
2020-06-26 02:14:47 +03:00
Lubomir I. Ivanov
5506049b87 kubeadm: add logic for patching components in util/patches 2020-06-26 02:14:47 +03:00
Kubernetes Prow Robot
a463b25c9d
Merge pull request #91980 from rosti/kubeadm-cc-manual-upgrade
kubeadm upgrade: Allow supplying hand migrated component configs
2020-06-23 09:35:42 -07:00
SataQiu
800dd19fc2 increase robustness for kubeadm etcd operations
Signed-off-by: SataQiu <1527062125@qq.com>
2020-06-15 22:43:21 +08:00
Xianglin Gao
04ef3628e3 refact CreateOrMutateConfigMap and MutateConfigMap with PollImmediate
Signed-off-by: Xianglin Gao <xianglin.gxl@alibaba-inc.com>
2020-06-11 00:31:22 +08:00
Rostislav M. Georgiev
5d0127493c kubeadm upgrade plan: don't load component configs
Component configs are used by kubeadm upgrade plan at the moment. However, they
can prevent kubeadm upgrade plan from functioning if loading of an unsupported
version of a component config is attempted. For that matter it's best to just
stop loading component configs as part of the kubeadm config load process.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-06-10 14:23:53 +03:00
Xianglin Gao
6d572ea9b7 Add retries for CreateOrUpdateRoleBinding
Signed-off-by: Xianglin Gao <xianglin.gxl@alibaba-inc.com>
2020-06-10 00:23:46 +08:00
Xianglin Gao
052eb7d9a5 Add retries for CreateOrUpdateRole
Signed-off-by: Xianglin Gao <xianglin.gxl@alibaba-inc.com>
2020-06-10 00:12:25 +08:00
Kubernetes Prow Robot
40076c856e
Merge pull request #91179 from SataQiu/startup-probe-20200517
kubeadm: add startup probes for static Pods to protect slow starting containers
2020-06-02 18:10:31 -07:00
Kubernetes Prow Robot
02637bb250
Merge pull request #91145 from tnqn/kubeadm-reset-error
kubeadm: skip removing last etcd member in reset phase
2020-05-27 15:04:01 -07:00
SataQiu
e04a2b3b26 kubeadm: add startup probes for static Pods to protect slow starting containers
Signed-off-by: SataQiu <1527062125@qq.com>
2020-05-21 11:12:36 +08:00
Quan Tian
9cc416e7df kubeadm: do not remove the only remaining etcd member during reset
If this is the only remaining stacked etcd member in the cluster,
calling RemoveMember() is not needed.
2020-05-21 02:12:36 +08:00
Kubernetes Prow Robot
b170451caa
Merge pull request #90183 from dims/update-kubernetes-to-klog-v2
Update kubernetes to klog v2
2020-05-16 18:59:51 -07:00
Kubernetes Prow Robot
694a9c242e
Merge pull request #90970 from johscheuer/add-readiness-to-controlplane
kubeadm: use two separate checks on /livez and /readyz for the kube-apiserver
2020-05-16 07:36:49 -07:00
Davanum Srinivas
07d88617e5
Run hack/update-vendor.sh
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:33 -04:00
Davanum Srinivas
442a69c3bd
switch over k/k to use klog v2
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2020-05-16 07:54:27 -04:00
Kubernetes Prow Robot
9e88546f30
Merge pull request #91065 from SataQiu/fix-kubeadm-20200513
kubeadm: log more information when missing the necessary config element
2020-05-15 02:49:17 -07:00
Johannes M. Scheuermann
9a1cbc2711 Use livez and readyz endpoint for API server probes 2020-05-14 17:41:05 +02:00
SataQiu
281f44628f kubeadm: log more information when missing the necessary config element
Signed-off-by: SataQiu <1527062125@qq.com>
2020-05-14 10:07:03 +08:00
Kubernetes Prow Robot
3b024339bd
Merge pull request #90645 from neolit123/1.19-fix-retry-etcd-member-add
kubeadm: fix flakes when performing etcd MemberAdd on slower setups
2020-05-13 06:04:26 -07:00
Lubomir I. Ivanov
1c430ff30f kubeadm: fix flakes when performing etcd MemberAdd on slower setups
In slower setups it can take more time for the existing cluster
to be in a healthy state, so the existing backoff of ~50 seconds
is apparently not sufficient.

The client dial can also fail for similar reasons.

Improve kubeadm's join toleration of adding new etcd members.
Wrap both the client dial and member add in a longer backoff
(up to ~200 seconds).

This particular change should be backported to the support skew.
In a future change for master, all etcd client operations should be
make consistent so that the etcd logic is in a sane state.
2020-04-30 18:53:29 +03:00
SataQiu
afb1ea44b9 kubeadm: do not set deprecated '--cgroup-driver' flag in kubeadm-flags.env, this value will be set in config.yaml 2020-04-27 15:32:10 +08:00
Jie Shen
363bb39142
Use utils.net to parse ports instead of atoi (#89120) 2020-04-21 20:55:52 -07:00
tangcong
90481a9596 fix kubeadm staticcheck err 2020-04-21 06:54:42 +08:00
SataQiu
004a61a46c kubeadm: fix some mistakes about log output 2020-04-15 14:32:46 +08:00