{"id":38788551,"url":"https://github.com/kdgyun/k8s-cluster-bootstrap","last_synced_at":"2026-01-17T12:36:06.319Z","repository":{"id":168127362,"uuid":"642167229","full_name":"kdgyun/k8s-cluster-bootstrap","owner":"kdgyun","description":"An easy and ready-to-go bootstrap for k8s installation and automatic cluster deployment!","archived":false,"fork":false,"pushed_at":"2024-05-23T07:01:25.000Z","size":131,"stargazers_count":9,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-23T07:47:44.188Z","etag":null,"topics":["bootstrap","k8s","k8s-cluster","kubernetes","terraform"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdgyun.png","metadata":{"files":{"readme":"README-en.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-18T01:13:27.000Z","updated_at":"2024-08-02T10:54:37.683Z","dependencies_parsed_at":"2023-09-08T06:59:04.169Z","dependency_job_id":"45ada469-0a0f-4a09-9812-ff60cf25673b","html_url":"https://github.com/kdgyun/k8s-cluster-bootstrap","commit_stats":null,"previous_names":["kdgyun/kubernetesautodeployment","kdgyun/k8s-cluster-bootstrap"],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/kdgyun/k8s-cluster-bootstrap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdgyun%2Fk8s-cluster-bootstrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdgyun%2Fk8s-cluster-bootstrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdgyun%2Fk8s-cluster-bootstrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdgyun%2Fk8s-cluster-bootstrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdgyun","download_url":"https://codeload.github.com/kdgyun/k8s-cluster-bootstrap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdgyun%2Fk8s-cluster-bootstrap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T11:50:55.898Z","status":"ssl_error","status_checked_at":"2026-01-17T11:50:55.569Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bootstrap","k8s","k8s-cluster","kubernetes","terraform"],"created_at":"2026-01-17T12:36:05.184Z","updated_at":"2026-01-17T12:36:06.144Z","avatar_url":"https://github.com/kdgyun.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":" **[한글 문서](./README.md)** | **English Document**\n\n\u003cbr /\u003e\n  \n   \n![](https://img.shields.io/github/v/release/kdgyun/KubernetesAutoDeployment?style=flat-square)\n![](https://img.shields.io/github/issues/kdgyun/KubernetesAutoDeployment?color=red\u0026style=flat-square)\n![](https://img.shields.io/github/issues-closed/kdgyun/KubernetesAutoDeployment?style=flat-square)\n![](https://img.shields.io/github/license/kdgyun/KubernetesAutoDeployment?style=flat-square)\n![](https://img.shields.io/github/languages/code-size/kdgyun/KubernetesAutoDeployment?style=flat-square)\n![](https://img.shields.io/static/v1?label=Ubuntu\u0026message=\u003c=22.04.2_LTS(Jammy_Jellyfish)\u0026color=green\u0026style=flat-square\u0026logo=ubuntu)\n![](https://img.shields.io/static/v1?label=Ubuntu\u0026message=\u003e=v18.04.06_LTS(Bionic_Beaver)\u0026color=green\u0026style=flat-square\u0026logo=ubuntu)\n![](https://img.shields.io/static/v1?label=Kubernetes\u0026message=\u003e=v1.24.15\u0026color=green\u0026style=flat-square\u0026logo=kubernetes)\n![](https://img.shields.io/static/v1?label=Kubernetes\u0026message=\u003c=v1.31.2\u0026color=green\u0026style=flat-square\u0026logo=kubernetes)\n![](https://img.shields.io/static/v1?label=cri-socket\u0026message=cri-dockerd.v0.0.3\u0026color=green\u0026style=flat-square\u0026logo=docker)\n![](https://img.shields.io/static/v1?label=docker\u0026message=v24.0.15\u0026color=green\u0026style=flat-square\u0026logo=docker)\n![](https://img.shields.io/static/v1?label=go\u0026message=v1.20.5\u0026color=green\u0026style=flat-square\u0026logo=go)\n\n\n\n\u003cbr /\u003e\n\n# k8s-cluster-bootstrap\n\n#### 🔨 An easy and ready-to-go bootstrap for k8s installation and automatic cluster deployment!\n\n\u003cbr /\u003e\n   \n## Requirements   \n\n- Ubuntu (or ubuntu server) version between 18.04 (inclusive) and 22.04 (inclusive) recommended.\n- Nodes (both master and workers) are to be in the same subnet. **For calico autodeployment to work** the Master node's IP(Host IP) must **not be within the same CIDR**.\n- If accessing via ssh, use username/password authentication and not pem.\n- The script automatically opens some ports (such as 6443), but ports may need to be manually opened in case of firewalls or company policies.\n  ([ports required to be open for k8s installation](https://kubernetes.io/docs/reference/networking/ports-and-protocols/))\n\n\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n## **Usage**\n\n\n### 1. Bootstrap download\n\nFrom the home directory, run `curl -sSLO http://raw.githubusercontent.com/kdgyun/k8s-cluster-bootstrap/main/k8s-cluster-bootstrap.sh` or download from github [**latest release version**](https://github.com/kdgyun/k8s-cluster-bootstrap/releases/) and run k8s-cluster-bootstrap.sh.\n\n\u003cbr /\u003e   \n\n### 2. File Run Permission\n\nGrant `k8s-cluster-bootstrap.sh` the following permission:\n\n```bash\nchmod +x k8s-cluster-bootstrap.sh\n```\n\n\u003cbr /\u003e   \n\n### 3. Execution\n\nRun `k8s-cluster-bootstrap.sh` with sudo.\n\n```bash\nsudo ./k8s-cluster-bootstrap.sh [options] \u003cvalue\u003e\n```\n\nThe arguments for [options] are explained below.\n\n\u003cbr /\u003e   \n\n\u003cbr /\u003e   \n\n## Options\n\n\u003cbr /\u003e\n\nThe following shows the available options to run this bootstrap.\n\n| Option(Flag) | Values | Description, example | Remarks |\n| --- | --- | --- | --- |\n| ```-c / --cni``` | CIDR | Installs cni(with calico) during master node installation. | To utilize this option, the master's IP(Host IP) cannot overlap with calico's CIDR. Please utilize one of the following CIDR: ```10.0.0.0/8```, ```172.16.0.0/12```, ```192.168.0.0/16```. |\n| ```-ct / --containertype``` | Container Runtime | Specify the type of container runtime k8s will use. If empty, it will default to ```docker(cri-dockerd)``` | For **cri-dockerd** write ```docker``` , \u003cbr /\u003e for **containerd** write ```containerd``` as the parameter for this option. |\n| ```-h / --help``` |  | Display all options and their respective descriptions. |  |\n| ```-i / --ip``` | Master's (Host) IP | Declare IP for master node (e.g, 10.0.0.1). \u003cbr /\u003e In case of deploying k8s in a cloud (e.g, aws, gcp …) declare an IP with the scope of a private IP, not the public IP. |  |\n| ```-kv / --k8sversion``` |  | Displays all versions of k8s this bootstrap can install |  |\n| ```-m / --master``` |  | Use this option to install a master ```-m```  | The flag ```-i/--ip``` is a must if this option is utilized. |\n| ```-ms / --metricserver``` |  | To install the metrics-server for Kubernetes, use the `-ms` flag.  | It can only be installed when configuring a master node, so the `-m/--master` flag is also required. |\n| ```-p / --password``` | Master(Host) node password | Required for ssh login using a password. \u003cbr /\u003e It is done so the worker node can access the master during installation to obtain the join token. Both master and worker must be in the same subnet.  | The flag ```-u/--username``` is a must if this option is utilized. |\n| ```-r / --regularuser``` \u003cbr /\u003e **(\\*beta)** | HOME_PATH of regular user | This bootstrap is executed with sudo permission, thus this option is used to allow regular users (such as the user `ubuntu` in ubuntu servers) to also use k8s. \u003cbr /\u003e run this option as ```-r /home/username```. Crucial that HOME_PATH is the same as **the regular user's home directory($HOME)** | Not a must option. Utilized when initializing a master node with ```-m```. |\n| ```-u / --username``` | Master(Host) node username | ```username``` for ssh login. \u003cbr /\u003e Set so a newly created worker node within the same subnet as the master node can fetch the join token from the master node.  | The floag ```-p/--password``` is a must if this option is utilized.  |\n| ```-v / --version``` | k8s version | Declare k8s version to install. \u003cbr /\u003e Supports k8s version from ```1.24.15``` to ```1.31.2``` and more details can be checked using the ```-kv``` or ```--k8sversion``` option. | The parameters for this options are to be written as ```x.y.z```. \u003cbr /\u003e Not using this option will default k8s version to ```1.24.15``` and does not support RC nor beta versions since they are not stable versions. |\n| ```-w / --worker``` |  | Used to specify worker node installation. | the following 3 options are required: ```-i/--ip``` , ```-u/--username```, ```-p/-password```. |\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\nExecuting this bootstrap with **no** options will only install the packages for k8s (no auto deployment)\n\nIn the case that only the packages are install, you can still use the ```kubeadm init``` command to manually deploy nodes.\n\nexample for installing k8s and deploying a **master** node:\n\n```bash\nsudo ./k8s-cluster-bootstrap.sh -m -c 192.168.0.0/16 -i 10.0.0.1 -ct containerd -v 1.25.0\n```\n\u003cbr /\u003e   \n\nexample for installing k8s and deploying a **worker** node:\n\n```bash\nsudo ./k8s-cluster-bootstrap.sh -w -i 10.0.0.1 -u username -p pwd123! -ct containerd -v 1.25.0\n```\n\n\u003cbr /\u003e\n\n## Contribution guidelines\n**If you want to contribute to this Repo, be sure to review the\n[contribution guidelines](.github/CONTRIBUTING.md).**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdgyun%2Fk8s-cluster-bootstrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdgyun%2Fk8s-cluster-bootstrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdgyun%2Fk8s-cluster-bootstrap/lists"}