K8s安装部署(v1.28)--超详细(cri-docker作为运行时)

1、准备环境

ip 角色 系统 主机名 cpu mem
192.168.40.129 master centos7.9 k8smaster 4 8
192.168.40.130 node1 centos7.9 k8snode1 4 8
19
<think>好的,我现在需要帮助用户在Linux系统上安装KubernetesDocker,特别是为Kubernetes配置Docker。用户之前提到在k8s-master节点安装Docker遇到元数据下载失败的问题,现在需要更全面的安装和配置指南。 首先,我需要回顾之前的对话。用户上次的问题是关于解决Docker安装的元数据下载失败,我给出了检查仓库配置、清理缓存、处理依赖冲突等步骤。现在用户的需求扩展到了安装KubernetesDocker的整体流程,并且要确保两者兼容。同,用户提供了站内引用,其中提到了Docker常用命令和KubernetesDocker的关系,特别是Kubernetes不以Docker为核心依赖,但Docker作为容器运行的一个选项。 接下来,我需要结合这些引用来构建回答。根据引用[1],用户可能需要了解Docker的基本操作,但当前问题更关注安装和配置。引用[2]指出Kubernetes设计上不依赖Docker,但Docker仍是可选运行。因此,在安装过程中需要注意版本兼容性和配置,尤其是cgroup驱动,这点在之前的回答中也提到过。 用户现在的问题是如何在Linux系统中为k8s安装和配置Docker。我需要分步骤说明安装过程,包括系统准备、安装Docker、配置Docker以适配Kubernetes、验证安装以及可能的问题处理。同,要参考之前的解决方案,比如仓库配置、依赖冲突处理等,确保Docker正确安装后能与Kubernetes协同工作。 需要注意的要点包括: 1. 系统要求:确保Linux版本符合KubernetesDocker的要求。 2. 安装Docker:使用正确的仓库源,处理可能的依赖问题。 3. 配置Docker:尤其是cgroup驱动改为systemd,这是Kubernetes推荐的做法。 4. 安装Kubernetes组件:kubeadm、kubelet、kubectl,并初始化集群。 5. 验证集群状态,确保Docker容器运行被正确识别。 6. 故障排查:参考之前提到的元数据下载问题,以及网络配置等。 另外,用户可能需要知道如何验证DockerKubernetes的兼容性,以及如何处理常见问题,比如镜像拉取失败、cgroup驱动不匹配等。需要确保步骤清晰,命令准确,并且给出相关问题的提示,例如cgroup配置错误可能导致kubelet服务无法启动。 最后,根据用户之前的问题,生成的相关问题应该围绕安装后的配置、兼容性检查以及优化措施,比如如何验证Docker配置是否正确,如何处理网络插件问题等。</think>#### 分步安装与配置指南(以CentOS 8/9为例) --- ### 一、系统准备 1. **关闭Swap与防火墙** ```bash sudo swapoff -a && sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用swap sudo systemctl stop firewalld && sudo systemctl disable firewalld # 关闭防火墙 ``` 2. **设置容器运行预检参数** ```bash cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay && sudo modprobe br_netfilter ``` --- ### 二、Docker安装与配置 #### 1. 安装Docker(适配Kubernetes版本) ```bash # 配置阿里云镜像源(避免元数据错误) sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装指定版本(需匹配k8s兼容版本) sudo yum install -y docker-ce-20.10.23 docker-ce-cli-20.10.23 containerd.io ``` #### 2. **关键配置修改** ```bash # 配置cgroup驱动为systemd(必须与kubelet一致) sudo mkdir -p /etc/docker cat <<EOF | sudo tee /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"] } EOF ``` #### 3. 启动服务 ```bash sudo systemctl enable docker && sudo systemctl start docker ``` --- ### 三、Kubernetes组件安装 #### 1. 配置k8s仓库 ```bash cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 EOF ``` #### 2. 安装三件套 ```bash sudo yum install -y kubelet-1.28.4 kubeadm-1.28.4 kubectl-1.28.4 --disableexcludes=kubernetes ``` #### 3. 初始化Master节点 ```bash sudo kubeadm init \ --image-repository registry.aliyuncs.com/google_containers \ --pod-network-cidr=10.244.0.0/16 \ --cri-socket unix:///var/run/containerd/containerd.sock # 显式指定容器运行接口 ``` --- ### 四、验证安装 1. **检查Docker运行状态** ```bash docker info | grep -i cgroup # 应显示"systemd" kubectl get nodes -o wide # 检查节点状态是否Ready ``` 2. **查看容器运行** ```bash kubectl get nodes -o jsonpath='{.items[*].status.nodeInfo.containerRuntimeVersion}' # 应显示:"docker://20.10.23" ``` --- ### 五、故障排查(重点场景) 1. **cgroup驱动不匹配** **现象**:kubelet日志报错`detected cgroupfs as the Docker cgroup driver` **解决**: - 修改`/etc/docker/daemon.json`后重启docker - 删除`/var/lib/kubelet`并重启kubelet 2. **镜像拉取失败** ```bash # 手动拉取核心镜像 kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers ``` --- ### 附加配置建议 1. **容器运行切换准备** 若未来需切换containerd: ```bash sudo rm /etc/containerd/config.toml sudo systemctl restart containerd ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值