【云原生-K8s】kubeadm搭建安装k8s集群v1.25版本完整教程【docker、网络插件calico、中间层cri-docker】

前言

基础描述

  • 从 k8s 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为k8s的容器运行时了,即从k8s v1.24开始不再使用docker了
  • 但是如果想继续使用docker的话,可以在kubelet和docker之间加上一个中间层cri-docker。cri-docker是一个支持CRI标准的shim(垫片)。一头通过CRI跟kubelet交互,另一头跟docker api交互,从而间接的实现了kubernetes以docker作为容器运行时。但是这种架构缺点也很明显,调用链更长,效率更低。
  • 本文采用了cri-docker的使用,但是更推荐使用containerd作为k8s的容器运行时
  • 其实本来我也准备采用containerd作为容器运行时的,怎奈技术和时间有限,且最新版本网上资料比较少,核心目的还是为了考cka证书,想快速构建起集群

其他

  • 为了搭建次教程虚拟机已经重装系统三次啦,含泪整理出此教程,请各位小伙伴仔细小心的阅读,按照此教程的顺序一步步搭建肯定是能成功的,后面教程也会有遇到的问题处理
  • 期间会用到如calico插件及其他需要的安装包,博主也会上传镜像包供大家下载,所有大家不慌不忙,仔细阅读争取一次就能搭建成功。
  • 教程如果没有特殊说明的命令和操作, 默认所有机器都需要执行

机器环境

在这里插入图片描述

基础环境

hostname设置

  • 把每一台虚拟机或者云服务器进行hostname设置,方便查看【master、node节点】
  • 不同节点设置不同的hostname
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node-1
hostnamectl set-hostname k8s-node-2
  • 所有节点,包括master节点,修改/etc/hosts文件,在最后加入如下你的集群IP信息,内网外网都行,只要能够互相ping通
vi /etc/hosts

172.24.214.110 k8s-master
172.24.214.108 k8s-node-1
172.24.214.109 k8s-node-2

yum更新

  • 更新为最新的内核版本,更新lrzsz方便后面上传镜像包
yum install update
yum install lrzsz
yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

docker安装

脚本安装【推荐】

  • 直接在linux上面执行该命令,选择了脚本安装docker,下面的命令安装无需执行
wget -O docker.sh https://files.rundreams.net/sh/docker.sh && sh docker.sh

命令安装

  • 设置repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 设置国内镜像并重启 daemon
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://j16wttpi.mirror.aliyuncs.com"]
}
EOF
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
  • 进行安装命令,并设置docker自动重启
yum install -y docker-ce
systemctl start docker
systemctl enable
03-10
### Kubernetes (k8s) 入门指南 Kubernetes 是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。对于初学者而言,理解其基本概念以及如何设置环境至关重要。 #### 安装配置指南 为了顺利安装配置 Kubernetes,建议遵循官方文档或者经过验证的学习资料来操作。例如,《Kubernetes 权威指南》提供了详细的安装配置说明[^1]。该书不仅涵盖了从 DockerKubernetes 实践所需的全部知识点,还特别针对不同操作系统给出了具体的安装步骤和技术细节。 #### Pod 和 Service 掌握要点 Pod 是 Kubernetes 中最小可部署单元,通常由一个或多个紧密关联的容器组成。而 Service 提供了一种定义服务的方式,使得应用可以被其他组件发现并访问。深入了解这两者的工作原理有助于更好地设计微服务体系结构。 #### 核心组件解析 熟悉 Master 节点上的 API Server、Controller Manager 及 Scheduler 组件的作用及其相互协作方式;另外 Worker Node 上 Kubelet 和 Kube-proxy 的职责也不容忽视。这些构成了整个系统的控制平面与数据平面之间的桥梁。 #### 网络方案选择 当构建生产级别的 k8s 集群时,合理的网络规划必不可少。目前主流的选择有 Flannel 和 Calico 这两种 CNI 插件实现 pod 间通信的功能,在实际应用场景下各有优劣需根据具体需求权衡选用[^2]。 #### 故障排查技巧 面对复杂多变的问题场景,掌握有效的 troubleshooting 方法尤为重要。《Trouble Shooting 指导》章节总结了一些常见的错误现象及对应的处理措施,帮助运维人员快速定位问题根源并加以修复。 ```bash kubectl get pods --all-namespaces kubectl describe pod <pod-name> kubectl logs <pod-name> -c <container-name> ``` 以上命令可用于获取集群状态概览、查看特定 Pod 的详细信息以及读取日志文件等内容辅助诊断工作。
评论 173
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rundreamsFly

达者不再兼济天下,却怪穷者独善

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值