
!https://raw.githubusercontent.com/kubernetes-sigs/kubespray/master/docs/img/kubernetes-logo.png
Kubespray是一个基于Ansible的工具,用于在多种环境中部署生产级别的Kubernetes集群。它提供了灵活的配置选项,支持高可用架构,并兼容主流云平台和裸金属服务器,帮助用户快速搭建稳定、可扩展的Kubernetes集群。
若有疑问,请查阅官方文档或加入Kubernetes Slack的**#kubespray**频道(可通过此链接获取邀请)。
适用于需要在各类环境(云平台、裸金属)部署Kubernetes集群的场景,包括:
Ansible部署
使用步骤
bash# 从requirements.txt安装依赖 sudo pip install -r requirements.txt # 将inventory/sample复制为inventory/mycluster cp -rfp inventory/sample inventory/mycluster # 使用inventory构建器更新Ansible inventory文件 declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) CONFIG_FILE=inventory/mycluster/hosts.yml python3 contrib/inventory_builder/inventory.py ${IPS[@]} # 查看并修改inventory/mycluster/group_vars下的参数 cat inventory/mycluster/group_vars/all/all.yml cat inventory/mycluster/group_vars/k8s-cluster/k8s-cluster.yml # 使用Ansible Playbook部署Kubespray(以root用户运行) # 必须使用--become选项,因为需要写入SSL密钥到/etc/、安装软件包及与systemd守护进程交互 # 不使用--become会导致Playbook执行失败! ansible-playbook -i inventory/mycluster/hosts.yml --become --become-user=root cluster.yml
注意:若控制机已通过系统包安装Ansible,通过sudo pip install -r requirements.txt安装的其他Python包可能位于与Ansible不同的目录树(例如Ubuntu上的/usr/local/lib/python2.7/dist-packages与/usr/lib/python2.7/dist-packages/ansible)。这可能导致ansible-playbook命令失败并显示:
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
通常指向依赖requirements.txt中模块的任务(如"unseal vault")。
解决方法之一是卸载系统Ansible包并通过pip安装,但并非总是可行。另一种解决方法是在执行ansible-playbook前,设置ANSIBLE_LIBRARY和ANSIBLE_MODULE_UTILS环境变量,分别指向pip包安装位置的ansible/modules和ansible/module_utils子目录(可通过pip show [package]的Location字段获取)。
Vagrant部署
Vagrant部署需安装用于配置任务的Python依赖。
检查Python和pip是否安装:
bashpython -V && pip -V
若返回版本信息,则继续;否则从Python官网下载安装。
安装必要依赖:
bashsudo pip install -r requirements.txt vagrant up
注意:不支持基于Upstart/SysV init的操作系统。
注:已验证的https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.13.md%E6%9B%B4%E6%96%B0%E4%B8%BA1.11.1%E3%80%811.12.1%E3%80%811.13.1%E3%80%8117.03%E3%80%8117.06%E3%80%8117.09%E3%80%8118.06%E3%80%82kubeadm%E7%8E%B0%E5%9C%A8%E5%8F%AF%E6%AD%A3%E7%A1%AE%E8%AF%86%E5%88%ABDocker 18.09.0及更高版本,但仍将18.06视为默认支持版本。kubelet可能因Docker非标准版本号(不再使用语义化版本)而出现问题。为确保自动更新不会破坏集群,建议使用yum versionlock插件或apt pin等工具。
ansible_become标志或命令参数--become/-b以下为Kubespray保障的安全限制,实际工作负载需求可能不同。有关规模调整指南,请参阅构建大型集群。
可选择10种网络插件(默认:calico,Vagrant默认使用flannel)。通过变量kube_network_plugin定义选择,也可选择利用云提供商内置网络。另请参见网络检查器。
weave故障排除文档)赞助,详情参见测试矩阵。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务