Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[vc subcmd] init nodepool and workload subcommands #4

Closed
8 of 9 tasks
fuweid opened this issue Dec 12, 2023 · 1 comment
Closed
8 of 9 tasks

[vc subcmd] init nodepool and workload subcommands #4

fuweid opened this issue Dec 12, 2023 · 1 comment

Comments

@fuweid
Copy link
Collaborator

fuweid commented Dec 12, 2023

The vc sub-command is used to setup simulated cluster over real cluster and simulate pod or node's lifecycle.
This sub-command uses kwok to setup virtual nodes.

Ideally, the user can use existing benchmark tools, like ArgoWorkflow, to setup large scale objects in the cluster.

1. nodepool

1.1 kperf vc nodepool add name [options]

This command uses statefulset to setup a set of virtual nodes.

Options:

  • --nodes: optional, INT, default: 10, the number of virtual nodes
  • --cpu: optional, INT, default: 8, the allocatable CPU resource per node
  • --mem: optional, INT, default: 16, the allocatable Memory resource per node (GiB)
  • --affinity: optional, STRING SLICE, default: empty slice, format: key=value1,value2,..., deploy nodepool controllers into nodes with specific labels.
  • --max-pods: optional, INT, default: 110, the max running pods per virtual node.

TODO:

1.2 kperf vc nodepool del name

This command is to delete virtual nodepool.

1.3 kperf vc nodepool list

This command is to show existing nodepool.

2. workload

With running virtual-nodes, users can deploy workloads with that following nodeAffinity.

affinity:
   nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
         nodeSelectorTerms:
         - matchExpressions:
            - key: type
              operator: In
              values:
                - kperf-virtualnodes
            - key: alpha.kperf.io/nodepool
              operator: In
              values:
                 - {{ nodepool name }}

The workload command is a collection of common workloads to mutate kubernetes cluster.

TODO:

NOTE: We can introduce Argo-Workflow/Kyverno/... workloads into vc/workload. But for this issue, we just need one subcommand.

Tasks

Preview Give feedback
  1. kind/feature priority/P2
    PugDeveloper
  2. kind/feature priority/P3
    PugDeveloper
  3. kind/feature priority/P2
    fuweid
  4. kind/feature priority/P2
    manasachi
  5. kind/feature priority/P3
    fuweid
  6. kind/feature priority/P3
    fuweid
  7. kind/feature priority/P2
@fuweid fuweid changed the title Initialize virtualcluster(vc) sub-command [vc subcmd] init nodepool and workload subcommands Jan 9, 2024
@fuweid fuweid added this to the v0.0.2 milestone Jan 19, 2024
@fuweid fuweid modified the milestones: v0.0.2, v0.1.0 Jan 31, 2024
@fuweid
Copy link
Collaborator Author

fuweid commented Apr 23, 2024

@fuweid fuweid closed this as completed Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants