使用kubeadm(v1.25.0)安装Kubernetes集群

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作为容器运行时。


环境准备及说明:

服务器准备:

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

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值