Ubuntu 20.04 部署K8S
时间: 2025-04-01 22:26:27 浏览: 43
### 在 Ubuntu 20.04 上部署 Kubernetes 的方法
在 Ubuntu 20.04 系统上部署 Kubernetes 可以通过 `kubeadm` 工具完成。以下是详细的说明:
#### 准备工作
确保目标机器满足 Kubernetes 官方推荐的最低硬件配置要求[^3],即至少拥有 2 CPU 和 2GB RAM。
---
#### 步骤一:更新系统并安装依赖项
运行以下命令来更新系统的软件包列表,并安装必要的工具:
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget net-tools vim git iptables conntrack
```
---
#### 正确设置交换分区
为了防止 kubelet 报错,建议关闭 swap 功能:
```bash
sudo swapoff -a
```
如果需要永久禁用 swap,在 `/etc/fstab` 文件中注释掉相关条目。
---
#### 步骤二:添加 Kubernetes 软件仓库
执行以下操作以启用 HTTPS 传输协议和支持 GPG 验证:
```bash
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
```
---
#### 步骤三:安装 Kubernetes 组件
更新本地缓存后,指定版本号安装所需的组件(例如 K8S 版本为 1.24.12):
```bash
sudo apt update
sudo apt-mark hold kubelet kubeadm kubectl
sudo apt install -y kubelet=1.24.12-00 kubeadm=1.24.12-00 kubectl=1.24.12-00
```
注意:上述命令中的版本号应根据实际需求调整[^2]。
---
#### 步骤四:初始化 Master 节点
使用 `kubeadm init` 命令初始化集群。可以通过参数自定义 Pod 子网范围(如 Calico 使用的 CIDR),例如:
```bash
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
```
此过程会生成一个加入令牌,用于后续 Worker 节点接入。
完成后,复制粘贴终端提示的相关指令以配置 kubeconfig 文件访问权限:
```bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
---
#### 步骤五:部署 CNI 插件
Calico 是一种流行的网络插件,适用于当前环境下的 Kubernetes 版本(v1.24.x)。下载其 YAML 文件并应用到集群中:
```bash
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/tigera-operator.yaml
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/custom-resources.yaml
```
这里使用的 Calico 版本 v3.25 支持 Kubernetes v1.23 至 v1.26[^1]。
等待几分钟直到所有 Pods 进入 Running 状态:
```bash
kubectl get pods -n kube-system
```
---
#### 步骤六:加入 Worker 节点
在每台 Worker 节点服务器上重复前面提到的操作(步骤一至三),随后运行由 Master 初始化阶段产生的 join 命令。例如:
```bash
sudo kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
```
验证整个集群状态是否正常运作:
```bash
kubectl get nodes
```
---
### 总结
以上流程涵盖了从基础准备到最终组建功能完备的单 Master Kubernetes 集群的过程。具体实现细节可根据项目实际情况灵活调整。
阅读全文
相关推荐


















