Skip to content

Commit 42bb3d1

Browse files
authored
Merge pull request #3457 from dsxing/reduce_logs_for_kubelet_use_crio
Reduce kubelet logs 'Failed to create existing container' when kubelet is using crio
2 parents 27f1e92 + b407dcd commit 42bb3d1

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

container/crio/factory.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ import (
3232
// The namespace under which crio aliases are unique.
3333
const CrioNamespace = "crio"
3434

35+
// The namespace suffix under which crio aliases are unique.
36+
const CrioNamespaceSuffix = ".scope"
37+
3538
// The namespace systemd runs components under.
3639
const SystemdNamespace = "system-systemd"
3740

@@ -114,16 +117,21 @@ func (f *crioFactory) CanHandleAndAccept(name string) (bool, bool, error) {
114117
// TODO(runcom): should we include crio-conmon cgroups?
115118
return false, false, nil
116119
}
117-
if !strings.HasPrefix(path.Base(name), CrioNamespace) {
118-
return false, false, nil
119-
}
120120
if strings.HasPrefix(path.Base(name), SystemdNamespace) {
121121
return true, false, nil
122122
}
123+
if !strings.HasPrefix(path.Base(name), CrioNamespace) {
124+
return false, false, nil
125+
}
123126
// if the container is not associated with CRI-O, we can't handle it or accept it.
124127
if !isContainerName(name) {
125128
return false, false, nil
126129
}
130+
131+
if !strings.HasSuffix(path.Base(name), CrioNamespaceSuffix) {
132+
// this mean it's a sandbox container
133+
return true, false, nil
134+
}
127135
return true, true, nil
128136
}
129137

container/crio/factory_test.go

+15-8
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ import (
2020
"github.com/stretchr/testify/assert"
2121
)
2222

23+
type canHandleAndAccept struct {
24+
canHandle bool
25+
canAccept bool
26+
}
27+
2328
func TestCanHandleAndAccept(t *testing.T) {
2429
as := assert.New(t)
2530
f := &crioFactory{
@@ -31,16 +36,18 @@ func TestCanHandleAndAccept(t *testing.T) {
3136
storageDir: "",
3237
includedMetrics: nil,
3338
}
34-
for k, v := range map[string]bool{
35-
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f": true,
36-
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f.mount": false,
37-
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-conmon-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f": false,
38-
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/no-crio-conmon-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f": false,
39-
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75": false,
39+
for k, v := range map[string]canHandleAndAccept{
40+
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f": {true, false},
41+
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f.scope": {true, true},
42+
"/system.slice/system-systemd\\\\x2dcoredump.slice": {true, false},
43+
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f.mount": {false, false},
44+
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-conmon-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f": {false, false},
45+
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/no-crio-conmon-81e5c2990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75d5f": {false, false},
46+
"/kubepods/pod068e8fa0-9213-11e7-a01f-507b9d4141fa/crio-990803c383229c9680ce964738d5e566d97f5bd436ac34808d2ec75": {false, false},
4047
} {
4148
b1, b2, err := f.CanHandleAndAccept(k)
4249
as.Nil(err)
43-
as.Equal(b1, v)
44-
as.Equal(b2, v)
50+
as.Equal(b1, v.canHandle)
51+
as.Equal(b2, v.canAccept)
4552
}
4653
}

0 commit comments

Comments
 (0)