k8s安装v1.30.2(contanerd容器运行时)实录

news/2024/11/17 0:27:29/文章来源:https://www.cnblogs.com/JiaoTou/p/18294735

一、主机准备

主机名 NAT IP 系统 配置
k8s-master 192.168.1.201 ubuntu 18.04.6 2C2G
k8s-node01 192.168.1.202 ubuntu 18.04.6 2C2G
k8s-node02 192.168.1.203 ubuntu 18.04.6 2C2G

 

 

 

二、前提

主机配置好网络、ntp,关闭ufw,swap,安装好containerd,runc服务

三、安装步骤

master、node01、node02均运行:

转发 IPv4 并让 iptables 看到桥接流量

执行下述指令:

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOFsudo modprobe overlay
sudo modprobe br_netfilter
# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF# 应用 sysctl 参数而不重新启动
sudo sysctl --system

通过运行以下指令确认 br_netfilter 和 overlay 模块被加载:

lsmod | grep br_netfilter
lsmod | grep overlay

 

通过运行以下指令确认 net.bridge.bridge-nf-call-iptablesnet.bridge.bridge-nf-call-ip6tables 和 net.ipv4.ip_forward 系统变量在你的 sysctl 配置中被设置为 1:

sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward

 

配置containerd systemd cgroup 驱动

结合 runc 使用 systemd cgroup 驱动,在 /etc/containerd/config.toml (没有的就手动生成)中设置:

containerd config default > /etc/containerd/config.toml #编辑配置文件[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]...[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true
#重启并启用 containerd 服务
systemctl daemon-reload
systemctl restart containerd
systemctl enable containerd

 

安装 kubeadm、kubelet 和 kubectl

安装 CNI 插件(大多数 Pod 网络都需要):

CNI_PLUGINS_VERSION="v1.1.1"
ARCH="amd64"
DEST="/opt/cni/bin"
sudo mkdir -p "$DEST"
curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGINS_VERSION}/cni-plugins-linux-${ARCH}-${CNI_PLUGINS_VERSION}.tgz" | sudo tar -C "$DEST" -xz
定义要下载命令文件的目录。
说明:

DOWNLOAD_DIR 变量必须被设置为一个可写入的目录。

DOWNLOAD_DIR="/usr/local/bin"
sudo mkdir -p "$DOWNLOAD_DIR"

安装 crictl(kubeadm/kubelet 容器运行时接口(CRI)所需)

CRICTL_VERSION="v1.25.0"
ARCH="amd64"
curl -L "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-${ARCH}.tar.gz" | sudo tar -C $DOWNLOAD_DIR -xz

创建crictl配置文件:/etc/crictl.yaml。修改crictl默认配置,把runtime-endpoint和image-endpoint指向containerd

vim /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 2 debug: true pull-image-on-create: false

安装 kubeadmkubelet并添加 kubelet 系统服务:

RELEASE="$(curl -sSL https://dl.k8s.io/release/stable.txt)"
ARCH="amd64"
cd $DOWNLOAD_DIR
sudo curl -L --remote-name-all https://dl.k8s.io/release/${RELEASE}/bin/linux/${ARCH}/{kubeadm,kubelet}
sudo chmod +x {kubeadm,kubelet}RELEASE_VERSION="v0.4.0"
curl -sSL "https://raw.githubusercontent.com/kubernetes/release/${RELEASE_VERSION}/cmd/kubepkg/templates/latest/deb/kubelet/lib/systemd/system/kubelet.service" | sed "s:/usr/bin:${DOWNLOAD_DIR}:g" | sudo tee /etc/systemd/system/kubelet.service
sudo mkdir -p /etc/systemd/system/kubelet.service.d
curl -sSL "https://raw.githubusercontent.com/kubernetes/release/${RELEASE_VERSION}/cmd/kubepkg/templates/latest/deb/kubeadm/10-kubeadm.conf" | sed "s:/usr/bin:${DOWNLOAD_DIR}:g" | sudo tee /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

 激活并启动 kubelet

systemctl enable --now kubelet

安装工具conntrack

sudo apt-get install conntrack

kubeadm init初始化管理平面

master执行

kubeadm init --apiserver-advertise-address 192.168.1.201 --apiserver-bind-port 6443 --cri-socket=/run/containerd/containerd.sock --cri-socket=/run/containerd/containerd.sock -–pod-network-cidr=10.244.0.0/16

 完成如上图,可以执行如下命令让其他节点加入集群。

kubeadm join 192.168.1.201:6443 --token qtj2on.fbg7att0xixsdnew \
--discovery-token-ca-cert-hash sha256:9fbf4265d1350b7ddf65b5e8cdea34fea93d42fca469e49255cd10ca66e8b9ef

安装kubectl

用 curl 在 Linux 系统中安装 kubectl

 

用以下命令下载最新发行版:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
说明:

如需下载某个指定的版本,请用指定版本号替换该命令的这一部分: $(curl -L -s https://dl.k8s.io/release/stable.txt)

例如,要在 Linux 中下载 v1.26.15 版本,请输入:

curl -LO https://dl.k8s.io/release/v1.26.15/bin/linux/amd64/kubectl

安装 kubectl

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

执行测试,以保障你安装的版本是最新的:

kubectl version --client
 
(可选)安装bash-completion
apt-get install bash-completion
#启动 kubectl 自动补全功能
echo 'source <(kubectl completion bash)' >>~/.bashrc

 

安装flannel网络插件

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

如果你的容器子网CIDR (不是 10.244.0.0/16)那可以把yml下载下来后修改再apply,注意需要和init初始化管理平面时 kubeadm init命令中--pod-network-cidr=10.244.0.0/16 的值保持一致。

 

最终结果:

 参考文档:

安装 kubeadm | Kubernetes

containerd/docs/getting-started.md at main · containerd/containerd · GitHub

GitHub - flannel-io/flannel: flannel is a network fabric for containers, designed for Kubernetes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741987.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker入门(三):nodejs后端服务部署

本文主要内容是通过dockerfile创建镜像,并通过kubernets(简称k8s)来启动集群服务。最后你会得到一个简单的nodejs提供的api服务。写在前面 需要安装的有node(如何安装?),kubectl(如何安装?) 一,创建nodejs应用 本文主要是用于实践k8s,所以nodejs项目写的非常简单,除了…

如何不错过手机的重要消息-草稿

你是不是手机里有许多未读消息,许多“小红点”,系统通知里有很多通知,久而久之你已习惯并麻木了?你只在自己需要的时候主动去找,而对于推送的信息一概不理。有时也有朋友向你抱怨发给你的信息你久久不回。或者反过来,你经常去看推送的消息,但大多是不太重要的,是广告,…

pandas agg函数的详细介绍与应用

pandas agg函数的详细介绍与应用 参考:pandas agg Pandas 是一个强大的 Python 数据处理库,提供了广泛的方法来进行数据分析。其中,agg 函数是一个非常有用的工具,它允许用户对数据进行多种聚合操作,可以极大地简化数据处理过程。本文将详细介绍 agg 函数的使用方法,并通…

Ollama完整教程:本地LLM管理、WebUI对话、Python/Java客户端API应用

Ollama可以非常方便的管理和部署我们本地大语言模型,老牛同学希望通过本文对Ollama进行一次详细介绍,包括本地大模型管理和使用、WebUI对话界面部署、通过Python和Java使用Ollama的API接口等……老牛同学在前面有关大模型应用的文章中,多次使用了Ollama来管理和部署本地大模…

Python爬虫(1-4)-基本概念、六个读取方法、下载(源代码、图片、视频 )、user-agent反爬

Python爬虫 一、爬虫相关概念介绍 1.什么是互联网爬虫 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据解释1:通过一个程序,根据URL进行爬取网页,获取有用信息 解释2:使用程序模…

一条SQL查询语句是如何执行的??

我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在…

2024最新404错误页面单页源码 HTML错误页面代码

简介:2024最新404错误页面单页源码 HTML错误页面代码 点击下载

高仿imtoken钱包源码/获取助记词/获取私钥/自动归集

简介:高仿imtoken钱包/获取助记词/获取私钥/自动归集 带双端,无纯源码 下载源码

LLM大模型: 常用的数据清洗方法总结

LLM的三大要素:算力:算力的本质是拼财力,普通人是无力改变的; 算法/模型结构:目前最流行的还是transformer架构, 各种LLM都是基于transformer改细节,暂时没有用新的框架替代transformer。至于后续manba会不会替代transformer架构,有待观察! 数据:这块是做LLM pre-tra…

docker部署若依开源java项目微服务版

查看容器IDdocker ps 后面以进入mysql容器为例 进入容器sudo docker exec -it 27e /bin/bash 进入成功,由于是mgsql容器,我们可以输入命令操作看一下mysql文件夹,如下看到了我们建的数据库:退出容器回到centosexit

【考研数学】大家喜欢这种用不同颜色标记解题思路的方式嘛?

今天要给大家分享的笔记是:《如何确定行列式展开式中有效项的个数?》,大家喜欢类似下面这样在文章中用不同的文字颜色和背景颜色对计算推导过程中需要注意的不同部分做高亮显示嘛?可以在下方留言哦 >_< 原文:如何确定行列式展开式中有效项的个数? - 荒原之梦 (zhao…

大气热力学(12)——强对流指数之一(能量参数)

从本篇文章开始,都不是我原有手写笔记上的内容,都是全新添加的内容。本篇文章介绍了根据预报员多年经验总结的各种强对流预报指数,希望这部分内容能对你有所帮助。 @目录12.1 对流有效势能(CAPE)12.1.1 CAPE的概念与相关公式12.1.2 CAPE与上升气块的起始高度的关系12.1.3 …