Ubuntu部署k8sV1.27+containerd

2024-03-15 00:20

本文主要是介绍Ubuntu部署k8sV1.27+containerd,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文中如果有的依赖没办法用apt-get安装,可以直接访问我的网盘,用tar包安装
链接:https://pan.baidu.com/s/1hiozH7KPqKa6IbwBIPb7Ng?pwd=8s4i
提取码:8s4i

1、登录节点使用 hostnamectl 命令设置 hostname(所有主机)
例:hostnamectl set-hostname k8s-master

2、在每个节点上的 /etc/hosts 文件中添加以下内容(所有主机操作)
172.18.10.11 k8s-master
172.18.10.12 k8s-worker1
172.18.10.13 k8s-worker2

3、禁用 swap & 添加内核设置(所有主机操作)
swapoff -a
sed -i ‘/swap/ s%/swap%#/swap%g’ /etc/fstab

4、在所有节点上加载以下内核模块(所有主机操作)
tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter

5、为 Kubernetes 设置以下内核参数,运行如下的tee命令(所有主机操作)
tee /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
使其生效(所有主机操作)
sysctl --system

6、安装容器运行时依赖项(所有主机操作)
apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates

7、启用 docker 存储库(所有主机操作)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg

add-apt-repository “deb [arch=amd64] Index of linux/ubuntu/ $(lsb_release -cs) stable”

8、安装 containerd(所有主机操作)
apt update
apt install -y containerd.io(如果报错找不到containerd.io,那就用tar包去装,如果没报错正常安装上了,那就可以跳过下面实线内的步骤)
tar Cxzvf /usr/local containerd-1.7.0-linux-amd64.tar.gz
#创建启动containerd的systemd服务
cat << EOF >> /lib/systemd/system/containerd.service
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5

Having non-zero Limit*s causes performance problems due to accounting overhead

in the kernel. We recommend using cgroups to do container-local accounting.

LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity

Comment TasksMax if your systemd version does not supports it.

Only systemd 226 and above support this version.

TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
EOF
(到这里tar包安装就结束了,回归正常的配置步骤)

9、配置 containerd,使它使用 systemd 作为 cgroup(所有主机操作)
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1

sed -i ‘s/SystemdCgroup = false/SystemdCgroup = true/g’ /etc/containerd/config.toml

10、将镜像地址换为阿里云地址,否者在初始化时无法拉取到镜像(所有主机操作)
sed -i “s#registry.k8s.io/pause#registry.aliyuncs.com/google_containers/pause#g” /etc/containerd/config.toml
重启并启用 containerd 服务
systemctl daemon-reload
systemctl restart containerd
systemctl enable containerd

12、添加 Kubernetes apt 存储库,下载 Google Cloud 公开签名秘钥(master操作)
curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
此操作需要看脸,若脸黑访问不到的话,直接用我网盘里的apt-key.gpg
cp ~/apt-key.gpg /usr/share/keyrings/kubernetes-archive-keyring.gpg 手动cp一下

13、添加 Kubernetes apt仓库(master操作)
echo “deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/kubernetes.list
更新索引(所有主机操作)
apt-get update(如果源用不了换一下源,如果还不行,就直接跳过这步,本人亲测可行)
换源
echo “deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/kubernetes.list

14、安装Kubectl, kubeadm 和 kubelet(所有主机操作)

安装基础环境

apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

执行配置k8s阿里云源

vim /etc/apt/sources.list.d/kubernetes.list
#加入以下内容
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

执行更新

apt-get update -y
安装工具
apt-get install -y kubelet kubeadm kubectl
锁定版本,不让k8s组件自动升级(所有主机操作)
apt-mark hold kubelet kubeadm kubectl

15、修改containerd的沙盒(所有主机操作)
vi /etc/containerd/config.toml
在这里插入图片描述

systemctl daemon-reload
systemctl restart containerd
systemctl enable containerd

16、初始化kubernetes集群(master操作)
kubeadm init --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address=172.18.10.11 --kubernetes-version v1.27.1 --pod-network-cidr=10.244.0.0/16 --v=5
在这里插入图片描述

如果初始化失败,重新初始化前需要执行kubeadm reset -f来清除初始化失败的文件
用初始化完成后的命令加入node节点(node操作)
kubeadm join k8s-master:6443 --token 04bkvu.6yc4clf05z009t1b --discovery-token-ca-cert-hash sha256:088e804bb2658add7bfd6f6620beb0f6df5307c3371a7d623f8563b5ac30347d
查看node状态(NotReady是正常的,后续装完网络插件就好了)
在这里插入图片描述

如果以后需要添加新的node,需要重新生成新的token以及公钥哈希值
kubeadm token create
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^ .* //’
kubeadm join 192.168.80.137:6443 --token 新生成的Token填写此处 --discovery-token-ca-cert-hash sha256:获取的公钥哈希值填写此处
17、在主节点安装flannel网络插件(master操作)
curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果无法下载flannel的yaml,那就用我网盘的直接apply执行就可以了
kubectl apply -f kube-flannel.yml
查看节点和pod都已经Running了
在这里插入图片描述
在这里插入图片描述

19、在主节点输入集群交互命令,不执行的话,node节点无法使用kubectl(所有主机操作)
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

到此结束!!!

这篇关于Ubuntu部署k8sV1.27+containerd的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_44833521/article/details/131532284
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/810193

相关文章

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx