共计 1897 个字符,预计需要花费 5 分钟才能阅读完成。
简介
本文档详细介绍如何使用 Kubespray 在 Ubuntu 20.04 系统上部署 Kubernetes 集群。Kubespray 是一个基于 Ansible 的工具,可以帮助我们自动化部署生产就绪的 Kubernetes 集群。
环境要求
- 操作系统: Ubuntu 20.04
- Python 版本: 3.10
- 节点配置:
- CPU: 2核及以上
- 内存: 4GB及以上
- 磁盘空间: 20GB及以上
- 网络要求:
- 节点间网络互通
- 可访问外网(用于下载所需软件包)
部署步骤
1. 安装 Python 3.10
add-apt-repository ppa:deadsnakes/ppa
apt update
apt install python3.10 python3.10-venv python3.10-dev
2. 下载 Kubespray
从 GitHub 下载 Kubespray 源码:
- 下载地址: https://github.com/kubernetes-sigs/kubespray/releases
- 下载后解压到本地目录
3. 安装依赖
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
4. 修改配置文件
需要修改以下关键配置文件:
all.yml
主要配置 NTP 服务器:
# NTP Settings
ntp_enabled: true
ntp_manage_config: true
ntp_servers:
- "ntp.aliyun.com iburst"
- "ntp1.aliyun.com iburst"
- "ntp2.aliyun.com iburst"
- "ntp3.aliyun.com iburst"
unsafe_show_logs: true
allow_unsupported_distribution_setup: false
containerd.yml
配置容器运行时存储目录:
containerd_storage_dir: "/data/containerd"
k8s-cluster.yml
配置 Kubernetes 集群参数:
kube_version: v1.27.14
kube_network_plugin: flannel
kube_network_plugin_multus: false
kube_service_addresses: 10.96.0.0/12
kube_pods_subnet: 10.244.0.0/16
container_manager: containerd
kubernetes_audit: true
auto_renew_certificates: true
inventory.ini
配置节点信息:
[all]
master ansible_host=10.0.2.101
node1 ansible_host=10.0.2.102
node2 ansible_host=10.0.2.103
[kube_control_plane]
master
[etcd]
master
[kube_node]
node1
node2
[k8s_cluster:children]
kube_control_plane
kube_node
5. 部署操作
5.1 配置 SSH 免密登录
使用以下脚本批量配置 SSH 密钥:
#!/bin/bash
PASSWORD="xxx"
servers=(
"172.16.68.108"
"172.16.68.109"
"172.16.68.110"
)
if [ ! -f ~/.ssh/id_rsa.pub ]; then
ssh-keygen -t rsa -b 2048 -N "" -f ~/.ssh/id_rsa
fi
for server in "${servers[@]}"; do
echo "Copying SSH key to $server"
sshpass -p $PASSWORD ssh-copy-id -o StrictHostKeyChecking=no $USER@$server
done
5.2 初始化集群
ansible-playbook -i inventory/sample/inventory.ini --user=root -b -v cluster.yml
5.3 卸载集群
如需卸载集群,执行:
ansible-playbook -i inventory/sample/inventory.ini --user=root -b -v reset.yml
参考资料
注意事项
- 部署前请确保所有节点时间同步
- 建议使用国内镜像源加速下载
- 部署过程中请确保网络稳定
- 建议在测试环境验证配置后再在生产环境部署
正文完