k8s版本列表(k8s稳定版本)

k8s版本列表(k8s稳定版本)之前根据别人的文章创建了 k8s 虚拟机 鉴于我已经深爱直接下载虚拟机 按捺不住又想把完成品的虚拟机分享出来以供下载 虽然其实价值并不大 但 CentOS 标准版制成的虚拟机文件较大 因此我又重制了一份 minimal 版本的 并更新到了最新的 docker amp k8s 版本 也一并记录在此 一 版本 CentOS 7 9 2207 minimal 7z CentOS 停止维护了 7 9 在 2022 年更新的版本算是个不错的选择 docker ce 20 10 24 3 el7



之前根据别人的文章创建了k8s虚拟机,鉴于我已经深爱直接下载虚拟机,按捺不住又想把完成品的虚拟机分享出来以供下载(虽然其实价值并不大😓)。但CentOS标准版制成的虚拟机文件较大,因此我又重制了一份minimal版本的,并更新到了最新的docker&k8s版本,也一并记录在此。

一. 版本

CentOS-7.9-2207-minimal.7z:CentOS停止维护了,7.9在2022年更新的版本算是个不错的选择
docker-ce-20.10.24-3.el7: 2024年更新的20.10版本,算是比较新的稳定版
kubeadm-1.28.10 kubelet-1.28.10 kubectl-1.28.10:2024年维护中的k8s版本

二. 装系统

先在阿里云下载CentOS: https://mirrors.aliyun.com/centos-vault/7.9.2009/isos/x86_64/
CentOS版本选择

然后用 VMWare Player 17 (个人版)安装这个 minimal 版本:
用 VMWare Player 安装

结束安装并重启虚拟机后,配置网络如下:

网络配置

reboot后,下面的工作就可以ssh到虚拟机上操作了。

三. 配置系统

先安装一下 net-tools 和 wget:

安装net-tools

再配置一下习惯用法,比如 vim alias,上下键补全等:

.inputrc文件内容:
"e[A": history-search-backward
"e[B": history-search-forward

习惯用法

接下来是适配k8s的一些services:

配service

关闭swap:

关swap

k8s网桥配置:

kubernetes.conf文件内容:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

netfilter

安装ipvs

ipvs.modules文件内容
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

ipvs

四. 安装docker

docker选用10.20.24的最新版本

daemon.json文件内容
{
"registry-mirrors": ["https://【自己申请】.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
docker安装

五. 安装k8s

k8s选用了现在仍在维护的、更新了好几个小版本的1.28.10

kubernetes.repo文件内容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/
enabled=1
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/r...

注意:阿里云从k8s 1.28版本开始,切换了repo到kubernetes-new

sysconfig/kubelet文件内容
KUBELET_EXTRA_ARGS=
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

安装k8s

六. 创建k8s

kubeadm init 时出现了几次问题,大多与国内网络环境有关,具体解决方法看图:
6.1 container runtime is not running / unknown service runtime.v1.RuntimeService

runtime error

6.2 failed to pull and unpack image "registry.k8s.io/pause:3.6"

其中config.toml文件中的sandbox_image替换路径为:
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"

注:使用 pause:3.9 是 kubeadm init 时的提示
pause:3.6

6.3 拉取image失败,手动拉取如下:

拉取images失败

七. 安装flannel

由于网络原因,flanneld的image最好手动获取。github上获取flanneld镜像位置为:https://github.com/flannel-io/flannel/releases/tag/v0.25.4,这里我取了现在的最新版本:
flanneld下载

下载 docker 与 yaml 配置文件,从 yaml 中,可以看到相匹配的 cni-flannel 插件版本:
cni_plugin地址

然后还是在 github 上,找到对应版本的 cni-flannel 插件:https://github.com/flannel-io/cni-plugin/releases/tag/v1.4.1-flannel1
cni_plugin下载

7.1 加载flanneld镜像
将下载的flanneld加载入docker image:

  1. 由于最新的k8s采用了containerd,因此加载到docker image还不够,还需要加载到containerd的k8s.io域
  2. kube-flannel.yml 里面的flanneld取自docker.io,从github上下载的来自guay.io,因此需要修改kube-flannel.yml使其匹配

flannel-image

7.2 配置cni-flannel插件
根据kube-flannel.yml的配置,cni-flannel插件需要从 docker.io/flannel/flannel-cni-plugin:v1.4.1-flannel1 下载,然而从 github 上下载的 cni-plugin-flannel-linux-amd64-v1.4.1-flannel1.tgz 并不是 docker image,而是个可执行文件
有三种做法:

  1. 修改docker.io,使用一个可访问的镜像源
  2. 下载cni-flannel插件的docker image,并同7.1 flanneld一样操作
  3. 直接使用可执行文件版本,不使用容器版本
    这里采用最后一个方法:

    将kube-flannel.yml配置文件中,flannel-cni-plugin的部分删除:
    cni-flannel-plugin

八. 使用kubectl

按照 kubeadm init 成功后的提示信息,配置如下:

之后就可以通过kubectl命令查看k8s状态了:

kubectl

九. 组网

将上面的虚拟机复制两份,分别运行后:

  1. 修改新虚拟机的 hostname 为 node1 与 node2
  2. 分别在三台机器修改/etc/hosts,设置 master/node1/node2 对应的 IP
  3. 在 master 执行 kubeadm init 命令
  4. 在 node1 与 node2 执行 kubeadm join 命令【见 kubeadm init 的输出打印】
  5. 在 master 执行 kubectl apply -f kube-flannel.yml

十. 虚拟机下载

最后,上面所有的成果可以在这里直接下载【虚拟机】:
https://pan.baidu.com/s/1qojhU6QMeOm0abkhoBwikg?pwd=pg99
linux用户名:root
linux密码:123456
使用方法:

  1. 虚拟机启动时选择“已‘复制’虚拟机”
  2. 配置 /etc/docker/daemon.json 中的镜像地址
编程小号
上一篇 2025-02-26 21:46
下一篇 2025-03-21 23:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/47461.html