
nenoteerawat/kubespray!Kubernetes Logo
Kubespray是一个基于Ansible的工具,用于在多种环境中部署生产级别的Kubernetes集群。它提供了灵活的配置选项,支持高可用架构,并兼容主流云平台和裸金属服务器,帮助用户快速搭建稳定、可扩展的Kubernetes集群。
若有疑问,请查阅官方文档或加入Kubernetes Slack的**#kubespray**频道(可通过此链接获取邀请)。
适用于需要在各类环境(云平台、裸金属)部署Kubernetes集群的场景,包括:
使用步骤
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部署需安装用于配置任务的Python依赖。
检查Python和pip是否安装:
bashpython -V && pip -V
若返回版本信息,则继续;否则从Python官网下载安装。
安装必要依赖:
bashsudo pip install -r requirements.txt vagrant up
注意:不支持基于Upstart/SysV init的操作系统。
注:已验证的Docker版本更新为1.11.1、1.12.1、1.13.1、17.03、17.06、17.09、18.06。kubeadm现在可正确识别Docker 18.09.0及更高版本,但仍将18.06视为默认支持版本。kubelet可能因Docker非标准版本号(不再使用语义化版本)而出现问题。为确保自动更新不会破坏集群,建议使用yum versionlock插件或apt pin等工具。
ansible_become标志或命令参数--become/-b以下为Kubespray保障的安全限制,实际工作负载需求可能不同。有关规模调整指南,请参阅构建大型集群。
可选择10种网络插件(默认:calico,Vagrant默认使用flannel)。通过变量kube_network_plugin定义选择,也可选择利用云提供商内置网络。另请参见网络检查器。
weave故障排除文档)赞助,详情参见测试矩阵。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务