分类 Paas 下的文章

DeepSeek 作为一款开源大语言模型,凭借对中文语境的良好适配、适中的参数规模,它既能满足日常文本生成、行业分析等需求,又无需过高的硬件配置。成为不少用户本地部署的优选。这里分享一下部署deepseek的硬件以及工具,使新手用户快速快速部署成功。

一、deepseek本地部署的硬件需求

1、显卡(GPU)

  • 入门级(1.5B-7B模型)NVIDIA RTX 3060(8GB显存)或更高版本,如RTX 3050(6GB显存)可作为最低配置。

  • 专业级(14B-32B模型):推荐RTX 4090(24GB显存)或双卡RTX 3090(24GB显存×2),以支持模型分片加载。

  • 企业级(70B及以上模型):需多卡并行,如4块NVIDIA A100 80GB(通过NVLINK互联)或H100专业级GPU。

2、内存(RAM)

  • 入门级:至少16GB DDR4,推荐32GB以提升系统稳定性。

  • 专业级:32GB DDR5或更高,确保与显存容量匹配(通常为显存的1.5倍以上)。

  • 企业级:128GB ECC DDR5,满足高并发推理或模型微调需求。

3、存储

  • 入门级:NVMe SSD≥20GB,用于存储模型文件和临时数据。

  • 专业级:PCIe 4.0 SSD≥70GB,支持快速加载大型模型。

  • 企业级:4TB RAID阵列或分布式存储(如Ceph/Gluster),保障数据安全和高吞吐量。

4、处理器(CPU)

  • 入门级:Intel i5或更高版本,支持AVX指令集。

  • 专业级:未明确指定具体型号,但需满足多线程处理需求(如AMD Ryzen 9或Intel Core i9系列)。

  • 企业级:AMD EPYC 7763(64核)或Intel Xeon Platinum 8490H(128核),支持高并发任务。

5、其他硬件

  • 电源:企业级配置需≥2000W工业级冗余电源+UPS,确保稳定供电。

  • 网络:企业级需万兆以太网或InfiniBand HDR,满足低延迟高吞吐需求。

二、本地部署的工具

DS本地部署大师是一款专为简化开源大模型部署设计的软件,对 DeepSeek 的适配性尤为优化,软件支持多种主流大模型,包括DeepSeek全系列模型以及豆包、文心一言等国产模型,覆盖了从文本生成到代码调试等多种应用场景,还解决 “版本不兼容”“缺失组件” 等常见问题,让 DeepSeek 部署从 “技术活” 变为 “点击操作”。

进入软件,可以看到软件根据电脑配置推荐的模型,用户可以直接下载安装该模型,也可以点击【下载模型】进入模型库,根据自己的需求和设备配置来选择适合的模型下载。

三、本地部署后的使用效果

进入软件后,可以在下方看到刚刚部署成功的模型,另外软件也自带豆包、文心一言等常见的模型,用户都可以直接使用。

操作也很简单,只需要在首页选择需要的模型,在文本框中输入问题,随后点击【发送】按钮,即可快速生成高质量的回答。

也可以使用文心一言来生成问题,每种模型生成的内容不仅相同,用户如果有拿不准或者想要更多的灵感方法的话,可以多使用几个模型生成不同的回答,以完善自己的内容。

如果对生成的内容感到不满意,还可以拉倒生成的内容底部,点击【重新回答】,让它再次生成内容,还可以意见复制全部内容,非常实用。


以上就是今天分享的内容了,感兴趣的朋友记得点赞收藏一下~


欢迎来到 Websoft9 文档。

在这里,您可以访问 Websoft9 的完整文档,掌握云原生架构的技能,获得主流开源应用的使用知识。

关于

Websoft9 是一个以应用为中心的开源 PaaS 平台,也是云原生的应用商店。Websoft9 提供的 Web 的控制台,可以很方便一键部署数百个开源企业应用,满足企业数字化的大部分需求。

它简单易用,界面友好,无需任何技术知识。Websoft9 将企业部署软件的时间由 1-2 天缩短到 1 分钟。

从此,企业部署开源系统的工作不再是专业 IT 人员的专属技能,企业的 CEO 以及业务部门的管理人员,都可以自行运行所需的应用。

毫无疑问,Websoft9 是一个值得尝试的企业生产力工具,它的降本增效价值完全可见。

导航

章节描述
安装安装以及安装后的账号密码获取、HTTPS 配置、域名绑定等指引
应用中心100+ 个开源应用的快速入门和配置指南
解决方案基于多个开源应用的集成化解决方案,满足行业和业务场景需求
购买与支持付费使用 Websoft9 产品,获得企业级商业支持服务
用户指南应用生命周期管理、数据库管理以及云资源管理
管理员指南升级、备份等运维指南,数据、存储和安全配置指南
故障问题常见的技术技术和故障问题

热门话题

迁移至 Websoft9

企业数字化的成功离不开灵活的使用各种开源技术和成熟的软件产品。

如果您的 IT 团队无法进行有效的技术支持,订阅 Websoft9 的服务,享受商业级支持给您带来的效率提升和保障吧。


 如果你已经对内部工具的概念非常熟悉了,请直接点击目录跳转 > 最佳构建内部工具的开源项目

内部工具有什么好处?

内部工具在提升公司业务流程和运营效率方面发挥着关键作用。

  • 提升效率降低成本: 内部工具简化了流程,减少了人工干预的需求,最小化了错误。

  • 增强决策与洞察力: 内部工具使企业能够更高效地收集和分析数据以实时获得数据洞察,增强决策能力。

  • 提高员工生产力: 通过减少在手工任务上的时间,员工可以专注于更高价值的活动。

  • 提升客户满意度: 更快更准确的流程带来了更高的客户满意度。

投资正确的内部工具可以显著提高运营效率、降低成本和整体业务表现。

阅读更多:GitHub Star 数量前 11 的开源内部工具

哪些是内部工具?

当下的企业一定会使用一些内部工具来提升效率。这些工具可以在多种业务功能中发挥作用,如数据管理、项目管理、客户关系管理(CRM)等。以下是一些常见的内部工具类型:

  • 项目管理工具(PM): 如 Asana 、 Trello 和 JIRA ,帮助团队规划、执行和监控项目进度。

  • 客户关系管理系统(CRM): 如 Salesforce 和 HubSpot ,用于管理与客户的互动,提升销售和营销效率。

  • 文档和内容管理系统(DMS/CMS): 如 Confluence 和 SharePoint ,提供一个中心化平台来存储、共享和编辑文件和其他内容。

  • 人力资源管理系统(HRMS): 如 Workday 和 BambooHR ,管理员工信息、招聘、绩效评估和薪酬。

  • 财务和会计软件(ERP): 如 QuickBooks 和 Xero ,帮助企业管理账目和财务报表。

  • 数据分析和报告工具(BI): 如 Tableau 和 Power BI ,用于数据可视化和决策支持。

 阅读更多:在数小时内构建 CRM:你需要了解的顶级无代码/低代码工具

最佳构建内部工具的开源项目

市面上的内部工具众多,其中有许多是云产品。云产品虽然使用方便但是会带来两个问题:

  1. 随着用户增加,费用昂贵;

  2. 数据不可控。

所以今天的文章将深入盘点 GitHub 上最佳用于构建内部工具的开源项目。开源版本免费可用,可以满足中小型创业企业、教育机构或非营利性组织的大部分需求。同时自部署内部工具,使得企业数据完全可控。

这份列表将只分享 GitHub 上有一万个以上收藏的内部工具项目

希望这份列表能帮助你更好、更快、更便宜的完成内部工具的构建!

工具一:NocoBase

基础信息

无代码 / 低代码

GitHub 项目开始时间:2021年

相关资源:官网 |GitHub | 文档

 Star 数:11.2K

NocoBase 是一个专为构建内部工具、业务应用和企业解决方案而设计的开源无代码/低代码平台。NocoBase 使企业能够快速部署定制化的业务应用,无需投入大量的时间和资金进行软件开发。

举个具体的使用场景,假设你的公司需要快速构建一个定制的库存管理系统来追踪不同仓库的库存情况。

在 NocoBase 中,首先设置所需的数据库、表和字段,定义库存项如产品名称、数量和仓库位置等关键属性。接着,利用其所见即所得的 UI 设计界面,通过拖放表格、图表和表单等区块,直接构建与数据模型相连的直观用户界面。最后,配置自动化流程,例如当库存低于安全水平时自动触发补货请求,这些流程通过 NocoBase 的工作流实现,确保业务流程的自动化和减少人工干预。

NocoBase 配置页面:

Setup Page.png

Setup Page2.png

NocoBase 数据源接入:

NocoBase Data Source Connection.png

客户生命周期管理:

Customer Lifecycle Management.png

优势

  • 数据模型驱动:与许多直接在用户界面中创建数据结构的无代码产品不同,NocoBase 允许在用户界面之外,深入系统后端进行复杂的数据结构设计,提高了应用的灵活性和扩展性。这种方法更适合需要处理复杂业务逻辑的系统。

  • 插件式架构:采用微内核和插件架构设计,所有功能均通过插件提供,用户可以根据需求自定义和扩展系统功能。

  • 工作流自动化:内置工作流控制系统,通过自动化数据流和业务流程编排,实现高效的业务操作和管理。

  • 企业级安全特性:提供高级的用户认证和权限管理功能,确保数据和应用的安全,适合需要严格数据保护的企业环境。

适合用于

内部工具类型是否适用
项目管理工具
客户关系管理系统
文档和内容管理系统
人力资源管理系统
财务和会计软件
数据分析和报告工具

如何开始使用

NocoBase 支持三种安装方式:Docker 安装(推荐)create-nocobase-app 安装Git 源码安装

费用

大多数小企业和团队使用 NocoBase 的免费的社区版即可满足需求。当你的企业在安全性、技术架构和技术支持等方面有更高要求时,可以再选择商业版本。

社区版:$0

基础版:$800 / 永久授权

专业版:$8000 / 永久授权

企业版:$16000 / 永久授权

上手实践:NocoBase 实战教程 —— 任务管理系统

工具二:Budibase

基础信息

低代码

GitHub 项目开始时间:2019年

相关资源:官网 |GitHub | 文档

Star 数:21.4K

Budibase 是一个高效的低代码平台,专为快速构建和管理内部工具而设计。它支持从简单的表单和数据库应用到复杂的业务流程管理系统,使非技术用户也能轻松创建自定义应用。

Budibase 提供了一系列预制组件和设计工具,简化了用户界面的构建过程,同时保留了丰富的自定义选项,以适应特定的设计需求。

Budibase 特别适合需要快速部署、易于维护,并且成本效益高的企业环境。无论是创建内部 CRM 系统,还是开发复杂的资源管理工具,Budibase 都能提供强大的支持和灵活的解决方案,帮助企业提升运营效率并优化工作流程。

Budibase 配置页面:

Budibase Setup Page.png

联系人列表:

Contact List.png

数据细节展示-弹窗:

Data Detail Display - Pop-up.png

优势

  • 数据支持:Budibase 支持多种数据库和技术,如 PostgreSQL、MySQL、MSSQL、MongoDB 和 REST API。

  • 提供多种模版:Budibase 提供了丰富的免费模版供用户免费使用

  • 集成与自动化:提供强大的集成选项和自动化工具,简化流程和提高效率。

适合用于

内部工具类型是否适用
项目管理工具
客户关系管理系统
文档和内容管理系统
人力资源管理系统
财务和会计软件
数据分析和报告工具

如何开始使用

可以直接使用 Budibase Cloud 或在自己的自托管环境上运行 Budibase。

教程:https://vimeo.com/showcase/budibase-get-started

费用

免费版:$0

高级版:每个应用程序创建者 $600/年 + 每个应用程序用户 $60/年

企业版:根据具体项目定价

工具三:Refine

基础信息

React 框架

GitHub 项目开始时间:2021 年

相关资源:官网 |GitHub | 文档

Star 数:26.4K

Refine 是一个专为构建内部工具而设计的 React 框架,它提供了丰富的预构建组件和强大的数据处理能力,使得开发团队能够快速创建管理后台、数据仪表板和各种定制化的企业内部系统。

通过支持多种 UI 框架、灵活的权限管理和可扩展的架构,Refine 让企业能够高效地响应内部需求,打造符合特定业务流程的工具,从而提升运营效率和数据可视化能力,是 IT 部门快速交付高质量内部应用的理想选择。

需要注意的是,Refine 和其他低代码/无代码工具不同的是其本身并不提供直接的可视化编辑功能,它主要用于构建管理面板的框架,需要通过编写代码来创建和修改页面。

内容管理界面:

Content Management Interface.png

内容详情页面:

Content Detail Page.png

优势

  • 纯 React 代码:Refine 是一个基于 React 的框架,专为 CRUD(创建、读取、更新、删除)密集型的 Web 应用设计,非常适合构建内部工具、管理面板、仪表板和 B2B 应用。

  • 允许高度自定义:它提供了一个无头(headless)架构,允许高度自定义应用,将业务逻辑与用户界面和路由解耦,这使得它可以灵活地与各种自定义设计或 UI 框架集成。

  • 数据支持灵活:支持多种数据源和认证机制,使其可以灵活地适应复杂的企业环境和需求。

适合用于

内部工具类型是否适用
项目管理工具
客户关系管理系统
文档和内容管理系统
人力资源管理系统
财务和会计软件
数据分析和报告工具

如何开始使用

Refine 可在任何可运行 React 的环境中运行。

教程:https://refine.dev/docs/getting-started/quickstart/

费用

社区版:0 $

企业版:根据具体项目定价

阅读更多:开源 CRUD 开发工具:NocoBase 与 Refine 对比

工具四:ToolJet

基础信息

低代码

GitHub 项目开始时间:2021 年

相关资源:官网 |GitHub | 文档

Star 数:28.3K

ToolJet 是一款开源的低代码开发平台,专为快速构建和部署内部工具而设计。ToolJet 通过其直观的拖放界面,使非技术用户能够轻松创建复杂的响应式前端应用,大大简化了开发过程和时间。

ToolJet 的一个显著优势是其协作功能,支持多用户同时在线编辑和构建应用,这对于团队合作和项目管理极为有利。此外,ToolJet 提供了自托管和云服务解决方案,满足企业在数据安全和应用部署上的不同需求。企业还可以利用 ToolJet 执行自定义的 JavaScript 和 Python 脚本,为应用添加复杂的业务逻辑和数据处理功能。

ToolJet 配置页面:

ToolJet Setup Page

客户列表页面:

Contact List

数据接入页面

Data Source Connection.png

优势

  • 丰富的数据源接入:支持多种数据库(如PostgreSQL、MongoDB等)、API端点、SaaS工具(如Stripe、Slack等)以及对象存储服务。

  • 多用户协作编辑:支持多用户同时在线编辑应用,提高了团队协作效率。

  • 自托管与云服务:提供自托管选项和云服务解决方案,以满足不同企业的部署需求。

  • 代码执行:可以在应用中执行自定义的JavaScript和Python代码片段,增加了应用的灵活性。

适合用于

内部工具类型是否适用
项目管理工具
客户关系管理系统
文档和内容管理系统
人力资源管理系统
财务和会计软件
数据分析和报告工具

如何开始使用

使用 ToolJet 云服务,同时 ToolJet 也支持多种部署方式。

教程:https://docs.tooljet.com/docs/setup/

费用

基础版:0 $

商业版:每个应用程序创建者 312 $/年+ 每个应用程序用户 96 $/年

企业版:根据具体项目定价

工具五:Appsimth

基础信息

低代码

GitHub 项目开始时间:2020 年

相关资源:官网 |GitHub | 文档

Star 数:32.5K

Appsmith 和 ToolJet 在很多方面都非常相似,它们都是用于构建内部工具和管理面板的开源低代码平台。这两个工具都提供了拖放式的界面、支持页面代码开发、都支持广泛的数据库和 API 集成、均支持云服务和自托管部署选项。

除此之外,Appsmith 特别强调其“即时部署”功能,这意味着用户可以在构建应用的过程中,即时查看和测试改动的效果,极大地提升了开发的效率和体验。此外,Appsmith提供了一个高度可定制的界面,允许用户通过 JavaScript增强应用的功能性,满足更复杂的业务逻辑需求。其丰富的组件库不仅包括基本的表格和表单,还包括图表、列表和许多其他高级组件,支持复杂数据的可视化和操作。

Appsmith 配置界面:

Appsmith Setup Page.png

数据接入页面:

Data Source Connection.png

使用者视角

User's Perspective.png

优势

  • 丰富的集成选项:Appsmith 支持与 25 种以上的数据库以及任何 API 的集成,允许开发者连接和操作各种数据源,包括但不限于 PostgreSQL、MongoDB、Elasticsearch 等。

  • 拖放界面:Appsmith 提供直观的拖放界面,使非技术用户也能轻松创建和配置管理面板和仪表板,极大地简化了应用开发和管理过程。

  • 灵活的部署选项:Appsmith 支持多种部署方式,包括在云平台上或通过 Docker 和 Kubernetes 进行自托管,满足不同企业的安全性和可扩展性需求。

适合用于

内部工具类型是否适用
项目管理工具
客户关系管理系统
文档和内容管理系统
人力资源管理系统
财务和会计软件
数据分析和报告工具

如何开始使用

可以直接使用 Appsmith Cloud 或在自己的自托管环境上运行 Appsmith。

自托管教程:https://docs.appsmith.com/getting-started/setup

费用

免费版:0 $

商业版:480 $/年(提供50天使用时长)

企业版:根据具体项目定价


一、安装docker

参考:https://www.cnblogs.com/uestc2007/p/15598527.html

二、安装rancher 

1、Rancher概述

  • rancher官方文档

  • Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。

  • Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。

  • Rancher 基于 Kubernetes 添加了新的功能,包括统一所有集群的身份验证和 RBAC,让系统管理员从一个位置控制全部集群的访问。

  • 此外,Rancher 可以为集群和资源提供更精细的监控和告警,将日志发送到外部提供商,并通过应用商店(Application Catalog)直接集成 Helm。如果你拥有外部 CI/CD 系统,你可以将其与 Rancher 对接。没有的话,你也可以使用 Rancher 提供的 Fleet 自动部署和升级工作负载。

  • Rancher 是一个 全栈式 的 Kubernetes 容器管理平台,为你提供在任何地方都能成功运行 Kubernetes 的工具。

2、安装环境

软件版本
cnetos720.04.2
docker20.10.6

 3、环境初始化

复制代码

1、关闭swap分区
sudo swapoff -a

#验证
free -m2、 确保时区,时间正确
sudo timedatectl3、确保虚机不会自动suspend
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target4、加载内核模块br_netfilter,并调整参数
#执行
sudo modprobe br_netfilter

#确认已加载
lsmod | grep br_netfilter 


#调整内核参数,修改 /etc/sysctl.conf
#将桥接的IPv4流量传递到iptables的链

vim /etc/sysctl.conf

cat > /etc/sysctl.conf << EFO
net.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EFO

#使配置生效,执行:
sudo sysctl --system5、设置rp_filter的值
#执行
sudo vi /etc/sysctl.d/10-network-security.conf

#将文件中如下两个参数的值从2修改为1
net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1#使配置生效,执行:
sudo sysctl --system

复制代码

4、创建rancher挂载目录

复制代码

-p /opt/data/-p /opt/data/-p /opt/data/rancher_auditlog

复制代码

 5、下载安全证书(如果有ssl证书请使用)Apache 下载证书

  对应关系(阿里云ssl证书):public.crt-->cert.pem  xxxx.com.key->key.pem  chain.crt-->cacerts.pem

复制代码

docker run -d --restart=unless--p : -p :---v /opt/data/rancher_data://lib/-v /opt/data/rancher_auditlog://log/-e AUDIT_LEVEL=/rancher:v2.

复制代码

7、通过命令查看rancher是否启动

查看STATUS 如果1分钟内,没有出现重启之类的问题,那么这个docker便已经启动成功。

 docker ps

8、访问rancher

在浏览器访问 https://IP:port即可看到效果

 9、通过命令获取密码

1、通过docker ps 获取容器iD

2、docker logs 容器id 2>&1 | grep "Bootstrap Password:"

设置密码,最少12位

至此,Rancher安装完成!

 三、使用Rancher搭建K8S集群

 3.1、导入k8s集群

如果已经存在k8s集群,可以导入已存在

3.1.1 生成kubeconfig文件(可选)

vi restore-kube-config.sh

复制代码

#!/bin/bash

help ()
{
    echo  ' ================================================================ '
    echo  ' --master-ip: 指定Master节点IP,任意一个K8S Master节点IP即可。'
    echo  ' 使用示例:bash restore-kube-config.sh --master-ip=1.1.1.1 '
    echo  ' ================================================================'}case "$1" in
    -h|--help) help; exit;;
esacif [[ $1 == '' ]];then
    help;
    exit;
fi

CMDOPTS="$*"for OPTS in $CMDOPTS;do
    key=$(echo ${OPTS} | awk -F"=" '{print $1}' )
    value=$(echo ${OPTS} | awk -F"=" '{print $2}' )    case "$key" in
        --master-ip) K8S_MASTER_NODE_IP=$value ;;
    esac
done

# 获取Rancher Agent镜像
RANCHER_IMAGE=$( sudo docker images --filter=label=io.cattle.agent=true |grep 'v2.' | \
grep -v -E 'rc|alpha|<none>' | head -n 1 | awk '{print $3}' )if [ -d /opt/rke/etc/kubernetes/ssl ]; then
  K8S_SSLDIR=/opt/rke/etc/kubernetes/sslelse
  K8S_SSLDIR=/etc/kubernetes/ssl
fi

CHECK_CLUSTER_STATE_CONFIGMAP=$( sudo docker run --rm --entrypoint bash --net=host \-v $K8S_SSLDIR:/etc/kubernetes/ssl:ro $RANCHER_IMAGE -c '\if kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \-n kube-system get configmap full-cluster-state | grep full-cluster-state > /dev/null; then \
echo 'yes'; else echo 'no'; fi' )if [ $CHECK_CLUSTER_STATE_CONFIGMAP != 'yes' ]; then

  sudo docker run --rm --net=host \  --entrypoint bash \  -e K8S_MASTER_NODE_IP=$K8S_MASTER_NODE_IP \  -v $K8S_SSLDIR:/etc/kubernetes/ssl:ro \
  $RANCHER_IMAGE \  -c '\
  kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \  -n kube-system \  get secret kube-admin -o jsonpath={.data.Config} | base64 --decode | \
  sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://${K8S_MASTER_NODE_IP}:6443\"_"' > kubeconfig_admin.yaml

  if [ -s kubeconfig_admin.yaml ]; then
    echo '恢复成功,执行以下命令测试:'
    echo ''
    echo "kubectl --kubeconfig kubeconfig_admin.yaml get nodes"
  else
    echo "kubeconfig恢复失败。"
  fielse

  sudo docker run --rm --entrypoint bash --net=host \  -e K8S_MASTER_NODE_IP=$K8S_MASTER_NODE_IP \  -v $K8S_SSLDIR:/etc/kubernetes/ssl:ro \
  $RANCHER_IMAGE \  -c '\
  kubectl --kubeconfig /etc/kubernetes/ssl/kubecfg-kube-node.yaml \  -n kube-system \  get configmap full-cluster-state -o json | \
  jq -r .data.\"full-cluster-state\" | \
  jq -r .currentState.certificatesBundle.\"kube-admin\".config | \
  sed -e "/^[[:space:]]*server:/ s_:.*_: \"https://${K8S_MASTER_NODE_IP}:6443\"_"' > kubeconfig_admin.yaml

  if [ -s kubeconfig_admin.yaml ]; then
    echo '恢复成功,执行以下命令测试:'
    echo ''
    echo "kubectl --kubeconfig kubeconfig_admin.yaml get nodes"
  else
    echo "kubeconfig恢复失败。"
  fi
fi

复制代码

执行sh

sudo bash restore-kube-config.sh --master-ip=K8S Master节点IP

3.1.2点击 导入已有集群:

 选择 导入 Kubernetes 集群:

 输入集群名称:

 执行下图命令:

 3.2部署k8s

3.2.1准备开始创建 k8s

3.2.2 创建集群,下边数据默认就行

 3.2.3 在master主节点运行,选中 etcd、 Control Plane、Worker, 复制下边代码到master节点执行

3.2.4 在node节点执行,只需要选中 Worker 复制下边代码到node节点

 有多个node节点,每个节点都要执行

 3.2.5 如果之前有安装过,需要将之前安装的容器删除,并清空挂载卷目录

复制代码

rm -rf /etc/ceph \       /etc/cni \       /etc/kubernetes \       /opt/cni \       /opt/rke \       /run/secrets/kubernetes.io \       /run/calico \       /run/flannel \       /var/lib/calico \       /var/lib/etcd \       /var/lib/cni \       /var/lib/kubelet \       /var/lib/rancher/rke/log \       /var/log/containers \       /var/log/pods \       /var/run/calico

复制代码

3.2.6 查看集群是否正常

3.2.7测试集群

我们来创建一个工作负载,运行一个 nginx,看一下最终效果。进入集群,创建 Deployment ,配置好映射端口、镜像,点击创建:

名称自定义,
副本数自定义,这里定义为1个,
容器镜像,安装什么版本就写什么版本,这里安装最新版本,
端口添加,容器端口80,映射端口30080;由于rancher默认监听端口范围为30000-32767,要在此范围内。
其他地方不用修改,直接点击下方的创建。

等待安装完成,在浏览器访问 http://IP:30080, 即可看到 nginx 的欢迎页面

四 Rancher的使用

4.1 创建命名空间

创建项目:

 根据需求创建命名空间和设置资源

4.2 Secret

首先创建Harbor私库的密钥
选择 存储=> Secrets(密文) =>创建

 命名空间选择之前自己创建的,填写名称,然后选择 Custom,仓库地址就是Harbor的地址,再输入Habor的用户名和密码。

Harbor的搭建参考:https://blog.csdn.net/zhilianxian2212/article/details/127412858?spm=1001.2014.3001.5501

 4.3Deployment

4.3.1 概述一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。

你负责描述 Deployment 中的 目标状态,而 Deployment 控制器(Controller) 以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。

说明:
不要管理 Deployment 所拥有的 ReplicaSet 。 如果存在下面未覆盖的使用场景,请考虑在 Kubernetes 仓库中提出 Issue。

4.3.2 用例

以下是 Deployments 的典型用例:

  • 创建 Deployment 以将 ReplicaSet 上线。ReplicaSet 在后台创建 Pod。 检查 ReplicaSet 的上线状态,查看其是否成功。

  • 通过更新 Deployment 的 PodTemplateSpec,声明 Pod 的新状态 。 新的ReplicaSet 会被创建,Deployment 以受控速率将 Pod 从旧 ReplicaSet 迁移到新 ReplicaSet。每个新的 ReplicaSet 都会更新 Deployment 的修订版本。

  • 如果 Deployment 的当前状态不稳定,回滚到较早的Deployment 版本。 每次回滚都会更新 Deployment 的修订版本。

  • 扩大 Deployment 规模以承担更多负载。 暂停Deployment 以应用对 PodTemplateSpec 所作的多项修改, 然后恢复其执行以启动新的上线版本。

  • 使用Deployment 状态来判定上线过程是否出现停滞。

  • 清理较旧的不再需要的 ReplicaSet 。

4.3.3 创建 Deployment

4.3.3.1 使用表单编辑创建Deployment

 

4.3.3.2 使用YAML文件创建Deployment

  • YAML文件包含四个部分:**

apiVersion: 表示版本
kind: 表示资源
metadata: 表示元信息
spec: 资源规范字段

下面是具体的字段说明:

复制代码

apiVersion: apps/v1         # 指定api版本,此值必须在kubectl api-versions中
kind: Deployment            # 指定创建资源的角色/类型
metadata:                   # 资源的元数据/属性
  name: dnehsa-bizc         # 资源的名字,在同一个namespace中必须唯一  namespace: gdfw           # 部署在哪个namespace中
  labels:                   # 设定资源的标签
    app: dnehsa-bizc
spec:                       # 资源规范字段
  replicas: 1               # 声明副本数目
  revisionHistoryLimit: 10  # 保留历史版本
  selector:                 # 选择器
    matchLabels:            # 匹配标签
      app: dnehsa-bizc
  strategy:                 # 策略
    rollingUpdate:          # 滚动更新
      maxSurge: 25%         # 最大额外可以存在的副本数,可以为百分比,也可以为整数
      maxUnavailable: 25%   # 表示在更新过程中能够进入不可用状态的 Pod 的最大值,可以为百分比,也可以为整数
    type: RollingUpdate     # 滚动更新策略
  template:                 # 模版
    metadata:               # 资源的元数据/属性
      labels:               # 设定资源的标签
        app: dnehsa-bizc
    spec:                   # 资源规范字段
      containers:        - name: dnehsa-bizc   # 容器的名字
          image: 192.168.20.4:8930/library/dnehsa_bizc:v1.0  # 容器使用的镜像地址
          imagePullPolicy: Always   # 每次Pod启动拉取镜像策略,三个选择 Always、Never、IfNotPresent
          # Always,每次都检查;Never,每次都不检查(不管本地是否有);IfNotPresent,如果本地有就不检查,如果没有就拉取

          resources: # 资源管理
            limits: # 最大使用
              cpu: 300m # CPU,1核心 = 1000m
              memory: 500Mi # 内存,1G = 1000Mi
            requests:  # 容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
              cpu: 100m
              memory: 100Mi
          livenessProbe:  #存活探针器配置
            httpGet: #1.存活探针器三种方式 1.cmd命令方式进行探测 2.http 状态码方式 3.基于tcp端口探测
              path: /healthy #k8s源码中healthz 实现 https://github.com/kubernetes/kubernetes/blob/master/test/images/agnhost/liveness/server.go
              port: 32189    #应用程序监听端口
            failureThreshold: 3 #处于成功时状态时,探测操作至少连续多少次的失败才被视为检测不通过,显示为#failure属性.默认值为3,最小值为 1,存活探测情况下的放弃就意味着重新启动容器。
            initialDelaySeconds: 600 #存活性探测延迟时长,即容器启动多久之后再开始第一次探测操作,显示为delay属性.默认值为0,即容器启动后立刻便开始进行探测.
            periodSeconds: 10  #执行探测的时间间隔(单位是秒)。默认是 10 秒。最小值是 1秒,过高的频率会对Pod对象带来较大的额外开销,而过低的频率又会使得对错误的反应不及时.
            successThreshold: 1 #处于失败状态时,探测操作至少连续多少次的成功才被人为是通过检测,显示为#success属性,默认值为1,最小值也是1
            timeoutSeconds: 3 #存活性探测的超时时长,显示为timeout属性,默认值1s,最小值也是1s
          readinessProbe:  #定义就绪探测器
            failureThreshold: 3 #处于成功时状态时,探测操作至少连续多少次的失败才被视为检测不通过,显示为#failure属性.默认值为3,最小值为  就绪探测情况下的放弃 Pod 会被打上未就绪的标签.
            tcpSocket: # 1.就绪探针三种方式 1.cmd命令方式进行探测 2.http 状态码方式 3.基于tcp端口探测
              port: 32189 #应用程序监听端口
            initialDelaySeconds: 10 #执行探测的时间间隔(单位是秒)。默认是 10 秒。最小值是 1秒,过高的频率会对Pod对象带来较大的额外开销,而过低的频率又会使得对错误的反应不及时.
            periodSeconds: 10  #执行探测的时间间隔(单位是秒)。默认是 10 秒。最小值是 1秒,过高的频率会对Pod对象带来较大的额外开销,而过低的频率又会使得对错误的反应不及时
            successThreshold: 1 #处于失败状态时,探测操作至少连续多少次的成功才被人为是通过检测,显示为#success属性,默认值为1,最小值也是1
            timeoutSeconds: 3  #存活性探测的超时时长,显示为timeout属性,默认值1s,最小值也是1s
          env:  #环境变量            - name: TZ
              value: Asia/Shanghai
            # JVM env            - name: JAVA_OPTS
              value: -Xms1024m -Xmx2048m -Dfile.encoding=UTF-8
            # profile            - name: PROFILE
              value: dev
          volumeMounts:              # 使用存储卷            - mountPath: /var/logs   # 将存储卷挂载到容器内部路径
              name: log-volume
      dnsPolicy: ClusterFirst   # 使用宿主机dns  ; None 无任何策略 ;ClusterFirst 集群DNS优先;ClusterFirstWithHostNet 集群 DNS 优先,并伴随着使用宿主机网络
      imagePullSecrets: # 镜像仓库拉取密钥        - name: harbor # 镜像Secrets需要在集群中手动创建
      restartPolicy: Always # 重启策略
      volumes:              # 定义存储卷        - name: log-volume  # 卷名称
          hostPath:         # 卷类型详细见:https://kubernetes.io/zh/docs/concepts/storage/volumes/
            path: /data/logs/prod/dnehsa_bizc  # 宿主机存在的目录路径
            type: DirectoryOrCreate # 如果在给定路径上什么都不存在,那么将根据需要创建空目录,权限设置为 0755,具有与 kubelet 相同的组和属主信息        - name: sidecar  #
          emptyDir: {} #emptyDir 卷的存储介质(磁盘、SSD 等)是由保存 kubelet 数据的根目录 (通常是 /var/lib/kubelet)的文件系统的介质确定。

复制代码

创建一个Deployment后,还会自动创建一个Pod。
这边状态显示为Active,说明创建成功。

 

4.4 Pod

Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。

Pod(就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的 “逻辑主机”,其中包含一个或多个应用容器, 这些容器相对紧密地耦合在一起。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。

除了应用容器,Pod 还可以包含在 Pod 启动期间运行的 Init 容器。 你也可以在集群支持临时性容器的情况下, 为调试的目的注入临时性容器。

4.4.1 什么是 Pod?

说明: 除了 Docker 之外,Kubernetes 支持很多其他容器运行时, Docker 是最有名的运行时, 使用 Docker 的术语来描述 Pod 会很有帮助。
Pod 的共享上下文包括一组 Linux 名字空间、控制组(cgroup)和可能一些其他的隔离方面, 即用来隔离容器的技术。 在 Pod 的上下文中,每个独立的应用可能会进一步实施隔离。

Pod 类似于共享名字空间并共享文件系统卷的一组容器。

4.4.2 使用Pod

Pod 通常不是直接创建的,而是使用工作负载资源创建的。
这边状态显示为Running,说明正在运行。
Execute Shell 可以进入Pod的容器中,相当于执行命令:kubectl exec -it podName -n namespaceName – /bin/sh
View Logs 查看日志,相当于执行命令:kubectl logs -f --tail 500 podName -n namespaceName

 

4.5 Service

将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。
使用 Kubernetes,你无需修改应用程序即可使用不熟悉的服务发现机制。 Kubernetes 为 Pod 提供自己的 IP 地址,并为一组 Pod 提供相同的 DNS 名, 并且可以在它们之间进行负载均衡。

动机
创建和销毁 Kubernetes Pod 以匹配集群的期望状态。 Pod 是非永久性资源。 如果你使用 Deployment 来运行你的应用程序,则它可以动态创建和销毁 Pod。
每个 Pod 都有自己的 IP 地址,但是在 Deployment 中,在同一时刻运行的 Pod 集合可能与稍后运行该应用程序的 Pod 集合不同。
这导致了一个问题: 如果一组 Pod(称为“后端”)为集群内的其他 Pod(称为“前端”)提供功能, 那么前端如何找出并跟踪要连接的 IP 地址,以便前端可以使用提供工作负载的后端部分?
进入 Services。

具体可看服务(Service)

4.5.1 创建Service

创建Service成功后,就可以访问到服务了。说明:如果你将 type 字段设置为 NodePort,则 Kubernetes 控制平面将在 --service-node-port-range 标志指定的范围内分配端口(默认值:30000-32767)。详情请看:发布服务(服务类型)

4.5.1.1 使用表单编辑创建Service

 

4.5.1.2 使用YAML文件创建Service

下面是具体的字段说明: 

复制代码

apiVersion: v1            # 指定api版本,此值必须在kubectl api-versions中
kind: Service             # 指定创建资源的角色/类型 
metadata:                 # 资源的元数据/属性
  name: dnehsa-bizc-svc   # 资源的名字,在同一个namespace中必须唯一  namespace: gdfw         # 部署在哪个namespace中
  labels:                 # 设定资源的标签
    app: dnehsa-bizc-svc
spec:                     # 资源规范字段
  type: NodePort          # 类型:集群IP,外部DNS服务名称,Headless,负载均衡器,节点端口
  ports:  - name: dnehsa-bizc-svc # 端口名称
    nodePort: 30006       # 节点端口
    port: 30006           # 监听端口
    protocol: TCP         # 协议
    targetPort: 30006     # 目标端口
  selector:               # 选择器
    app: dnehsa-bizc

复制代码

4.6动态扩缩容 

##kubectl scale --replicas=3 资源类型/资源名称
kubectl scale --replicas=3 deploy/test-deploy

图形化操作

 4.7回滚/升级 项目

 4.8创建PV挂载(PersistentVolume)

 4.9 创建PVC挂载(PersistentVolumeClaim)

 

 

4.10配置 Pod 储存

以nginx为例,在右侧面板,工作负载->Deployments->nginx->编辑配置中点击 Pod 选项卡,添加我们创建好的持久化券声明:

 

然后在容器中添加映射:

5. 进入rancher控制台

 通过部署rancher的容器进入

docker exec -it rancher bash

 


目录


一、Rancher 简介 


1.1Rancher 定义


1.2Rancher 和 k8s 的区别


1.3Rancher 的关键特性


二、Rancher 安装及配置 


2.1环境准备


2.2安装 rancher


2.3登录 Rancher 平台


2.4Rancher 管理已存在的 k8s 集群


2.5Rancher 部署监控系统


2.6使用 Rancher 仪表盘管理 k8s 集群


2.6.1以创建 nginx 服务为例


2.6.2创建名称空间 namespace


2.6.3创建 Deployment 资源


2.6.4创建 service


2.6.5访问页面


一、Rancher 简介 

1.1Rancher 定义

Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理, 以确保集群的安全性,加速企业数字化转型。超过 40000 家企业每天使用 Rancher 快速创新。


官网:https://docs.rancher.cn/


1.2Rancher 和 k8s 的区别

Rancher 和 k8s 都是用来作为容器的调度与编排系统。


但是 rancher 不仅能够管理应用容器,更重要的一点是能够管理 k8s 集群。 Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到k8s集群当中。


Kubernetes


Kubernetes 是一个开源的容器编排平台,它提供了自动化的容器部署、扩展和管理功能。


它主要用于创建、运行和管理容器化应用程序,并确保它们在预定义的状态下运行。


Rancher


Rancher 是建立在 Kubernetes 之上的管理平台,它提供了一个用户友好的界面,使得 Kubernetes 更易于使用和理解。

Rancher 通过抽象 Kubernetes 的复杂性,允许用户在不了解 Kubernetes 概念的情况下部署和管理容器化应用程序。

它支持多集群管理,使得用户可以在一个集中的位置管理多个 Kubernetes 集群,无论它们位于何处。

1.3Rancher 的关键特性

多集群管理:支持在一个界面中管理多个 Kubernetes 集群,无论它们是在本地、云中还是混合环境中。

应用目录:提供了一个应用目录,用户可以从中选择并部署预配置的应用程序到 Kubernetes 集群。

CI/CD 集成:支持与流行的持续集成和持续部署工具集成,如 Jenkins、GitLab CI/CD 等。

安全性:提供了企业级的安全特性,包括 RBAC、网络策略、Pod 安全策略等。

用户友好的界面:提供了一个直观的 Web UI,使得 Kubernetes 的管理变得更加简单和直观。

自动化:支持自动化的集群部署和升级,简化了 Kubernetes 集群的生命周期管理。

监控和日志:集成了监控和日志工具,提供了对集群性能和应用程序状态的实时视图。

支持多种运行环境:支持在多种环境中运行 Kubernetes,包括公有云、私有云、边缘计算和混合云环境。

通过使用 Rancher,企业可以更快速、更安全地采用 Kubernetes 技术,同时降低了 Kubernetes 的学习曲线和管理复杂性。Rancher 通过提供额外的工具和服务,增强了 Kubernetes 的功能,使其更适合企业级应用。


二、Rancher 安装及配置 

2.1环境准备

服务器名称 IP地址

控制节点(Master01) 192.168.246.10

工作节点(Node01) 192.168.246.11

工作节点(Node02) 192.168.246.12

Rancher节点 192.168.246.9

2.2安装 rancher

#在 master01 节点下载 rancher-agent 镜像

 

docker pull rancher/rancher-agent:v2.5.7



#在 rancher 节点下载 rancher 镜像

 

docker pull rancher/rancher:v2.5.7





docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7

#--restart=unless-stopped 表示在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

#如果此处报错,可以先看哪些占了80端口,kill它,但是生产要注意,也可以修改端口

 

docker ps -a|grep rancher



可以看看有没有nginx或httpd占用80端口


2.3登录 Rancher 平台

需要先等一会儿,再浏览器访问 http://192.168.246.9 由于未使用授信证书,会有报警,忽略即可

登录后如是英文页面,可点击右下角语言选项选择中文


浏览器访问 http://192.168.246.9






初次登入要修改密码,此处我们修改密码为admin123123 







2.4Rancher 管理已存在的 k8s 集群

导入 Kubernetes 集群到 Rancher


添加集群


选择【添加集群】,点击【导入】

【集群名称】设置为 k8s-cluster,点击【创建】

选择复制第三条命令绕过证书检查导入 k8s 集群





设置集群名称


将导入的集群命名为 k8s-cluster,然后点击【创建】





复制导入命令


Rancher 会提供一个命令,用于绕过证书检查并将 Kubernetes 集群导入到 Rancher。



执行导入命令


在 Kubernetes 控制节点 master01 上,执行 Rancher 提供的 curl 命令。

如果第一次执行时出现错误,再次执行该命令通常可以解决问题。

在 k8s 控制节点 master01 上执行刚才复制的命令,如第一次执行报错,再执行一次即可


curl --insecure -sfL https://192.168.246.9/v3/import/6rqlf4mm6r2kcqmmckc2glmvnd6rlmrwk4phcjr5vkfdsbb85pzmhw_c-f7l8g.yaml | kubectl apply -f -

验证Kubernetes集群状态


kubectl get ns

#查看 Kubernetes 集群中的所有命名空间及其状态

kubectl get pods -n cattle-system -o wide

#命令查看 cattle-system 命名空间中运行的 Pod,包括 cattle-cluster-agent

kubectl get pods -n fleet-system -o wide

#查看 fleet-system 命名空间中运行的 Pod,包括 fleet-agent





2.5Rancher 部署监控系统

点击【启用监控以查看实时监控】

【监控组件版本】选择 0.2.1,其他的默认即可

点击【启用监控】,启动监控时间可能比较长,需要等待10分钟左右









2.6使用 Rancher 仪表盘管理 k8s 集群

2.6.1以创建 nginx 服务为例

点击【仪表盘】进入 k8s 集群仪表盘界面

2.6.2创建名称空间 namespace

点击左侧菜单【Namespaces】,再点击右侧【Create】

【Name】输入 dev,【Description】选填可自定义

点击右下角【Create】






2.6.3创建 Deployment 资源

点击左侧菜单【Deployments】,再点击右侧【Create】

【Namespace】下拉选择 dev,【Name】输入 nginx-dev,【Replicas】输入 3

点击中间选项【Container】,【Container Image】输入 nginx:1.14,【Pull Policy】选择 IfNotPresent

在【Pod Labels】下点击【Add Lable】,【Key】输入 app,【Value】输入 nginx

点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入 app,【Value】输入 nginx

点击右下角【Create】










在这里创建好了之后,直接去xhell命行查看,创建成功,不需要命令创建了哦




2.6.4创建 service

点击左侧菜单【Services】,再点击右侧【Create】

点击【Node Port】

【Namespace】下拉选择 dev,【Name】输入 nginx-dev

【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180

点击中间选项【Selectors】,【Key】输入 app,【Value】输入 nginx

点击右下角【Create】

点击【nginx-dev】查看 service 是否已关联上 Pod















2.6.5访问页面

点击 service 资源的节点端口 30001/TCP,可以访问内部的 nginx 页面了







————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/zzzxxx520369/article/details/139630179