K3s部署及研究

K3s部署及研究

  • K3s和K8s详解
      • 什么是 Kubernetes (K8s)?
      • 什么是 K3s?
      • 对比 K8s 和 K3s
      • 举个例子
        • 1、备份系统自带yum源配置文件
        • 2、进入 /etc/yum.repos.d
        • 3、删除文件
        • 4、设置
        • 5、缓存
      • 查看集群是否正常
    • 安装K3S Node节点
      • 查看主节点token
        • 获取主节点服务地址
      • 添加node节点
      • 查看节点状态
    • 安装Kuboard面板
      • 下载yaml文件
      • 安装面板

K3s和K8s详解

什么是 Kubernetes (K8s)?

Kubernetes(简称 K8s)是一个开源的容器编排平台。它用于管理容器化应用的自动部署、扩展和操作。Kubernetes 能帮助开发者和运维人员简化应用的管理,保证应用高可用、易扩展和稳定运行。

通俗来说,可以把 Kubernetes 想象成一个工厂的自动化生产线:

  • 容器 就像工厂里的产品(比如一个应用或服务)。
  • Kubernetes 就是管理和协调这些产品生产的自动化系统。它负责确保每个产品都按照标准生产,及时处理故障,按需扩展生产量,以及将产品送到合适的位置。

什么是 K3s?

K3s 是一种轻量级的 Kubernetes 发行版,由 Rancher Labs 开发。它针对资源有限的环境进行了优化,比如物联网设备、边缘计算设备、小型服务器等。

通俗来说,可以把 K3s 想象成一个简化版的 Kubernetes:

  • K3s 就是缩减和优化后的 Kubernetes,专门用于小型或资源受限的环境。
  • 更轻量、更简单:K3s 通过去除不必要的功能和组件,使得安装和运行更加轻便和高效。
  • 一键安装:K3s 的安装过程非常简单,甚至可以在单个命令中完成。

对比 K8s 和 K3s

  1. 安装和配置

    • K8s:通常需要较多的配置和设置,适用于企业级大规模应用。
    • K3s:一键安装,配置简单,非常适合初学者和小规模应用。
  2. 资源消耗

    • K8s:较高的资源消耗,适用于拥有充足资源的大型数据中心。
    • K3s:资源消耗少,适用于资源受限的环境,如物联网设备、边缘计算节点等。
  3. 功能

    • K8s:功能齐全,支持各种复杂的场景和需求。
    • K3s:保留了核心功能,去除了某些高级功能,以简化和优化性能。
  4. 应用场景

    • K8s:适用于需要管理大量容器化应用的大型企业和复杂场景。
    • K3s:适用于中小型项目、开发测试环境、边缘计算、物联网等。

举个例子

  • 如果你是一家大型企业,需要管理数百个应用,保证它们的高可用性和可扩展性,那么 Kubernetes(K8s)是你的最佳选择。
  • 如果你是一名开发者,想要在家里的树莓派上运行一些简单的容器化应用,或者在资源有限的设备上进行开发测试,那么 K3s 会更加适合你。

总之,Kubernetes 是一个功能强大的容器编排工具,而 K3s 则是其简化和优化的版本,适用于特定的资源受限场景。

1.准备两台CentOS7主机

在这里插入图片描述
在这里插入图片描述

一台为172.21.12.176在这里插入图片描述,一台为172.21.12.135在这里插入图片描述

2.准备安装环境

2.1安装系统环境:操作系统初始化配置(所有节点)

# 2).关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld# 3).关闭SeLinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 4)设置主机名
hostnamectl set-hostname <hostname># 5)修改hosts文件
cat >> /etc/hosts << EOF
172.21.12.176 k3s-node1
172.21.12.135 k3s-node2
EOF# 6)修改resolv.conf,解决域名解析失败的问题
cat >> /etc/resolv.conf << EOF
nameserver 8.8.8.8
nameserver 114.114.114.114
EOF# 7).配置yum源
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 8)同步时间
yum install ntpdate -y
ntpdate time.windows.com

注意:

1)如果安装yum源时报错:

已加载插件:fastestmirror,langpacksLoading mirror speeds from cached hostfileCould not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was14:curl#6 -“Could not resolve host: mirrorlist.centos.org;未知的错误”
在这里插入图片描述
原因:yum镜像源的问题,更换镜像源即可,如若这步不成功,则卸载yum重装即可。
如果还是不行则是镜像源的问题,修改yum的镜像源地址:

1、备份系统自带yum源配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、进入 /etc/yum.repos.d
cd /etc/yum.repos.d
3、删除文件
rm -f *.repo
4、设置
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
5、缓存
yum clean all
yum makecache

如下图成功。
在这里插入图片描述
如果运行卸载yum install -y yum-utils指令不成功则重新安装。

  1. 查看已安装的yum
rpm -qa|grep yum
  1. 删除已有的yum
rpm -aq|grep yum|xargs rpm -e --nodeps
  1. 下载以下安装包
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm

img

如果找不到以上版本,可以到 https://mirrors.aliyun.com/centos/7/os/x86_64/Packages下载最新版本

在这里插入图片描述

下载完成之后安装

rpm -ivh python-2.7.5-89.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm --nodeps --force
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm --nodeps --force
rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm --nodeps --force

在这里插入图片描述
完成,重新使用yum命令即可。

2.安装docker

1)安装必要的依赖项

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2)添加Docker稳定版仓库

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3)安装Docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

4)启动Docker服务

sudo systemctl start docker

5)设置Docker开机启动

sudo systemctl enable docker

Docker配置国内阿里镜像源,第一个https://jp8hrgkf.mirror.aliyuncs.com是我阿里账号下的个人镜像,可以自行百度怎么替换成自己的。

vi /etc/docker/daemon.json
{"registry-mirrors": ["https://jp8hrgkf.mirror.aliyuncs.com","https://dockerhub.azk8s.cn","https://reg-mirror.qiniu.com"],"insecure-registries": [],"exec-opts": ["native.cgroupdriver=systemd"]
}

重启docker

systemctl daemon-reload && systemctl restart docker;

安装容器(所有节点)
安装 Containerd

yum install containerd -y
systemctl start containerd && systemctl enable containerd

部署 K3S Server
部署

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

在这里插入图片描述

执行kubectl get nodes

kubectl get nodes
# 相关命令
systemctl status k3s # 查看服务状态
systemctl stop k3s # 停止服务
systemctl start k3s # 启动服务
systemctl restart k3s # 重新启动服务
k3s-uninstall.sh # 卸载服务

如果执行kubectl get nodes报错

cat <<EOF >> /root/.bashrc
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
EOFsource /root/.bashrc# 如果还不行
mkdir .kube/config
cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config

修改ip为主机的ip:172.21.12.176

vim etc/rancher/k3s/k3s.yaml

在这里插入图片描述

配置环境变量

vim /etc/profile
# k3s
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
export K3S_NETWORK_INTERFACE=enp0s3

在这里插入图片描述

查看集群是否正常

watch kubectl get node -o wide

在这里插入图片描述

检查是否正常安装

k3s check-config

调整启动参数

vim /etc/default/grub

添加 user_namespace.enable=1 参数

原始值

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

修改后

GRUB_CMDLINE_LINUX="user_namespace.enable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

在这里插入图片描述

安装K3S Node节点

查看主节点token

cat /var/lib/rancher/k3s/server/node-tokenK10e2075a391292492ce3b260dc5d5e8e6a4ac3f8aa2cc2bb8b2b85eea3cc78c356::server:d65b7835c0af6bfac2cbd585b8d20ff7

在这里插入图片描述

查看k3s版本

在这里插入图片描述

获取主节点服务地址
kubectl cluster-info

在这里插入图片描述

获取服务地址,用于后续工作节点连接使用。

添加node节点

172.21.12.135机器上执行加入节点

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--docker" INSTALL_K3S_VERSION=v1.29.6+k3s2 K3S_URL=https://172.21.12.176:6443 K3S_TOKEN=K10e2075a391292492ce3b260dc5d5e8e6a4ac3f8aa2cc2bb8b2b85eea3cc78c356::server:d65b7835c0af6bfac2cbd585b8d20ff7 sh -

在这里插入图片描述

# 相关命令
systemctl status k3s # 查看服务状态
systemctl stop k3s # 停止服务
systemctl start k3s # 启动服务
systemctl restart k3s # 重新启动服务
k3s-agent-uninstall.sh # agent 节点卸载

出现错误

[INFO]  systemd: Starting k3s-agent
Job for k3s-agent.service failed because the control process exited with error code. See "systemctl status k3s-agent.service" and "journalctl -xe" for details.
# 配置kubectl配置文件
# node节点
mkdir ~/.kube
scp root@172.21.12.176:/etc/rancher/k3s/k3s.yaml ~/.kube/config
sed -i s'/127.0.0.1/172.21.12.176/' ~/.kube/config

在这里插入图片描述

在这里插入图片描述

vi /etc/rancher/k3s/k3s.yaml

再次在客户端节点执行kubectl get nodes出现错误

couldn't get current server API group list: Get "https://172.21.12.176:6443/api?timeout=32s": tls: failed to verify certificate: x509: certificate signed by unknown authority
Unable to connect to the server: tls: failed to verify certificate: x509: certificate signed by unknown authority

在这里插入图片描述

实在不行如果在主机没获得,在k3s的软件安装包下执行

在这里插入图片描述

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --token K10e2075a391292492ce3b260dc5d5e8e6a4ac3f8aa2cc2bb8b2b85eea3cc78c356::server:d65b7835c0af6bfac2cbd585b8d20ff7 --server https://172.21.12.176:6443' K3S_DATASTORE_ENDPOINT='mysql://root:123456@tcp(172.21.12.176:3306)/k3s' ./install.sh

在这里插入图片描述

最后在主节点上查看

在这里插入图片描述

查看节点状态

在主节点执行

watch kubectl get node -o wide

在这里插入图片描述

安装Kuboard面板

在主节点上安装

下载yaml文件

wget --no-check-certificate https://addons.kuboard.cn/kuboard/kuboard-v3.yaml
1

在这里插入图片描述

安装面板

kubectl apply -f kuboard-v3.yaml
watch kubectl get pods -n kuboard -o wide

在这里插入图片描述

或者运行:

sudo docker run -d \--restart=unless-stopped \--name=kuboard \-p 80:80/tcp \-p 10081:10081/udp \-p 10081:10081/tcp \-e KUBOARD_ENDPOINT="http://172.21.12.176:80" \-e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \-v /root/kuboard-data:/data \eipwork/kuboard:v3.3.0.3

在浏览器中打开链接 “http://172.21.12.176:80”
输入初始用户名和密码,并登录
用户名: admin
密码: Kuboard123

http://172.21.12.176/sso/auth/default?req=okvbp7tprgylrqqn2gorm4hdp
在这里插入图片描述

kuboard官网

https://kuboard.cn/install/v3-upgrade.html#%E5%A6%82%E6%9E%9C%E4%BB%A5-docker-run-%E8%BF%90%E8%A1%8C-kuboard
在这里插入图片描述

安装教程:https://kuboard.cn/learning/

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

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

相关文章

python—selenium爬虫

文章目录 Selenium与Requests对比一、工作原理二、功能特点三、性能表现 下载对应驱动1.首先我们需要打开edge浏览器&#xff0c;打开设置&#xff0c;找到“关于Microsoft Edge”&#xff0c;点击进入查看浏览器版本。2.查找版本之后&#xff0c;搜索edge驱动下载&#xff0c;…

群管机器人官网源码

一款非常好看的群管机器人html官网源码 搭建教程&#xff1a; 域名解析绑定 源码文件上传解压 访问域名即可 演示图片&#xff1a; 群管机器人官网源码下载&#xff1a;客户端下载 - 红客网络编程与渗透技术 原文链接&#xff1a; 群管机器人官网源码

STM32CUBEIDE FreeRTOS操作教程(一):LED闪灯

STM32CUBEIDE FreeRTOS操作教程&#xff08;一&#xff09;&#xff1a;LED闪灯 STM32CUBEIDE(不是STM32CUBEMX)开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开…

PCB工艺边设计准则

在PCB设计时&#xff0c;通常会在电路板的边缘预留一定的空间&#xff0c;这部分空间被称为工艺边。它有助于在生产过程中确保电路板的尺寸和形状的准确性。以使得组装时更加顺畅、便捷。而工艺边的加工&#xff0c;使得线路板上的元件可以精准地与设备对接&#xff0c;从而提高…

springboot系列十一:Thymeleaf

文章目录 官方文档基本介绍Thymeleaf机制说明Thymeleaf语法表达式运算符th属性迭代条件运算使用Thymeleaf th属性需要注意点 Thymeleaf综合案例需求说明思路分析代码实现 作业布置 官方文档 在线文档: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 离线…

DNS域名管理系统、搭建DNS服务

1.DNS概述 1.DNS&#xff08;domain name system &#xff09; 域名管理系统 域名&#xff1a; 由特定的格式组成&#xff0c;⽤来表示互联⽹中某⼀台计算机或者计算机组的名称&#xff0c;能够使⼈更⽅便的访问互联⽹&#xff0c;⽽不⽤记住能够被机器直接读取的IP地址。 计算…

C++:模板(函数模板,类模板)

目录 泛型编程 函数模板 函数模板格式 函数模板的原理 函数模板的实例化 类模板 类模板格式 类模板实例化 模板分为函数模板和类模板 在C中使用模板可以让我们实现泛型编程 泛型编程 如果我们需要实现一个加法add函数&#xff0c;那么会怎么实现呢&#xff1f; int…

python 闭包、装饰器

一、闭包&#xff1a; 1. 外部函数嵌套内部函数 2. 外部函数返回内部函数 3.内部函数可以访问外部函数局部变量 闭包&#xff08;Closure&#xff09;是指在一个函数内部定义的函数&#xff0c;并且内部函数可以访问外部函数的局部变量&#xff0c;即使外部函数已经执行…

重磅 - Github 上免费大屏来啦,教你快速搭建积木报表

先看看大屏效果 JimuReport积木报表的集成版本&#xff0c;已经提供了免费数据可视化设计工具。 支持丰富的数据源连接&#xff0c;能够通过拖拉拽方式快速制作图表和门户设计&#xff1b;目前支持多种图表类型&#xff1a;柱形图、折线图、散点图、饼图、环形图、面积图、漏斗…

# Redis 入门到精通(七)-- redis 删除策略

Redis 入门到精通&#xff08;七&#xff09;-- redis 删除策略 一、redis 删除策略–过期数据的概念 1、Redis 中的数据特征 Redis 是一种内存级数据库&#xff0c;所有数据均存放在内存中&#xff0c;内存中的数据可以通过TTL指令获取其状态。 XX &#xff1a;具有时效性…

Linux下git入门操作

0.创建仓库 可以按这个配置来&#xff0c;.gitignore中存放了上传时忽略的文件类型后缀。 1.clone仓库 在gitee上创建好仓库&#xff0c;点击克隆/下载&#xff0c; 复制地址fyehong/Linux_notes 。 在所需的文件夹中放置仓库。比如我在文件夹lesson9下存储仓库。就在less…

C# 与C++ cli

cli CLI&#xff08;Command Line Interface&#xff09;是一种通过命令行界面与计算机系统进行交互的方式。它提供了一种以文本形式输入命令和接收系统输出的方法&#xff0c;用于执行各种操作和管理计算机系统。以下是CLI的详细解释&#xff1a; 一、定义与基本概念 定义&…

Python酷库之旅-第三方库Pandas(041)

目录 一、用法精讲 136、pandas.Series.ne方法 136-1、语法 136-2、参数 136-3、功能 136-4、返回值 136-5、说明 136-6、用法 136-6-1、数据准备 136-6-2、代码示例 136-6-3、结果输出 137、pandas.Series.eq方法 137-1、语法 137-2、参数 137-3、功能 137-4、…

医疗信息化之PACS系统源码,C#医学影像系统源码,成熟在用稳定运中

C#语言开发的一套PACS系统源码&#xff0c;C/S架构&#xff0c;成熟稳定&#xff0c;多家大型综合医院应用案例。自主版权&#xff0c;支持二次开发&#xff0c;授权后可商用。 医学影像存储与传输系统是针对数据库存储、传输服务、图像处理进行了优化,存储更安全、传输更稳定、…

Ethernet/IP转CC-Link IEFB协议转化网关(通讯解决方案)

怎么样把Ethernet/IP和CC-Link IEFB网络通讯连接起来呢?最近有很多朋友咨询这个问题&#xff0c;在这里统一为大家详细说明一下。其实有一个设备可以很轻松地解决这个问题&#xff0c;名为YC-EIP-TCP&#xff0c;下面是详细信息。 一&#xff0c;设备主要功能 1、YC-EIP-CCL…

ios 15-16手机绕过ssl验证(抓取app上的https包)

绕过ssl验证的基本流程 前提概要&#xff1a;为什么你的charles抓不了https包 ios 越狱ios rootful安装ios 越狱商店sileo安装substitute越狱商店安装SSL Kill Switch3 全流程坑点巨多&#xff0c;博主亲身踩坑&#xff0c;务必按着步骤来 准备工作 type b to c 的数据线苹果…

【ffmpeg命令入门】实现画中画

文章目录 前言画中画是什么画中画的外观描述效果展示为什么要用画中画应用场景示例 使用FFmpeg添加画中画示例命令参数解释调整嵌入视频的位置调整嵌入视频的大小处理音频 总结 前言 FFmpeg 是一款强大的多媒体处理工具&#xff0c;广泛用于音视频的录制、转换和流处理。它不仅…

Dockerfile制作部署wordpress-6.6

目录 一. 环境准备 二. 准备对应的配置文件 三. 编写Dockerfile 四. 构建镜像 五. 配置MySQL 六. 安装wordpress 七. 扩展 一. 环境准备 localhost192.168.226.25 rocky_linux9.4 Docker version 27.0.3 关闭防火墙和selinux&#xff0c;进行时间同步。 安装docker…

IDEA打开终端报错Cannot open Local Terminal命令行功能

idea项目中不能打开命令行功能 IDEA打开终端报错Cannot open Local Terminal 意思是打开命令行发生错误 idea上配置shell终端&#xff0c;命令行页面 打开右上角 File–> setting–> Tools–> 终端 找到Shell 路径 文本框中原本是是powershell.exe&#xff0c;现在…

SpringSecurity如何正确的设置白名单

在SpringSecurity中,往往需要对部分接口白名单访问,而大部分在使用Security中就有一个误区,那就是免鉴权访问和白名单的区别。 大部分的Security文章包括官方文档给出免鉴权访问都是使用.permitAll()去对相应路径进行免鉴权访问,但实际上这仅仅只表示该资源不需要相应的权限访问…