kubernetes/kops

How to use the power of reserved resources with ubuntu 22.04, containerd , kops1.27 and aws!

Opened this issue · 0 comments

nuved commented

/kind bug

1. What kops version are you running? The command kops version, will display
this information.

Client version: 1.28.4 (git-v1.28.4)

2. What Kubernetes version are you running? kubectl version will print the
version if a cluster is running or provide the Kubernetes version specified as
a kops flag.

clientVersion:
  buildDate: "2023-10-18T11:42:32Z"
  compiler: gc
  gitCommit: 07a61d861519c45ef5c89bc22dda289328f29343
  gitTreeState: clean
  gitVersion: v1.27.7
  goVersion: go1.20.10
  major: "1"
  minor: "27"
  platform: linux/amd64
kustomizeVersion: v5.0.1
serverVersion:
  buildDate: "2024-04-16T14:57:24Z"
  compiler: gc
  gitCommit: 96b450c75ae3c48037f651b4777646dcca855ed0
  gitTreeState: clean
  gitVersion: v1.27.13
  goVersion: go1.21.9
  major: "1"
  minor: "27"
  platform: linux/amd64

3. What cloud provider are you using?
AWS
4. What commands did you run? What is the simplest way to reproduce this issue?
Reserved resources ability does not work by adding mentioned configuration. kubelet service didn't start since it was complained about many things.

    enforceNodeAllocatable: pods,system-reserved.kube-reserved
    evictionHard: memory.available<2048Mi,nodefs.available<10%,nodefs.inodesFree<5%,imagefs.available<10%,imagefs.inodesFree<5%
    kubeReserved:
      cpu: 80m
      ephemeral-storage: 2Gi
      memory: 512Mi
    kubeReservedCgroup: /kube-reserved
    kubeletCgroups: /kube-reserved
    runtimeCgroups: /kube-reserved
    systemReserved:
      cpu: 40m
      ephemeral-storage: 1Gi
      memory: 256Mi
    systemReservedCgroup: /system-reserved

5. What happened after the commands executed?

6. What did you expect to happen?
the system-reserved.slice must be created by fileAssets ,needed a oneshot job to start system-reserved.slice and add hugetlb controller to system.slice and kube.slice .
7. Please provide your cluster manifest. Execute
kops get --name my.example.com -o yaml to display your cluster manifest.
You may want to remove your cluster name and other sensitive information.

fileAssets:
  - content: |
      [Unit]
      Description=Limited resources slice for System services
      Documentation=man:systemd.special(7)
      DefaultDependencies=no
      Before=slices.target
      Requires=-.slice
      After=-.slice
    name: system-reserved-slice
    path: /etc/systemd/system/system-reserved.slice
  hooks:
  - before:
    - kubelet.service
    manifest: |
      [Unit]
      Description=Custom setup service for cgroup slices
      Before=kubelet.service

      [Service]
      Type=oneshot
      ExecStart=/bin/bash -c 'systemctl start system-reserved.slice && echo "+hugetlb" >> /sys/fs/cgroup/system.slice/cgroup.subtree_control && echo "+hugetlb" >> /sys/fs/cgroup/kube.slice/cgroup.subtree_control'
      Restart=on-failure
      RestartSec=3
      [Install]
      WantedBy=multi-user.target
    name: cgroup-slices.service
  image: ssm:/aws/service/canonical/ubuntu/server/22.04/stable/current/amd64/hvm/ebs-gp2/ami-id

8. Please run the commands with most verbose logging by adding the -v 10 flag.
Paste the logs into this report, or in a gist and provide the gist link here.

9. Anything else do we need to know?