ubuntu22.04安装kubernetes1.26 k8s1.26 (使用containerd)


前言

本篇来讲解如何在ubuntu20.4下使用kubeadm安装部署k8s 1.26集群,并使用containerd。


一、基础环境

准备1台虚拟机(别惊慌,后面会教你克隆的)。

主机IP 配置
192.168.2.5 master节点,能连外网,ubuntu 20.04版本,至少2核CPU,2G内存

安装基础软件例如vim、wget、netstat,curl,方便修改ymal,查看端口,排查错误等等。
设置root用户。
还有就是换源!!!!更换国内镜像源方法

二、开始

1.关闭防火墙

root@master:~# ufw status					#ufw查看当前的防火墙状态:inactive状态是防火墙关闭状态 active是开启状态。
root@master:~# ufw enable | disable	        #启动、关闭防火墙

2.禁用SELINUX

setenforce 0
vim /etc/selinux/config
SELINUX=disabled

3禁用所有swap交换分区

注:最好是安装虚拟机时就不要创建swap交换分区

root@master:~#  swapoff -a							#禁用所有swap交换分区
root@master:~#  free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        280M        1.2G        9.6M        286M        1.4G
Swap:            0B          0B          0B
root@master:~#  vim /etc/fstab			#永久禁用swap,删除或注释掉/etc/fstab里的swap设备的挂载命令即可
#/swap.img      none    swap    sw      0       0

4设置主机名

cat >> /etc/hosts <<EOF
192.168.2.5 K8Smaster
EOF

后续克隆之后在执行

cat >> /etc/hosts <<EOF
192.168.2.6 K8sNode1  #在第二台虚拟机执行
192.168.2.7 K8sNode2  #在第三台虚拟机执行
EOF

注:如果提前配置了3台虚拟机需要同步时间否则会出error

root@master:~# date										#查看时区,时间
root@master:~# timedatectl set-timezone Asia/Shanghai	#先查看时区是否正常,不正确则替换为上海时区
root@master:~# yum -y install ntp	 					#安装ntp服务
root@master:~# systemctl start ntp						#开始ntpd服务,或者做定时任务如:*/5 * * * * /usr/sbin/ntpdate -u 192.168.2.5
root@master:~# systemctl enable ntp

5创建配置文件

创建/etc/modules-load.d/containerd.conf配置文件:

cat << EOF > /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

执行以下命令使配置生效:

modprobe overlay
modprobe br_netfilter

创建/etc/sysctl.d/99-kubernetes-cri.conf配置文件:

cat << EOF > /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
user.max_user_namespaces=28633
EOF

执行以下命令使配置生效:

sysctl -p /etc/sysctl.d/99-kubernetes-cri.conf

6配置服务器支持开启ipvs的前提条件

kube-proxy开启ipvs的前提需要加载以下的内核模块:

ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4

那么执行脚本

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

接下来还需要确保各个节点上已经安装了ipset软件包,为了便于查看ipvs的代理规则,最好安装一下管理工具ipvsadm。
如果不满足以上前提条件,则即使kube-proxy的配置开启了ipvs模式,也会退回到iptables模式。

三、使用kubeadm安装k8s 1.26.0

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具,这个工具能通过两条指令完成一个kubernetes集群的部署。

1、创建一个master节点,kubeadm init。
2、将node节点加入kubernetes集群,kubeadm join <master_IP:port >

我当然是用yaml啦!kubeadm init --config kubeadm.yaml 一键三连!

1、安装containerd

(在所有节点服务器上都执行,因为k8s 1.24版本默认CRI为containerd,cri称之为容器运行时插件)
containerd的官网
containerd官网安装教程,官网安装文档提供了源码包安装和普通的yum、apt-get安装,这里使用源码包安装。
下载Containerd的二进制包:

#安装containerd
wget https://github.com/containerd/containerd/releases/download/v1.6.14/containerd-1.6.14-linux-amd64.tar.gz #巨慢!建议浏览器下载,然后CP到/usr/local 然后执行解压
tar Cxzvf /usr/local containerd-1.6.8-linux-amd64.tar.gz	#解压到/usr/local/bin目录下了
bin/														#解压到/usr/local/bin目录下了
bin/containerd-shim-runc-v2									#这6个可执行文件就是解压出来的containerd相关命令
bin/containerd-shim
bin/ctr
bin/containerd-shim-runc-v1
bin/containerd
bin/containerd-stress

#使用systemcd来管理containerd
wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service 
mv containerd.service  /usr/lib/systemd/system/
systemctl daemon-reload && systemctl enable --now containerd 
systemctl  status containerd		               #containerd已经是running状态了


#安装runc
#runc是容器运行时,runc实现了容器的init,run,create,ps...我们在运行容器所需要的cmd:
curl -LO https://github.com/opencontainers/runc/releases/download/v1.1.4/runc.amd64 && \
install -m 755 runc.amd64 /usr/local/sbin/runc

修改containerd的配置,因为containerd默认从k8s官网拉取镜像

mkdir -p /etc/containerd				#创建一个目录用于存放containerd的配置文件
containerd config default | sudo tee /etc/containerd/config.toml	#把containerd配置导出到文件
vim /etc/containerd/config.toml			#修改配置文件
[plugins."io.containerd.grpc.v1.cri"]
..................................
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"	 #搜索sandbox_image,把原来的k8s.gcr.io/pause:
  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值