教程中使用的软硬件配置如下:
我的计划是搭建一个树莓派的小集群,通过动手搭建的方式学习k8s技术,尽管可以用虚拟机模拟多台电脑,但还是希望有实际硬件的操作经验,也感觉这样更酷一点哈哈哈。
网上有很多教程,但我之所以写下自己的经验,是因为我所看到的教程都是教学版本较低的k8s安装过程,而随着k8s和docker脱钩,很多安装步骤并不再是必须的,可以更简化一些。
在选择k8s的时候,除了kubernetes,还有microk8s,k3s等选项,都能够提供k8s的功能,但是很多都简化了安装流程,把复杂的工程部分掩盖了,这对于深入学习和理解kubernetes是不利的,好比傻瓜相机学习摄影技术(曝光度、光圈等等)。因此我在学习的过程中,选择了最原始的kubernetes。
以下环节本人亲测有效(截止到写博客的日期为止),非科班出身,出于个人兴趣开始学习k8s和container技术,绕了不少弯路,经过2天的钻研才搞明白,希望对学习k8s的人有帮助,如有不准确的地方,欢迎指出!
注:每个章节的开头列了一些概念和经验总结,不阅读也不影响操作,可直接跳过。
安装docker-ce
# 安装一些系统工具
sudo apt update
sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
# 安装证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 写入软件源信息
echo "deb [signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
# 更新并安装Docker-CE
sudo apt update
sudo apt -y install docker-ce
配置docker守护程序
cat <
重启docker
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
修改配置文件
# 修改配置文件
cat <
让iptables能够查看桥接流量(这里我不太明白原理,完全是搬运其他教程,如果能帮我指点迷津将感激不尽)
# 设置iptables设置,使其能够看到桥接流量
cat <
重启containerd
sudo systemctl restart containerd
sudo systemctl enable containerd
关闭swap
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a
安装kubernetes,从国内的路径下载安装包
# 获取证书
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes.gpg
# 写入软件源列表
echo "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
# 安装
sudo apt update
sudo apt install -y kubelet=1.26.3-00 kubeadm=1.26.3-00 kubectl=1.26.3-00
# 这一行可以不运行,只是为了避免未来无意中更新而导致k8s出问题才阻止检查更新的
sudo apt-mark hold kubelet kubeadm kubectl
拉取k8s需要的镜像文件,传入的参数就是镜像路径
sudo kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers
检查一下拉下来的pause镜像的版本,确保和 /etc/containerd/config.toml 里面sandbox_image的版本一致,这里使用的3.9。
启动k8s
sudo kubeadm init --image-repository=registry.aliyuncs.com/google_containers
如果按照以上步骤操作,应该是没有问题的,看到红线部分就说明已经成功跑起来啦!!
下一步就是把node加入到master,然后部署任务等等,这部分我还没有研究,但是近期打算继续钻研,并且总结一下使用经验。启动命令中可以加入很多参数,这里为了简化流程,我没有做过多的说明和记录,自己也不太明白背后的原理和作用,以后深入了解后打算再做补充,能先把k8s跑起来,就是迈出了第一步。
感谢阅读,有建议或者问题请多多留言,希望能和大家一起进步!