当前位置: 首页 > news >正文

《Kubernetes部署篇:Ubuntu20.04基于二进制安装安装kubeadm、kubelet和kubectl》

一、背景

由于客户网络处于专网环境下, 使用kubeadm工具安装K8S集群,由于无法连通互联网,所有无法使用apt工具安装kubeadm、kubelet、kubectl,当然你也可以使用apt-get工具在一台能够连通互联网环境的服务器上下载kubeadm、kubelet、kubectl软件包,然后拷贝到专网主机上,通过dpkg工具安装kubeadm、kubelet、kubectl,这里并没有采用这种方式,在当前客户主机网络环境下,我们使用二进制方式来安装kubeadm、kubelet、kubectl。

kubeadm:用来初始化集群的指令。
kubelet:在集群中的每个节点上用来启动 Pod 和容器等。
kubectl:用来与集群通信的命令行工具。

环境信息如下所示:

操作系统 内核版本 kubeadm版本 kubelet版本 kubectl版本
Ubuntu 20.04.5 LTS 5.15.0-69-generic 1.24.17 1.24.17 1.24.17

注意:使用apt安装kubeadm、kubelet、kubectl会安装一些依赖软件,如cri-tools、ebtables、socat、kubernetes-cni等,如果使用二进制安装kubeadm、kubelet、kubectl,则需要单独安装这些软件。

在这里插入图片描述

版本信息如下所示:

软件名称 软件版本
cri-tools 1.26.0
ebtables 2.0.11
socat 1.7.3.3
kubernetes-cni 1.2.0

注意:当前环境的containerd版本为1.7.2,这里面提供的cni二进制文件,已经集成在cri-containerd-cni-1.7.2-linux-amd64.tar.gz二进制包里面了,所以无需单独下载安装。详情可参考《Kubernetes部署篇:Ubuntu20.04基于二进制安装安装cri-containerd-cni》

这些工具在Kubernetes中有不同的用途:

1、cri-tools(容器运行时工具):这是一个 用于与Kubernetes容器运行时接口(CRI)进行交互的命令行工具集。它提供了一些有用的功能,如创建、销毁和管理容器等。

2、ebtables(以太网桥规则管理工具):这是一个用于在Linux系统中管理以太网桥规则的工具。在Kubernetes中,ebtables 用于在网络分区中实现容器之间的隔离和通信

3、socat(网络工具):这是一个用于在Linux系统中建立各种类型网络连接的工具。在Kubernetes网络中,socat可以 用于创建端口转发、代理和转发等网络连接

4、kubernetes-cni(容器网络接口插件):这是Kubernetes的一个插件, 用于管理容器的网络连接。它负责为容器分配IP地址、配置网络路由和实现网络隔离等功能


二、操作步骤

2.1、安装 CNI 插件

说明:在安装cri-containerd-cni中已经完成了cni网络插件的安装,默认在/opt/cni/bin目录下,如下图所示:
在这里插入图片描述

如果你的containerd、runc、cri-tools、cni是分别下载对应的二进制包独立安装的,可以参考如下操作安装cni网络插件:

# 1、下载二进制包
wget https://github.com/containernetworking/plugins/releases/download/v1.2.0/cni-plugins-linux-amd64-v1.2.0.tgz# 2、解压文件
mkdir -p /opt/cni/bin
tar axf cni-plugins-linux-amd64-v1.2.0.tgz -C /opt/cni/bin

2.2、安装 crictl

说明:ctr是containerd自带的CLI命令行工具,crictl是k8s中CRI(容器运行时接口)的客户端,k8s使用该客户端和containerd进行交互。如果你的containerd、runc、cri-tools、cni是分别下载对应的二进制包独立安装的,可以参考如下操作安装crictl:

# 1、下载二进制包
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.26.0/crictl-v1.26.0-linux-amd64.tar.gz
tar axf crictl-v1.26.0-linux-amd64.tar.gz -C /usr/local/bin# 2、配置/etc/crictl.yaml
cat <<EOF | sudo tee /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
EOF

2.3、安装ebtables和socat

apt install ebtables socat -y

如下图所示:
在这里插入图片描述


2.3、安装kubeadm、kubelet、kubectl

1、下载kubeadm、kubelet、kubectl二进制文件

方法一:

wget -P /usr/bin/ https://dl.k8s.io/v1.24.17/bin/linux/amd64/kubeadm
wget -P /usr/bin/ https://dl.k8s.io/v1.24.17/bin/linux/amd64/kubelet
wget -P /usr/bin/ https://dl.k8s.io/v1.24.17/bin/linux/amd64/kubectl

方法二:

wget https://dl.k8s.io/v1.24.17/kubernetes-server-linux-amd64.tar.gz
tar axf kubernetes-server-linux-amd64.tar.gz
cp kubernetes/server/bin/kubeadm  /usr/bin
cp kubernetes/server/bin/kubelet  /usr/bin
cp kubernetes/server/bin/kubectl  /usr/bin

2、安装kubeadm、kubelet、kubectl

mkdir /etc/systemd/system/kubelet.service.d
wget https://raw.githubusercontent.com/kubernetes/release/v0.4.0/cmd/kubepkg/templates/latest/deb/kubelet/lib/systemd/system/kubelet.service
cp kubelet.service /etc/systemd/system/kubelet.service
wget https://raw.githubusercontent.com/kubernetes/release/v0.4.0/cmd/kubepkg/templates/latest/deb/kubeadm/10-kubeadm.conf
cp kubeadm.conf /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
systemctl daemon-reload

说明:kubelet.service和10-kubeadm.conf文件,你可以找一台能访问互联网的服务器,使用apt工具安装kubeadm、kubectl、kubelet可以在对应目录下找到,将这两个文件拷贝到需要二进制部署kubeadm、kubectl、kubelet的主机上。

3、设置kubectl开机自启

systemctl enable kubelet

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

http://www.lryc.cn/news/153777.html

相关文章:

  • go学习part21 Redis
  • 时序预测 | MATLAB实现基于PSO-BiGRU、BiGRU时间序列预测对比
  • Unity3D下如何采集camera场景数据并推送RTMP服务?
  • 黑客可利用 Windows 容器隔离框架绕过端点安全系统
  • STM32注入通道
  • WebVR — 网络虚拟现实
  • ASP.NET Core 的 Routing
  • IBM Spectrum LSF Explorer 为要求苛刻的分布式和任务关键型高性能技术计算环境提供强大的工作负载管理
  • RHCE——十一、NFS服务器
  • Python编程练习与解答 练习100:随机密码
  • 华为云云服务器评测 | 从零开始:云耀云服务器L实例的全面使用解析指南
  • 欧科云链研究院探析Facebook稳定币发行经历会不会在PayPal重演
  • docker 容器pip、git安装异常;容器内web对外端口ping不通
  • SpringBoot Mybatis 多数据源 MySQL+Oracle+Redis
  • 【JavaScript 16】对象继承 原型对象属性 原型链 构造函数属性 instanceof运算符 继承 多重继承 模块
  • 地下管线三维自动建模软件MagicPipe3D V3.0发布
  • 百度等8家企业首批上线大模型服务;大语言模型微调之道
  • 二、Mycat2 相关概念及读写分离
  • react利用wangEditor写评论和@功能
  • Android之布局转圆角
  • Linux的目录结构特点
  • 【算法与数据结构】654、LeetCode最大二叉树
  • 您必须尝试的 4 种经典特征提取技术!
  • Unity中Shader的遮罩的实现
  • 架构师成长之路|Redis key过期清除策略
  • ubuntu20.04使用privoxy进行http代理转http代理,并定制http代理头(hide-user-agent的使用方法)
  • 任意文件读取
  • 微信小程序餐饮外卖系统设计与实现
  • 一文速览嵌入式六大出口
  • 华为云云服务器评测 | 宝塔8.0镜像应用