{"id":22725642,"url":"https://github.com/livetocode/kubernetes-storage-stress-tests","last_synced_at":"2025-03-29T23:42:52.567Z","repository":{"id":76004158,"uuid":"115671864","full_name":"livetocode/kubernetes-storage-stress-tests","owner":"livetocode","description":null,"archived":false,"fork":false,"pushed_at":"2018-01-12T03:55:44.000Z","size":3,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-05T01:31:24.440Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/livetocode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-29T00:59:51.000Z","updated_at":"2020-06-24T12:44:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"dbc179ae-72f5-4ae2-b418-373c801d0c62","html_url":"https://github.com/livetocode/kubernetes-storage-stress-tests","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livetocode%2Fkubernetes-storage-stress-tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livetocode%2Fkubernetes-storage-stress-tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livetocode%2Fkubernetes-storage-stress-tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livetocode%2Fkubernetes-storage-stress-tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/livetocode","download_url":"https://codeload.github.com/livetocode/kubernetes-storage-stress-tests/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246258862,"owners_count":20748573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-10T16:13:26.706Z","updated_at":"2025-03-29T23:42:52.557Z","avatar_url":"https://github.com/livetocode.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Description\n\nThis script will stress your Kubernetes node by running all versions of nodejs in order to verify the garbage collection or the container images.\n\nSee https://kubernetes.io/docs/concepts/cluster-administration/kubelet-garbage-collection/\n\n# Steps\n\nIt will first pick the first schedulable node, then grab the list of all the tags of the official node repository, from DockerHub.\nFinally, it will execute for each tag a \"node --version\" for the corresponding image.\n\n# Observe\n\nYou can then monitor your disk usage with Prometheus/Grafana and notice the file system grow, then shrink after each cleanup.\nYou might encounter failing pods when disk is not sufficient. They won't retry since the restart policy is set to Never.\n\n# Warning\n\nThe pods are run within the *docker-stress-test* namespace, which is always **deleted** then created at the beginning of each run.\n\nYou will see the pods in the kubernetes dashboard, but you might not have access to their logs once the garbage collector flushed the completed containers.\n\n# Requirements\n\n- kubectl / docker\n- jq\n- docker-ls\n\n# Start\n\nEnsure that your KUBECONFIG var is properly set and verify the options with the script (namespace, sleep period, tooling...), then run:\n\n```\nbash run-many-different-docker-images.sh\n```\n\n\n# Issues\n\n## Node crash\n\nWe experienced node reboots after a few gigs of docker images. \n\nWe had to upgrade the kernel to fix this.\n\n## Garbage collector won't work\n\nWe noticed that the data was not garbaged collected because we used either btrfs or xfs with overlay which were not properly monitored by the cadvisor verion of the kubelet.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivetocode%2Fkubernetes-storage-stress-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivetocode%2Fkubernetes-storage-stress-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivetocode%2Fkubernetes-storage-stress-tests/lists"}