按说,使用kubeadm搭建k8s集群最权威的方法、步骤,应该是直接参考kubeadm官网,里边描述了从OS基础配置到containerd,再到kubeadm安装、init&join的全过程。
只是,kubernetes的官网对整个过程的描述并不是一种step by step的方式,而是把相关的步骤分散于各个富含上下文知识的页面中,它在描述操作方法的同时,讲了很多原理、注意事项及异常处理之类的内容。
如果我们想弄清楚整个过程的操作步骤,需要不断地在各个网页中穿梭,浏览遍历。我们在顺利完成环境搭建的的同时,也知道了它的许多运维技巧和运行原理。
对学习来说,这可能是正统的方式,因为这样可以让我们深谙操作步骤的原理,具备基本异常排错的能力。
而本文描述的过程可能更符合我们日常工作中那种快餐式的方式:“别扯太多,别扯周边,直接告诉我一步一步的命令。”,这样导致的问题就是,一、步骤不一定通用,二、出了问题容易让自己抓瞎。
本文也算是记录了自己一次kubeadm搭建k8s集群的过程,有些坎坷,所以也才有点收获。
总体步骤可以概括为以下几个阶段。
- 准备机器
- 配置操作系统
- 安装基础依赖
- 安装containerd & cni
- 内核模块设置
- 搭建k8s
- 安装kubeadm及其他组件
- 执行kubeadm init
- 运行kubeadm join
- 其他相关命令
- 关键配置文件
注意:
- 所有操作都在ubuntu22.04下用root完成。
- 下文涉及到的版本均经过验证,且针对k8s v1.27.2。
- 下文仅涉及操作步骤,至于概念和原理不过多涉及。
- 鉴于国内网络情况(github、k8s.io),可以提前一并下载好(通过代理的方式,maybe),再做剩余操作。
1. 准备机器
1) 配置操作系统
首先,我们需要确保ubuntu 22.04上配置的/etc/apt/sources.list是否可用。执行 apt update 时没有报错即可。
如果报错
E: The repository 'http://nova.clouds.archive.ubuntu.com/ubuntu focal Release' does not have a Release file
则,我们需要调整下/etc/apt/sources.list中的源。
其实,sources.list文件中列的http://nova.clouds.archive.ubuntu.com/ubuntu都是可以访问的,如果不能访问,说明国内访问这些源不可达,直接换源:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com