使用 Kubespray 在 Ubuntu 20.04 上部署 Kubernetes 集群

共计 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 源码:

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

参考资料

注意事项

  1. 部署前请确保所有节点时间同步
  2. 建议使用国内镜像源加速下载
  3. 部署过程中请确保网络稳定
  4. 建议在测试环境验证配置后再在生产环境部署
正文完
 0
评论(没有评论)