2022.08.23,Kubernetes v1.25新版本发布啦!
很多Kubernetes的安装教程都已经老旧了,版本不一致的教程会让你多走很多弯路,想安装最新版本(v1.25.0)Kubernetes集群的客观请往下看。
本文容器运行时使用的是:containerd,注意不是Docker Engine。
说明:
v1.24 之前的 Kubernetes 版本直接集成了 Docker Engine 的一个组件,名为 dockershim。
这种特殊的直接整合不再是 Kubernetes 的一部分 (这次删除被作为 v1.20
发行版本的一部分宣布)。
所以这里v1.25使用containerd作为容器运行时。
文章目录
-
- 环境准备及说明:
-
- 服务器准备:
- 前置操作:
-
-
-
- 1. 禁用交换分区
- 2. 关闭防火墙
- 3. 禁用SELinux
- 4. 设置时区
- 5. hosts设置
- 6. 安装containerd
- 7. 修改cgroupfs 驱动
- 8. [转发 IPv4 并让 iptables 看到桥接流量](https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#%E8%BD%AC%E5%8F%91-ipv4-%E5%B9%B6%E8%AE%A9-iptables-%E7%9C%8B%E5%88%B0%E6%A1%A5%E6%8E%A5%E6%B5%81%E9%87%8F)
- 9. 安装kubelet、kubeadm、kubectl
-
-
- 使用 kubeadm 创建集群
环境准备及说明:
服务器准备:
Centos和Ubuntu都可以,某些细节上会有略微区别,文章中会注明。
我的环境:Ubuntu(20.04)。使用Mulitpass构建了三台ubuntu系统的虚拟机。
blueMac:~ blue$ multipass list
Name State IPv4 Image
k8s-master Running 192.168.64.3 Ubuntu 20.04 LTS
k8s-node1 Running 192.168.64.4 Ubuntu 20.04 LTS
k8s-node2 Running 192.168.64.5 Ubuntu 20.04 LTS
macOS下Multipass搭建ubuntu 20.04虚拟机请参考这篇文章:
https://blog.youkuaiyun.com/qq_34628724/article/details/126872890
ubuntu 20.04安装docker 20.10.18请参考这篇文章:
https://blog.youkuaiyun.com/qq_34628724/article/details/126873666
前置操作:
1. 禁用交换分区
swapoff -a #临时
#永久
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
#or vim /etc/fsta,注释swap这一行
/swap.img none swap sw 0 0
#reboot后永久生效
2. 关闭防火墙
虚拟机默认关闭了防火墙,没关闭的执行以下命令:
systemctl stop firewalld
systemctl disable firewalld
ufw status
3. 禁用SELinux
ubuntu:默认没开启
centos:
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
4. 设置时区
sudo timedatectl set-timezone Asia/Shanghai
sudo systemctl restart rsyslog
5. hosts设置
192.168.64.3 k8s-master
192.168.64.4 k8s-node1
192.168.64.5 k8s-node2
6. 安装containerd
已经安装过docker的,containerd.io包含了containerd和runc,但不包含 CNI 插件。按此步骤安装CNI插件。
没有安装过docker的,按此步骤安装containerd、runc、CNI插件。
7. 修改cgroupfs 驱动
注意: 很多教程因为使用的是docker,所以会修改docker的cgroup驱动为systemd,如下:
#修改docker-driver vim /etc/docker/daemon.json , 新增以下行
"exec-opts": ["native.cgroupdriver=systemd"],
#重启docker
systemctl daemon-reload
systemctl restart docker
但是:我们用的是containerd,按如下方式修改cgroup驱动,同时把自定义镜像、重载沙箱镜像一并修改了:
mv /etc/containerd/config.toml /etc/containerd/config.toml.orig #备份
containerd config default > /etc/containerd/config.toml #生成默认配置文件
# vim /etc/containerd/config.toml,如下修改对应行
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
......
Root = ""
ShimCgroup = ""
SystemdCgroup = true # 将false改为true
[plugins."io.containerd.tracing.processor.v1.otlp"]
endpoint = "https://docker.mirrors.ustc.edu.cn/" #改成中科大镜像源,可按需修改成阿里、华为等镜像源
insecure = false
protocol = ""
[plugins."io.containerd.grpc.v1.cri"]
netns_mounts_under_state_dir = false
restrict_oom_score_adj = false
#sandbox_image = "k8s.gcr.io/pause:3.6"
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.8" # 修改成这样
#重启containerd
systemctl daemon-reload
systemctl restart containerd
8. 转发 IPv4 并让 iptables 看到桥接流量
通过运行 lsmod | grep br_netfilter 来验证 br_netfilter

最低0.47元/天 解锁文章
2357

被折叠的 条评论
为什么被折叠?



