Ubuntu安装K8S(1.28版本,基于containrd)
本文介绍Ubuntu安装K8S的方法。
原文网址:Ubuntu安装K8S(1.28版本,基于containrd)-CSDN博客
简介
本文介绍Ubuntu安装K8S的方法。
官网文档:这里
1.安装K8S
1.让apt支持SSL传输
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates
2.下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
3.添加 k8s 镜像源
创建/etc/apt/sources.list.d/kubernetes.list文件,并添加阿里的K8S源。
sudo touch /etc/apt/sources.list.d/kubernetes.list
sudo vi /etc/apt/sources.list.d/kubernetes.list
添加的内容如下:
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
4.安装k8s
更新软件源
sudo apt-get update
查看版本
sudo apt-cache madison kubeadm
sudo apt-cache madison kubelet
sudo apt-cache madison kubectl
三个软件的版本都是下边这样(我为了只看前几行,加了个| head -20,否则会输出很多)

安装指定版本(本处我安装最新版本(1.28.2-00))
sudo apt-get install -y kubelet=1.28.2-00 kubeadm=1.28.2-00 kubectl=1.28.2-00
kubeadm用于初始化环境,kubectl用于操作kubelet。
5.启动k8s
启动k8s
sudo systemctl start kubelet
设置开机启动
sudo systemctl enable kubelet
6.命令自动补全
这几个命令没有自动补全,用起来不方便。启用自动补全的方法见:这里
2.配置K8S环境
执行命令时有时候会报下边错误,不用管它。报错原因:去k8s官网查看发布版列表,但是国内访问不了这个网站,连不上;此时会自动使用本地客户端的版本,本处是:1.28.2。

1.禁用防火墙和swap
这两步必须操作!不然k8s无法正常运行。
1.禁用防火墙
sudo sysemctl stop ufw
sudo systemctl disable ufw
2.禁用swap
修改/etc/fstab文件,将swap所在的行注释掉

2.预检
执行安装之前,会做一系列的系统预检查,以确保主机环境符合安装要求,如果检查失败,就直接终止,不进行init操作。因此可以通过命令执行预检查操作,确保系统就绪后再进行init操作。会检查内存大小等。
sudo kubeadm init phase preflight
到这一步一般会报错:

原因是:默认关闭了cri(容器运行时),需要启用它。 本处先不处理,下边第4步安装容器运行时之后,这个就解决了。
3.网络设置
转发 IPv4 并让 iptables 看到桥接流量。 官网:这里
执行如下指令:
1.向k8s.conf写入两行配置并启用它
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
2.设置所需的 sysctl 参数,参数在重新启动后保持不变
下边命令会向k8s.conf写入三行内容
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
3.应用 sysctl 参数而不重新启动
sudo sysctl --system
4.安装容器运行时
官网:这里
需要在集群内每个节点上安装一个容器运行器以使 Pod 可以运行在上面。容器运行器实现了CRI(容器运行时接口),常见的容器运行器有:
- containerd
- CRI-O
- Docker(使用 cri-dockerd 适配器来将 Docker 与 Kubernetes 集成)
- Mirantis Container Runtime
我是用containerd,这是现在最常用的。做完上边第一步(1.安装K8S)后,默认会安装contrainerd,可以用此命令查看:
ctr -v
结果
![]()
1.生成配置并修改
先切换到root用户,然后执行如下命令:
containerd config default > /etc/containerd/config.toml
会生成配置文件:/etc/containerd/config.toml,修改如下配置项 :
修改1:修改cgroup为systemd
原内容
SystemdCgroup = false
修改为
SystemdCgroup = true
kubelet 的 cgroup 驱动 默认是systemd,这里需要保持一致。详见:官网
修改2:沙箱使用阿里云的源
原内容
sandbox_image = "registry.k8s.io/pause:3.6"
修改为
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"
修改3:使用国内的镜像源
在plugins."io.containerd.grpc.v1.cri".registry.mirrors下边添加如下内容:

内容为:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://ustc-edu-cn.mirror.aliyuncs.com", "https://hub-mirror.c.163.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
endpoint = ["registry.aliyuncs.com/google_containers"]
2.重启containerd
修改完毕后,重启containerd
sudo systemctl daemon-reload
sudo systemctl restart containerd
让containerd开机自启
sudo systemctl enable containerd
5.搭建K8S集群
上边是文章的部分内容,为便于维护,全文已转移到此网址:Ubuntu安装K8S(1.28版本,基于containrd) - 自学精灵
更多推荐
所有评论(0)