Skip to content

Commit 4775cc2

Browse files
committed
feat(hosts/k8s): kubevirt - set cpu-manager's policy to static
1 parent 34e7e9b commit 4775cc2

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

hosts/k8s/kubevirt-shoryu/default.nix

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
config,
2+
lib,
33
pkgs,
44
mylib,
55
myvars,
@@ -22,6 +22,13 @@
2222
# use my own domain & kube-vip's virtual IP for the API server
2323
# so that the API server can always be accessed even if some nodes are down
2424
masterHost = "kubevirt-cluster-1.writefor.fun";
25+
kubeletExtraArgs = [
26+
"--cpu-manager-policy=static"
27+
# https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/
28+
# we have to reserve some resources for for system daemons running as pods
29+
# when cpu-manager's static policy is enabled
30+
"--system-reserved=cpu=1,memory=1Gi,ephemeral-storage=2Gi"
31+
];
2532
nodeLabels = [
2633
"node-purpose=kubevirt"
2734
];

lib/genK3sServerModule.nix

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
# this can be a domain name or an IP address(such as kube-vip's virtual IP)
1111
masterHost,
1212
clusterInit ? false,
13+
kubeletExtraArgs ? [],
1314
nodeLabels ? [],
1415
nodeTaints ? [],
1516
disableFlannel ? true,
1617
...
1718
}: let
19+
lib = pkgs.lib;
1820
package = pkgs.k3s_1_29;
1921
in {
2022
environment.systemPackages = with pkgs; [
@@ -59,9 +61,10 @@ in {
5961
]
6062
++ (map (label: "--node-label=${label}") nodeLabels)
6163
++ (map (taint: "--node-taint=${taint}") nodeTaints)
62-
++ (pkgs.lib.optionals disableFlannel ["--flannel-backend=none"]);
64+
++ (map (arg: "--kubelet-arg=${arg}") kubeletExtraArgs)
65+
++ (lib.optionals disableFlannel ["--flannel-backend=none"]);
6366
in
64-
pkgs.lib.concatStringsSep " " flagList;
67+
lib.concatStringsSep " " flagList;
6568
};
6669

6770
# create symlinks to link k3s's cni directory to the one used by almost all CNI plugins

0 commit comments

Comments
 (0)