基于containerd的k8s部署
时间: 2025-01-18 16:01:18 浏览: 34
### 基于 Containerd 的 Kubernetes (k8s) 部署教程和配置指南
#### 安装前的准备工作
为了确保顺利部署基于Containerd的Kubernetes集群,需先完成一系列的基础环境设置。这包括但不限于修改主机名、配置`/etc/hosts`文件以及关闭SWAP分区[^5]。
```bash
hostnamectl set-hostname <主机名>
echo "172.19.0.2 master01" >> /etc/hosts
echo "172.19.0.16 node01" >> /etc/hosts
swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
```
#### 安装必要的依赖项和服务
对于CentOS系统而言,在所有节点上都需要执行如下操作来安装并启用所需的工具和服务:
- 创建用于加载必要内核模块的配置文件,并使之立即生效;
- 设置允许IPv4转发及桥接流量过滤的相关参数;
- 加载IPVS所需的支持性内核模块;
- 确认SELinux处于宽容模式或完全禁用状态;最后,
- 利用YUM源安装最新版本的`containerd`及其配套组件如CNI插件等[^4]。
```bash
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
modprobe overlay br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y containerd.io cni-plugins-linux-amd64-*
mkdir -p /etc/containerd/
containerd config default > /etc/containerd/config.toml
systemctl restart containerd
```
#### 安装 Kubeadm, Kubelet 和 Kubectl
接下来就是安装Kubernetes的核心组件——即所谓的“三剑客”。根据不同的操作系统发行版可以选择合适的包管理器来进行安装。例如,在Ubuntu环境下可以采用APT方式[^1],而在RHEL/CentOS系列则推荐通过YUM仓库获取官方发布的稳定版本[^3]。
```bash
# Ubuntu下使用apt-get
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg2 software-properties-common
curl -fsSL https://packages.cloud.google.com/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://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
# CentOS/RHEL下使用yum
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
```
#### 初始化 Master 节点
当上述步骤完成后就可以开始初始化master节点了。此过程会自动生成证书和其他必需资源,并将其保存到指定路径中以便后续其他worker节点能够连接进来形成完整的cluster。
```bash
kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```
#### 添加 Worker 节点至 Cluster 中
一旦master端已经准备好,则可以通过之前输出的日志信息里提供的命令让各个workernode加入当前建立起来的Cluster当中去。
```bash
kubeadm join ...
```
阅读全文
相关推荐


















