Commit Graph

44631 Commits

Author SHA1 Message Date
Masashi Honma
3266136c1d Fire an event when failing to open NodePort
[issue]
When creating a NodePort service with the kubectl create command, the NodePort
assignment may fail.

Failure to assign a NodePort can be simulated with the following malicious
command[1].

$ kubectl create service nodeport temp-svc --tcp=`python3 <<EOF
print("1", end="")
for i in range(2, 1026):
  print("," + str(i), end="")
EOF
`

The command succeeds and shows following output.

service/temp-svc created

The service has been successfully generated and can also be referenced with the
get command.

$ kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)
temp-svc     NodePort    10.0.0.139   <none>        1:31335/TCP,2:32367/TCP,3:30263/TCP,(omitted),1023:31821/TCP,1024:32475/TCP,1025:30311/TCP   12s

The user does not recognize failure to assign a NodePort because
create/get/describe command does not show any error. This is the issue.

[solution]
Users can notice errors by looking at the kube-proxy logs, but it may be difficult to see the kube-proxy logs of all nodes.

E0327 08:50:10.216571  660960 proxier.go:1286] "can't open port, skipping this nodePort" err="listen tcp4 :30641: socket: too many open files" port="\"nodePort for default/temp-svc:744\" (:30641/tcp4)"
E0327 08:50:10.216611  660960 proxier.go:1286] "can't open port, skipping this nodePort" err="listen tcp4 :30827: socket: too many open files" port="\"nodePort for default/temp-svc:857\" (:30827/tcp4)"
...
E0327 08:50:10.217119  660960 proxier.go:1286] "can't open port, skipping this nodePort" err="listen tcp4 :32484: socket: too many open files" port="\"nodePort for default/temp-svc:805\" (:32484/tcp4)"
E0327 08:50:10.217293  660960 proxier.go:1612] "Failed to execute iptables-restore" err="pipe2: too many open files ()"
I0327 08:50:10.217341  660960 proxier.go:1615] "Closing local ports after iptables-restore failure"

So, this patch will fire an event when NodePort assignment fails.
In fact, when the externalIP assignment fails, it is also notified by event.

The event will be displayed like this.

$ kubectl get event
LAST SEEN   TYPE      REASON                                            OBJECT           MESSAGE
...
2s          Warning   listen tcp4 :31055: socket: too many open files   node/127.0.0.1   can't open "nodePort for default/temp-svc:901" (:31055/tcp4), skipping this nodePort: listen tcp4 :31055: socket: too many open files
2s          Warning   listen tcp4 :31422: socket: too many open files   node/127.0.0.1   can't open "nodePort for default/temp-svc:474" (:31422/tcp4), skipping this nodePort: listen tcp4 :31422: socket: too many open files
...

This PR fixes iptables and ipvs proxier.
Since userspace proxier does not seem to be affected by this issue, it is not fixed.

[1] Assume that fd limit is 1024(default).
$ ulimit -n
1024
2021-04-01 08:27:51 +09:00
Rob Scott
50b377fe4e Updating Topology Aware Hints to support "Auto" value for annotation
Previously only "auto" was supported, a value that was inconsistent with
Kubernetes naming patterns.
2021-03-31 15:58:42 -07:00
hasheddan
7c7cff6d27 Add timeout to Azure ACR credential provider
Adds a default timeout to the Azure ACR HTTP client to avoid hanging
when unable to reach server.

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>
2021-03-30 17:15:54 -05:00
Niekvdplas
fec272a7b2 Fixed several spelling mistakes 2021-03-30 23:02:09 +02:00
Wei Huang
e7f67b1a63 Surface kube config in scheduler framework handle 2021-03-30 11:54:59 -07:00
Andrew Sy Kim
dec775bb7a ipvs: add uablrek to OWNERS
Signed-off-by: Andrew Sy Kim <kim.andrewsy@gmail.com>
2021-03-29 14:04:51 -04:00
Kubernetes Prow Robot
9c9af69ea6 Merge pull request #100573 from pacoxu/upgrade-corefile-migration
Update the kubelet log pod status to level 6 as it is so big
2021-03-26 11:26:43 -07:00
wangyx1992
34c2b2360b fix errors in wrapped format
Signed-off-by: wangyx1992 <wang.yixiang@zte.com.cn>
2021-03-26 14:57:55 +08:00
Paco Xu
54606db1b4 Update pkg/kubelet/pleg/generic.go
Co-authored-by: Elana Hashman <ehashman@users.noreply.github.com>
2021-03-26 13:19:51 +08:00
ZP-AlwaysWin
b56d8dd513 Add unit test 2021-03-26 11:10:30 +08:00
pacoxu
3fc1e0891b Update the kubelet log status to level 6 as it is so big
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-03-26 10:09:20 +08:00
Kubernetes Prow Robot
01f7495b65 Merge pull request #100563 from msau42/revert-azure
Revert #97417 "fix azure file secret not found issue"
2021-03-25 14:27:46 -07:00
Michelle Au
9c169a2122 Revert "fix azure file secret not found issue"
This reverts commit 8d43976b74.

Change-Id: Iefaa0e76489883830ba1c9bdcbc3101bcc33082c
2021-03-25 09:28:50 -07:00
Daniela Lins
6c105c9e8a Linewrap for makePort calls and lint fixes
Signed-off-by: Daniela Lins <danielamlins@gmail.com>
2021-03-25 17:12:02 +01:00
Daniela Lins
22cc8dc3a8 Specify IPV4 on tweak names
Signed-off-by: Daniela Lins <danielamlins@gmail.com>
2021-03-25 16:57:11 +01:00
Daniela Lins
f4e469ee14 Standardize Namespace and Podselector tweaks
Signed-off-by: Daniela Lins <danielamlins@gmail.com>
2021-03-25 16:50:28 +01:00
Daniela Lins
5f47d0e8ef Reduce vertical space
Signed-off-by: Daniela Lins <danielamlins@gmail.com>
2021-03-25 16:41:06 +01:00
Daniela Lins
cb48e3cfca Handle int and string port in makePort
Signed-off-by: Daniela Lins <danielamlins@gmail.com>
2021-03-25 16:35:23 +01:00
JUN YANG
80b4277bff Optimize the structured Logging migration.
Signed-off-by: JUN YANG <yang.jun22@zte.com.cn>
2021-03-25 20:21:38 +08:00
Adhityaa Chandrasekar
0a21157c96 job controller: don't mutate shared cache object
Signed-off-by: Adhityaa Chandrasekar <adtac@google.com>
2021-03-25 06:36:15 +00:00
Kubernetes Prow Robot
bacce2eca6 Merge pull request #100215 from pacoxu/fix/data-race
fix a data race in volume reconciler ut #99815
2021-03-24 20:01:29 -07:00
tanjing2020
d4465b995e Scheduler: skip updates of assumed pods 2021-03-24 10:01:22 +08:00
Kubernetes Prow Robot
ea07644522 Merge pull request #99926 from gjkim42/deflake-TestWatchFileChanged
kubelet_test: Deflake TestWatchFileChanged
2021-03-23 16:30:05 -07:00
Kubernetes Prow Robot
42261726ed Merge pull request #100254 from tkashem/apf-post-start-hook-handle-error
apf PostStartHook: handle error from PollImmediateUntil
2021-03-23 12:09:36 -07:00
Jan Safranek
408d67dcc5 Fix mounting partitions on NVMe devices 2021-03-23 19:01:47 +01:00
Hemant Kumar
0c9138a204 reduce volume length for vsphere volumes further 2021-03-23 13:43:51 -04:00
Kubernetes Prow Robot
bbb58fa085 Merge pull request #100465 from chrishenzie/nil-ptr-deref-in-logs
Fix nil ptr dereference in log line
2021-03-23 09:41:36 -07:00
Kubernetes Prow Robot
be2eb33b96 Merge pull request #100438 from dims/fix-providerless-kubelet
Ensure providerless kubelet does not pull cloud providers
2021-03-23 07:49:37 -07:00
houjun
d9939a34d9 Missing return on error 2021-03-23 17:21:07 +08:00
jornshen
b1c6e70255 cleanup parseExcludedCIDRs 2021-03-23 17:15:43 +08:00
Dave Chen
a0d93cc0c8 Move NodeResourcesFit plugin args validation to apis/config/validation
Signed-off-by: Dave Chen <dave.chen@arm.com>
2021-03-23 16:09:53 +08:00
caiweidong
850759ec87 Preempting: do not delete the victim if it just exits in WaitingPods 2021-03-23 14:37:36 +08:00
Jiahao Huang
4621722888 Change go file mode from 755 to 644
to check all file:
find . -perm 755 | grep "\.go$"
2021-03-23 10:50:17 +08:00
Chris Henzie
f756bd5189 Fix nil ptr dereference in log line 2021-03-22 16:06:51 -07:00
Masashi Honma
39538463de test: Use bytes.Buffer.String
Fix some warnings from go-staticcheck.

"should use buffer.String() instead of string(buffer.Bytes()) (S1030)"

This warning is explained at this link.
https://staticcheck.io/docs/checks#S1030
2021-03-22 17:48:21 +09:00
Davanum Srinivas
ba56884d91 Ensure providerless kubelet does not pull cloud providers
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2021-03-21 21:36:38 -04:00
Jie Shen
3807a92df0 Use cmp.Diff instead of diff.Object* in pkg/api 2021-03-20 21:40:34 +08:00
Nick Turner
d422a92e66 Fix ECR provider startup latency
* Before this change, even on non-AWS platforms, the Enabled() check attempts
  to make calls to the metadata endpoint when the session and credentials
  are initialized (in order to determine if the provider should be
  initialized at all).
* This can cause latency because the SDK times out and retries -- up to
  20 seconds of latency has been observed on non-AWS platforms when the
  metadata IP was blocked with an iptables rule.
* Instead, check once if we are running on an EC2 platform, first trying
  to find the EC2 UUID in system files, and second attempting to get
  credentials.
* Add a benchmark test that includes intialization and the credential
  check.
2021-03-19 23:37:11 +00:00
Abu Kashem
b776109427 apf: handle error from PollImmediateUntil
We should not attempt creation of mandatory objects if ensuring
the suggested configuration resulted in an error.
We rely on the presence of the "exempt" priority level configuration
object in the cluster to indicate whether we should ensure
suggested configuration.
2021-03-19 14:37:44 -04:00
Aditi Sharma
a724a3df77 Fix structured logs for dns.go
Signed-off-by: Aditi Sharma <adi.sky17@gmail.com>
2021-03-19 19:05:30 +05:30
JUN YANG
6c566f6dfa Fix misspelling of condition.
Signed-off-by: JUN YANG <yang.jun22@zte.com.cn>
2021-03-19 16:27:53 +08:00
mengjiao.liu
2f9f72a563 Update PodSpec/Overhead broken links 2021-03-19 13:49:13 +08:00
Elana Hashman
6af7eb6d49 Migrate missed log entries in kubelet
Co-Authored-By: pacoxu <paco.xu@daocloud.io>
2021-03-18 14:26:26 -07:00
Wei Huang
9d1ef9f4c5 unregister Service events if a plugin doesn't implement EventsToRegister() 2021-03-18 11:04:06 -07:00
Kubernetes Prow Robot
54449be031 Merge pull request #100346 from dims/revert-derekwaynecarrpromote-memory-backed-volumes
Revert "Promote SizeMemoryBackedVolumeSizing to beta"
2021-03-18 05:55:19 -07:00
houjun
4c6d5ea709 Remove redundant checks 2021-03-18 19:52:39 +08:00
Jerry.Ge
31b79f481e added eventsToRegister for nodeName & nodeUnschedulable plugins
Signed-off-by: Jerry Ge <jerry.ge@arm.com>
2021-03-18 04:22:51 -04:00
Wei Huang
ed673ba0e9 implement EnqueueExtensions interface in serviceaffinity 2021-03-17 19:04:08 -07:00
Kubernetes Prow Robot
e9632d93f7 Merge pull request #99861 from navidshaikh/pr/slog-kubelet
Migrate pkg/kubelet/kubelet.go to structured logging
2021-03-17 19:03:18 -07:00
Jiaxin Shan
1b4dc87a1f Expose resources overrides and maxPods conf in kubemark 2021-03-17 16:31:58 -07:00