Commit Graph

10388 Commits

Author SHA1 Message Date
Haleygo
95e000fd65 support kubeadm join dry-run 2021-08-10 23:43:54 +08:00
Kubernetes Prow Robot
e96652ea74 Merge pull request #104015 from neolit123/1.23-use-dynamic-versions
kubeadm: dynamically populate the current/minimum k8s versions
2021-08-09 21:59:17 -07:00
Lubomir I. Ivanov
e3538edc22 kubeadm: update unit tests to support dynamic version updates
Tests under /app and /test would fail if the current/minimum k8s version
is dynamically populated from the version in the kubeadm binary.
Adapt the tests to support that.
2021-08-09 19:42:08 +03:00
Lubomir I. Ivanov
207ffa7bdc kubeadm: dynamically populate the current/minimum k8s versions
Kubeadm requires manual version updates of its current supported k8s
control plane version and minimally supported k8s control plane and
kubelet versions every release cycle.

To avoid that, in constants.go:
- Add the helper function getSkewedKubernetesVersion() that can be
used to retrieve a MAJOR.(MINOR+n).0 version of k8s. It currently
uses the kubeadm version populated in "component-base/version" during
the kubeadm build process.
- Use the function to set existing version constants (variables).

Update util/config/common.go#NormalizeKubernetesVersion() to
tolerate the case where a k8s version in the ClusterConfiguration
is too old for the kubeadm binary to use during code freeze.

Include unit tests for the new utilities.
2021-08-09 19:42:08 +03:00
Jordan Liggitt
39a1293cbc Drop beta REST APIs removed in 1.22 2021-08-09 11:10:16 -04:00
Kubernetes Prow Robot
7ab3e3c8c3 Merge pull request #102981 from SataQiu/add-ephemeral-config-v1alpha1
Add --concurrent-ephemeralvolume-syncs flag for kube-controller-manager
2021-08-05 20:55:12 -07:00
Kubernetes Prow Robot
44e2723e2c Merge pull request #98913 from yxxhero/cmd_kube_proxy_app_structured_logging
migrate  cmd/kube-proxy/app logs to structured logging
2021-08-05 20:54:53 -07:00
Kubernetes Prow Robot
5eeaafd2b4 Merge pull request #104157 from knight42/remove-port-from-kubeadm-manifest
refactor(kubeadm): remove the flag --port from KCM manifest
2021-08-05 16:37:10 -07:00
Kubernetes Prow Robot
de4e500673 Merge pull request #104134 from ihgann/topic/ganni/optimize-kubeadm-etcd-member-add-2
kubeadm: reduce the backoff time of AddMember for etcd
2021-08-05 16:37:03 -07:00
Kubernetes Prow Robot
06b7de5c1a Merge pull request #104006 from Mzhiing/master
fix error variable name
2021-08-05 14:11:27 -07:00
Kubernetes Prow Robot
8df554bafd Merge pull request #103801 from gkarthiks/master
Remove purell package usage from kubeadm
2021-08-05 14:09:56 -07:00
Ian Gann
c8431f42d9 kubeadm: Reduce the backoff time of AddMember for etcd
This change optimizes the kubeadm/etcd `AddMember` client-side function
by stopping early in the backoff loop when a peer conflict is found
(indicating the member has already been added to the etcd cluster). In
this situation, the function will stop early and relay a call to
`ListMembers` to fetch the current list of members to return. With this
optimization, front-loading a `ListMembers` call is no longer necessary,
as this functionally returns the equivalent response.

This helps reduce the amount of time taken in situational cases where an
initial client request to add a member is accepted by the server, but
fails client-side.

This situation is possible situationally, such as if network latency
causes the request to timeout after it was sent and accepted by the
cluster. In this situation, the following loop would occur and fail with
an `ErrPeerURLExist` response, and would be stuck until the backoff
timeout was met (roughly ~2min30sec currently).

Testing Done:

* Manual testing with an etcd cluster. Initial "AddMember` call was
  successful, and the etcd manifest file was identical to prior version
  of these files. Subsequent calls to add the same member succeeded
  immediately (retaining idempotency), and the resulting manifest file
  remains identical to previous version as well. The difference, this
  time, is the call finished ~2min25sec faster in an identical test in
  the environment tested with.
2021-08-05 13:11:42 -07:00
Jian Zeng
c486b229d2 refactor(kubeadm): remove the flag --port from KCM manifest
Signed-off-by: Jian Zeng <zengjian.zj@bytedance.com>
2021-08-05 19:51:02 +08:00
Kubernetes Prow Robot
90ac41bd77 Merge pull request #103813 from SataQiu/update-kubeadm-ci-bucket
kubeadm: update references to legacy artifacts locations
2021-08-05 01:44:27 -07:00
Kubernetes Prow Robot
0a704f9e1f Merge pull request #103564 from kevindelgado/unstr-extr-poc
ExtractItems for unstructured apply configurations
2021-08-04 22:10:55 -07:00
Kubernetes Prow Robot
f1c817614d Merge pull request #103538 from Pingan2017/deprecate-option-controller-0707
deprecate unused option deployment-controller-sync-period for deploym…
2021-08-04 21:00:55 -07:00
paco
b7ea7a7766 kubeadm: disallow the mixture of --config and --patches 2021-08-02 10:20:31 +08:00
paco
375ef778c4 kubeadm: remove deprecated --experimental-patches 2021-08-02 10:10:20 +08:00
Mzhiing
2635415482 fix error variable name 2021-07-29 20:10:06 +08:00
Kevin Delgado
ca90849724 add kube-openapi/pkg/schemaconv to kubeadm import-restrictions 2021-07-28 01:06:15 +00:00
SataQiu
7fa0b9b6c1 add --concurrent-ephemeralvolume-syncs flag for kube-controller-manager 2021-07-25 21:36:57 +08:00
tanjing2020
523b4c0918 Replace 'x.Sub(time.Now())' with 'time.Until(x)' 2021-07-23 10:03:36 +08:00
SataQiu
5be47eaf27 kubeadm: update references to legacy artifacts locations 2021-07-21 12:13:05 +08:00
gkarthiks
019e8f71b6 refactor: normalizing URL string locally and move out from purell package
The purell package at github.com/PuerkitoBio/purell is no longer maintained and in k/k repo under kubeadm package its been used for normalizing the URL. This commit removes the dependency on this package and creates a local function for normalizing the URL within the preflight package under cmd/kubeadm.

Signed-off-by: gkarthiks <github.gkarthiks@gmail.com>

chore: add new line at end of the file

Signed-off-by: gkarthiks <github.gkarthiks@gmail.com>

fix: remove unused mod from vendor modules file

Signed-off-by: gkarthiks <github.gkarthiks@gmail.com>
2021-07-20 21:56:08 +05:30
yxxhero
38239d3025 migrate cmd/kube-proxy/app logs to structured logging 2021-07-20 23:07:41 +08:00
Kubernetes Prow Robot
76b0906136 Merge pull request #101047 from jsturtevant/issue-100966-dualstack-windows
[sig-windows] update winkernel to only use dualstack if the node and config supports it
2021-07-15 20:30:09 -07:00
Davanum Srinivas
07332ad398 fix ineffassign and varcheck
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2021-07-14 08:41:22 -04:00
Davanum Srinivas
26cc8e40a8 fix deadcode issues
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2021-07-14 08:41:21 -04:00
Kubernetes Prow Robot
584658a17d Merge pull request #103601 from dashpole/webhook_tracing
Add tracing to admission webhook requests
2021-07-12 10:22:47 -07:00
Kubernetes Prow Robot
2423813207 Merge pull request #103573 from chendave/fix_index
Fix index out of range if multiple default plugins are overridden
2021-07-09 08:43:23 -07:00
David Ashpole
9dd59017c4 add tracing to webhook requests 2021-07-09 06:30:05 -07:00
Dave Chen
5918869ed6 Revert 103327: "kube-scheduler: ensure the default config output of --write-to-config is usable"
We don't need to maually disable all the default plugins anymore

Signed-off-by: Dave Chen dave.chen@arm.com
2021-07-09 19:56:53 +08:00
Francesco Romani
c5cb263dcf smtalign: propagate policy options to cpumanager
The CPUManagerPolicyOptions received from the kubelet config/command line args
is propogated to the Container Manager.

We defer the consumption of the options to a later patch(set).

Co-authored-by: Swati Sehgal <swsehgal@redhat.com>
Signed-off-by: Francesco Romani <fromani@redhat.com>
2021-07-08 23:15:35 +02:00
Swati Sehgal
cc76a756e4 smtalign: add cpu-manager-policy-options flag in Kubelet
In this patch we enhance the kubelet configuration to support
cpuManagerPolicyOptions.

In order to introduce SMT-awareness in CPU Manager, we introduce a
new flag in Kubelet to allow the user to specify an additional flag
called `cpumanager-policy-options` to allow the user to modify the
behaviour of static policy to strictly guarantee allocation of whole
core.

Co-authored-by: Francesco Romani <fromani@redhat.com>
Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2021-07-08 23:14:59 +02:00
Kubernetes Prow Robot
694d6cd2b9 Merge pull request #103216 from dashpole/etcd_client_tracing
Add distributed tracing to the etcd client
2021-07-08 14:01:52 -07:00
Kubernetes Prow Robot
a9d7526864 Merge pull request #102970 from tkestack/feature-memory-qos
Feature: Support memory qos with cgroups v2
2021-07-08 14:01:36 -07:00
James Sturtevant
d5d9327351 Only use dualstack if the node and config supports it 2021-07-08 11:39:20 -07:00
Kubernetes Prow Robot
e326c00bc5 Merge pull request #103562 from neolit123/1.22-fix-upgrade-image-pull
kubeadm: statically default the "from cluster" InitConfiguration
2021-07-08 01:56:53 -07:00
Li Bo
c3d9b10ca8 feature: support Memory QoS for cgroups v2 2021-07-08 09:26:46 +08:00
Kubernetes Prow Robot
8fb777efb0 Merge pull request #103451 from swetharepakula/ga-proxy-gates
Graduate EndpointSliceProxying and WindowsEndpointSliceProxying Gates
2021-07-07 18:09:13 -07:00
Kubernetes Prow Robot
8e56a34195 Merge pull request #102966 from SergeyKanzhelev/deprecateDynamicKubeletConfig
deprecate and disable by default DynamicKubeletConfig feature flag
2021-07-07 17:05:15 -07:00
Lubomir I. Ivanov
6cf3e36c37 kubeadm: statically default the "from cluster" InitConfiguration
During operations such as "upgrade", kubeadm fetches the
ClusterConfiguration object from the kubeadm ConfigMap.
However, due to requiring node specifics it wraps it in an
InitConfiguration object. The function responsible for that is:
  app/util/config#FetchInitConfigurationFromCluster().

A problem with this function (and sub-calls) is that it ignores
the static defaults applied from versioned types
(e.g. v1beta3/defaults.go) and only applies dynamic defaults for:
- API endpoints
- node registration
- etc...

The introduction of Init|JoinConfiguration.ImagePullPolicy now
has static defaulting of the NodeRegistration object with a default
policy of "PullIfNotPresent". Respect this defaulting by constructing
a defaulted internal InitConfiguration from
FetchInitConfigurationFromCluster() and only then apply the dynamic
defaults over it.

This fixes a bug where "kubeadm upgrade ..." fails when pulling images
due to an empty ("") ImagePullPolicy. We could assume that empty
string means default policy on runtime in:
cmd/kubeadm/app/preflight/checks.go#ImagePullCheck()

but that might actually not be the user intent during "init" and "join",
due to e.g. a typo. Similarly, we don't allow empty tokens
on runtime and error out.
2021-07-08 02:52:11 +03:00
Swetha Repakula
0a42f7b989 Graduate EndpointSliceProxying and WindowsEndpointSliceProxying Gates 2021-07-07 13:33:30 -07:00
Kubernetes Prow Robot
ac554af79b Merge pull request #103142 from serathius/etcd-3.5.0
Upgrade etcd to 3.5.0
2021-07-07 12:40:22 -07:00
Kubernetes Prow Robot
17f6f28621 Merge pull request #103468 from Huang-Wei/fix-sched-cc
instantiates scheduler ComponentConfig after parsing feature gates
2021-07-07 01:22:43 -07:00
Pingan2017
bf9f3dc7b3 deprecate unused option deployment-controller-sync-period for deployment controller 2021-07-07 15:40:12 +08:00
Kubernetes Prow Robot
656d00e894 Merge pull request #103496 from neolit123/1.22-add-defaulting-v1beta3-imagepull
kubeadm: statically default ImagePullPolicy in v1beta3
2021-07-06 22:11:48 -07:00
Kubernetes Prow Robot
ea3bcbc205 Merge pull request #101946 from chendave/balance_allocation
Support extended resource in NodeResourcesBalancedAllocation plugin
2021-07-06 10:42:19 -07:00
Wei Huang
4c9c761bbb instantiates scheduler ComponentConfig after parsing feature gates 2021-07-06 10:39:12 -07:00
Kubernetes Prow Robot
554c65fb77 Merge pull request #103495 from neolit123/1.22-fix-godoc-formatting-for-v1beta3
kubeadm: fix godoc formatting for v1beta3
2021-07-06 00:32:18 -07:00