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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810193

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (