Skip to content

Commit

Permalink
Config the root_maxkeys and root_maxbytes if the existing values
Browse files Browse the repository at this point in the history
are smaller than the default ones.
  • Loading branch information
dchen1107 committed May 25, 2016
1 parent 303d5a1 commit a8ac041
Showing 1 changed file with 28 additions and 8 deletions.
36 changes: 28 additions & 8 deletions cmd/kubelet/app/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -672,17 +672,37 @@ func RunKubelet(kcfg *KubeletConfig) error {
// TODO(dawnchen): remove this once we deprecated old debian containervm images.
// This is a workaround for issue: https://github.com/opencontainers/runc/issues/726
// The current chosen number is consistent with most of other os dist.
const maxkey_path = "/proc/sys/kernel/keys/root_maxkeys"
glog.Infof("Setting keys quota in %s to %d", maxkey_path, 1000000)
err = ioutil.WriteFile(maxkey_path, []byte(fmt.Sprintf("%d", uint32(1000000))), 0644)
const maxkeysPath = "/proc/sys/kernel/keys/root_maxkeys"
const minKeys uint64 = 1000000
key, err := ioutil.ReadFile(maxkeysPath)
if err != nil {
return fmt.Errorf("failed to update %s: %v", maxkey_path, err)
glog.Errorf("Cannot read keys quota in %s", maxkeysPath)
} else {
fields := strings.Fields(string(key))
nkey, _ := strconv.ParseUint(fields[0], 10, 64)
if nkey < minKeys {
glog.Infof("Setting keys quota in %s to %d", maxkeysPath, minKeys)
err = ioutil.WriteFile(maxkeysPath, []byte(fmt.Sprintf("%d", uint64(minKeys))), 0644)
if err != nil {
glog.Warningf("Failed to update %s: %v", maxkeysPath, err)
}
}
}
const maxbyte_path = "/proc/sys/kernel/keys/root_maxbytes"
glog.Infof("Setting keys bytes in %s to %d", maxbyte_path, 25000000)
err = ioutil.WriteFile(maxbyte_path, []byte(fmt.Sprintf("%d", uint32(25000000))), 0644)
const maxbytesPath = "/proc/sys/kernel/keys/root_maxbytes"
const minBytes uint64 = 25000000
bytes, err := ioutil.ReadFile(maxbytesPath)
if err != nil {
return fmt.Errorf("failed to update %s: %v", maxbyte_path, err)
glog.Errorf("Cannot read keys bytes in %s", maxbytesPath)
} else {
fields := strings.Fields(string(bytes))
nbyte, _ := strconv.ParseUint(fields[0], 10, 64)
if nbyte < minBytes {
glog.Infof("Setting keys bytes in %s to %d", maxbytesPath, minBytes)
err = ioutil.WriteFile(maxbytesPath, []byte(fmt.Sprintf("%d", uint64(minBytes))), 0644)
if err != nil {
glog.Warningf("Failed to update %s: %v", maxbytesPath, err)
}
}
}

// process pods and exit.
Expand Down

0 comments on commit a8ac041

Please sign in to comment.