{"id":19580772,"url":"https://github.com/warriorbrian/deploy-k8s","last_synced_at":"2025-07-16T15:35:56.913Z","repository":{"id":42650418,"uuid":"271457052","full_name":"warriorBrian/deploy-k8s","owner":"warriorBrian","description":"simpler deployment of kubernetes!","archived":false,"fork":false,"pushed_at":"2023-02-07T23:42:46.000Z","size":64587,"stargazers_count":21,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-04-27T08:37:19.913Z","etag":null,"topics":["docker","fabric","kubernetes","paramiko","python","python3","shell","shell-script"],"latest_commit_sha":null,"homepage":"","language":"Python","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/warriorBrian.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":"2020-06-11T05:11:09.000Z","updated_at":"2025-02-05T07:43:19.000Z","dependencies_parsed_at":"2024-11-11T07:40:09.038Z","dependency_job_id":null,"html_url":"https://github.com/warriorBrian/deploy-k8s","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/warriorBrian/deploy-k8s","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warriorBrian%2Fdeploy-k8s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warriorBrian%2Fdeploy-k8s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warriorBrian%2Fdeploy-k8s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warriorBrian%2Fdeploy-k8s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/warriorBrian","download_url":"https://codeload.github.com/warriorBrian/deploy-k8s/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warriorBrian%2Fdeploy-k8s/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265521645,"owners_count":23781545,"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":["docker","fabric","kubernetes","paramiko","python","python3","shell","shell-script"],"created_at":"2024-11-11T07:29:35.789Z","updated_at":"2025-07-16T15:35:53.080Z","avatar_url":"https://github.com/warriorBrian.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## deploy kubernetes\n\n![MIT](https://img.shields.io/badge/license-MIT-blue.svg)\n![macOS](https://img.shields.io/badge/macOS-passing-green)\n![build](https://img.shields.io/badge/build-passing-green)\n![python](https://img.shields.io/badge/python-3.7-blue)\n![fabric](https://img.shields.io/badge/fabric-1.14-blue)\n\n![#67C23A](https://placehold.it/15/67C23A/000000?text=+) Stability: 2 - **stable**\n\n\u003e kubernetes 1.18部署脚本，让部署变的更简单!\n\n\u003e 只需本地或非部署节点配置所需环境，无需将脚本上传，则可以向远程主机进行部署!\n\n## 环境\n\n\u003e python \u003e= 3.7\n\n\u003e Fabric3 == 1.14\n\n\u003e paramiko==2.7.1\n\n\u003e centos7/Debian\n\n## 构建与运行 :rocket:\n\n```bash\npip3 install\n```\n\n安装依赖项，运行:\n\n```bash\npython3 deploy.py\n```\n\n## 开始使用 :tada:\n\n### 配置config.json:\n\n\u003e 配置项分为master, node两种角色\n\nExample:\n\n```json\n{\n      \"host\": \"192.168.1.29\",\n      \"password\": \"1\",\n      \"hostname\": \"k8s-master\",\n      \"user\": \"root\",\n      \"port\": 22\n}\n```\n* host: 服务器IP地址\n* password: 服务器密码\n* hostname: **不可省略，不允许重复**\n* user: SSH链接用户名\n* port: SSH端口\n\n:warning: 目前只支持单master进行部署(暂不支持多个master进行部署)，node角色中可为多个主机。\nmaster唯一，只能存在一个，node存在若干个，判定方式为master必须存在，假设只存在一个master为单节点部署，如果存在node就为集群模式\n\n### 配置address.json:\n\nExample:\n\n**`address.json`中的内容可为空，推荐搭建内网资源服务器，进行下载**\n判断假设`address.json`中内容存在，则会覆盖默认下载地址。(如何搭建内网资源服务器，见下文)\n\n```json\n{\n  \"kubernetes_address\": \"\",\n  \"cni_address\": \"\",\n  \"flannel_address\": \"\",\n  \"etcd_address\": \"\"\n}\n```\n\n### 开始部署:\n\n确认`config.json`及`address.json`配置完毕，进行部署:\n\n```bash\npython3 deploy.py\n```\n\n## 目录结构\n\n```\n├── backup/                             备份文件目录\n├── Controller/                         装饰器封装目录\n│   ├── __init__.py\n│   └── FabricController.py             装饰器及库引用\n├── lib/                                模块化部署脚本目录\n│   ├── ...\n│   └── common.py                       公共引用文件\n├── tmp/                                脚本生成临时文件目录\n│   ├── hash/                           部署步骤，回滚记录(回滚对应步骤删除对应md5)\n│   ├── shell/                          脚本自动生成临时sh文件及其他配置文件\n│   └── logs/                           日志，记录执行步骤\n├── tools/                              \n│   ├── apiServer/                      部署kube-apiserver目录\n│   │   ├── template/                   模板文件目录\n│   │   ├── create_bin.sh               完成解压及基本工作\n│   │   ├── create_service.sh           创建service脚本\n│   │   └── create_token.sh             创建token脚本\n│   ├── bin/                            cfssl证书生成工具等\n│   ├── controller-manager/             部署kube-controller-manager目录\n│   │   └── ...\n│   ├── env/                            前置的环境准备脚本目录\n│   ├── docker/                         部署docker目录\n│   ├── etcd/                           部署etcd目录\n│   ├── flanneld/                       部署flannel目录\n│   ├── kube-proxy/                     部署kube-proxy目录\n│   ├── kubelet/                        部署kubelet目录\n│   └──  scheduler/                     部署kube-scheduler目录\n├── address.json                        配置所需安装包下载地址\n├── config.json                         配置kubernetes基本部署信息\n├── deploy.py                           主入口，部署任务脚本\n├── log.py                              生成日志脚本\n└── requirements.txt                    依赖文件  \n```\n\n## 说明 :fire:\n\n\u003e 关于`tmp/hash`目录\n\n在`tmp/logs`目录下，生成日志文件，按日期生成当进行部署时，会自动生成log记录:\n\nExample:\n\n```bash\n2020-06-23 22:12:46,504 [INFO]- md5: 2d33ac1ea4571b6aa0cfb14746a8bbc1, Re-execute, delete this md5, dir: /hash\n```\n\n这个`md5`值会以目录形式在`tmp/hash`目录中创建，这是可靠的。(如果创建设备文件，在mac book上存在权限禁止创建问题)\n\n当执行完某步骤，则下次以**同主机，同方法为判断依据，则不会执行，跳过该步骤。**\n\n如果删除对应某个`md5`，则再次执行会执行对应步骤。\n\n\u003e 关于`hostname`设置\n\n这是至关重要的，在部署kubernetes集群中，hostname应该是唯一的。\n\n## 常见问题\n\n\u003e Q: 该如何搭建nginx资源服务器为k8s提供下载服务?\n\n在服务器中安装`nginx`:\n\n```bash\nserver {\n listen 8090;       # 监听端口\n server_name _;\n location / {\n   root /data/k8s;  # 配置安装包目录地址\n   index index.html index.htm;\n   autoindex on;    # 开启目录浏览功能\n }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarriorbrian%2Fdeploy-k8s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwarriorbrian%2Fdeploy-k8s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarriorbrian%2Fdeploy-k8s/lists"}