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上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

若依部署Nginx和Tomcat全过程

《若依部署Nginx和Tomcat全过程》文章总结了两种部署方法:Nginx部署和Tomcat部署,Nginx部署包括打包、将dist文件拉到指定目录、配置nginx.conf等步骤,Tomcat部署... 目录Nginx部署后端部署Tomcat部署出现问题:点击刷新404总结Nginx部署第一步:打包

Nginx、Tomcat等项目部署问题以及解决流程

《Nginx、Tomcat等项目部署问题以及解决流程》本文总结了项目部署中常见的four类问题及其解决方法:Nginx未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致... 目录前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的