首页 > 其他分享 >Ceph 架构以及部署

Ceph 架构以及部署

时间:2024-05-22 14:30:59浏览次数:22  
标签:ceph 架构 部署 osd Ceph ceph01 mon root 节点

目录

Ceph架构

Ceph是什么?为什么用到Ceph?

存储类型

  • 集中式存储

    • NAS (网络附加存储 / 网络区域存储)
    • SAN (存储区域网络)
    • DAS (直连附加存储)

    集中式存储的优点:

    1. 管理简单,因为所有数据都存放在同一个节点上,所以数据的管理与维护相对简单

    2. 安全性高,集中式存储中只有一个数据中心,因此更容易实现安全控制

    3. 数据统一管理

    常见的的集中式存储有:

  • 分布式存储

    分布式存储是一种数据存储技术。在分布式存储架构中,信息被存储于多个独立且互不干扰的设备中。不同于传统的集中式存储,分布式存储采用可扩展的存储结构,这在一定程度上提高了存储系统的可靠性,可用性和访问效率。

为什么用到Ceph?

1. NFS

现在常用的存储服务有NFS,那么为什么不采用NFS呢?

我们不妨这样设想一下,NFS如果节点挂掉了,那么我们把这个节点上的硬盘拔出来,换到其他节点上,在其他节点上起一个NFS,那么数据依旧是存在的,但是,如果坏的不是节点而是硬盘呢?可能你想到了给硬盘做RAID,好,保留这个问题,继续往后看。

2. MooseFS

Moosefs就是一个分布式存储,他的技术架构就是提供一个Mater节点,来管理整个集群,client只需要通过挂载Master节点就可以往集群内存储文件

大家都知道,一个文件是由文件元数据以及文件数据组成的,文件元数据保存的就是一些简单的概要,比如这个文件多大,文件的拥有人,所属组以及访问权限这些东西,元数据一般都不大,所以会直接保存在Master节点上,而文件本身的数据则会保存在存储节点上,并且是有多副本机制的。完全不怕某个节点挂掉而导致数据丢失。

MooseFS瓶颈

虽然文件的元数据占用的空间并不大,但是在现在这个时代,也奈何不了他多啊,当元数据过多时,Master就成了Moosefs的瓶颈,因为所有的请求都是需要经过Master的,并且Moosefs(到写这篇文章的时间)是没办法做Master高可用的,想给他做高可用的方式就是2个Master,使用Keepalive提供一个VIP(虚拟IP),访问这个VIP就可以访问到2个Master节点,但是,在同一时间内,只有一个Master在工作,所以瓶颈依旧存在

3. GlusterFS

看到了MooseFS的瓶颈之后,GlusterFS采取了去Master,即不需要Master节点,每个存储节点上都内嵌一个可以代替Master工作的组件,这样操作下来,所有的元数据并不是都放在同一个节点上,每个节点都只需要保存部分元数据,好像这个架构没什么问题了哈,但是我们回想一下MooseFS是如何使用的?是不是客户端挂载Master就可以使用集群了?但是现在没有Master了,或者说每个节点都是Master,那怎么办呢?

GlusterFS就要求使用GlusterFS的客户端安装一个软件,Gluster-client,并且给这个软件写一个配置文件,把所有的存储节点IP地址写进去,这样操作。但是如果后期节点需要更换,改动起来就比较麻烦。我们再来看看Ceph是怎么做的

4. Ceph

Ceph的做法就跟前两者不同了,Moose FS不是说Master上的元数据会成为瓶颈吗?GlusterFS不是说客户端操作不易吗?那我来折中一下呢?Ceph他保留了Master节点,但是,这个Master保存的不是文件的元数据,是集群的元数据,也就是保存的集群的信息,那么既然Master保存的是集群元数据,那么文件元数据保存到哪了呢?他有专门的文件元数据节点,所有的文件元数据都保存在这个节点上,记住,这个节点只保存元数据,其他一概不管。这样说来,既解决了客户端配置维护困难,也解决了Master节点的瓶颈。

这就是Ceph的架构,他兼顾了 易维护、性能,这就是他流行的原因

现在再回头去想NFS的问题,为什么不做RAID呢?因为做RAID成本就比用Ceph的成本高了

Ceph的版本命名跟OpenStack一样,采取英文字母命令A-Z,目前最新版是R版

Ceph的组件

  1. mon:集群监视器(就是master)
  2. osd:集群存储节点
  3. mgr:集群管理器
    以上三个节点必装,缺一不可
  4. mds:文件元数据节点
  5. rgw:对象存储网关
  6. nfs-genasha:为ceph对外提供NFS协议的文件存储服务
  7. rbd-mirror:块设备镜像服务

Ceph部署

ceph的部署方式有:

  1. Cephadm(官方推荐)
  2. ceph-ansible
  3. ceph-deploy(N版本之前使用)
  4. DeepSea
  5. 手工部署(极其复杂,不推荐)
主机名 IP 系统
ceph01 192.168.101.10 欧拉 22.03
ceph02 192.168.101.20 欧拉 22.03
ceph03 192.168.101.30 欧拉 22.03

前期准备

每个节点都要做

1.1 修改主机名

[root@localhost ~]# hostnamectl set-hostname ceph01

1.2 关闭防火墙以及selinux

[root@ceph01 ~]# systemctl disable --now firewalld
[root@ceph01 ~]# setenforce 0
[root@ceph01 ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

1.3 配置hosts

[root@ceph01 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ceph01
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.101.10 ceph01
192.168.101.20 ceph02
192.168.101.30 ceph03

1.4 配置时间同步

[root@ceph01 ~]# yum install chrony -y
[root@ceph01 ~]# systemctl enable --now chronyd

2. 安装cephadm

2.1 安装git

安装git是因为需要拉取cephadm,因为欧拉操作系统暂时用不了官方的cephadm,需要下载另一个版本

[root@ceph01 ~]# yum install git -y
[root@ceph01 ~]# git clone https://gitee.com/yftyxa/openeuler-cephadm.git
[root@ceph01 ~]# cd openeuler-cephadm/
[root@ceph01 openeuler-cephadm]# ls
cephadm
[root@ceph01 openeuler-cephadm]# mv cephadm /usr/sbin/

2.2 安装podman3.3

[root@ceph01 ~]#  wget-O /etc/yum.repos.d/huawei.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
# 一定要指定版本安装
[root@ceph01 ~]# yum install podman-3.3.1*

2.3 配置ceph源

不要使用cephadm add-repo 因为在欧拉上是不支持的

[root@ceph01 ~]# cephadm version
ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)
[root@ceph01 ~]# vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=https://mirrors.huaweicloud.com/ceph/rpm-pacific/el8/x86_64/
gpgcheck=0
enabled=1

2.4 将repo文件传到各个节点

[root@ceph01 ~]# scp /etc/yum.repos.d/ceph.repo ceph02:/etc/yum.repos.d/

Authorized users only. All activities may be monitored and reported.
ceph.repo                                              100%  107   209.4KB/s   00:00    
[root@ceph01 ~]# scp /etc/yum.repos.d/ceph.repo ceph03:/etc/yum.repos.d/

Authorized users only. All activities may be monitored and reported.
ceph.repo                                              100%  107   203.1KB/s   00:00

3. 安装ceph

[root@ceph01 ~]# cephadm bootstrap --mon-ip 192.168.101.10 --initial-dashboard-user admin --initial-dashboard-password 123 --dashboard-password-noupdate

--mon-ip指定monitor,指定一个就行,后期可以添加

--initial-dashboard-user admin 指定dashboard的用户名是admin,不指定也行

--initial-dashboard-password 123 指定dashboard的用户名是123,不指定也行

--dashboard-password-noupdate 第一次登录dashboard无需修改密码

安装完之后会有一个回显

Ceph Dashboard is now available at:

	     URL: https://localhost.localdomain:8443/
	    User: admin
	Password: 123

Enabling client.admin keyring and conf on hosts with "admin" label
You can access the Ceph CLI with:

	sudo /usr/sbin/cephadm shell --fsid dc6d1544-17ef-11ef-9393-000c297dea16 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

Please consider enabling telemetry to help improve Ceph:

	ceph telemetry on

For more information see:

	https://docs.ceph.com/docs/pacific/mgr/telemetry/

Bootstrap complete.

3.1 登录dashboard

3.2 安装ceph-common

[root@ceph01 ~]# yum install ceph-common  --nobest
如果不加上nobest的话,他会报错,因为我们的版本是16.2.13,而仓库里的是common是16.2.15,不是最佳匹配
加上nobest的话他就不会报错了

装完之后我们可以使用ceph -s 来查看集群状态

[root@ceph01 ~]# ceph -s
  cluster:
    id:     dc6d1544-17ef-11ef-9393-000c297dea16
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum ceph01 (age 30m)
    mgr: ceph01.luyssm(active, since 27m)
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs: 

3.2.1 群健康的3种状态

1. health: HEALTH_OK       这个代表集群是OK的
2. health: HEALTH_WARN  这个代表的是有警告
3. health: HEALTH_ERR     这个代表集群出现错误,无法提供服务

3.2.2 services

mon: 1 daemons, quorum ceph01 (age 30m)
mgr: ceph01.luyssm(active, since 27m)
osd: 0 osds: 0 up, 0 in

这里可以看到有一个mon,没有osd,没有osd是up

osd的状态:

  1. up且in: 代表osd运行正常且至少承载了一个PG

  2. up且out:代表osd运行正常,但是没有承载PG,新加入集群的osd为这个状态

  3. down且in:表示osd运行异常,但承载了一个PG

  4. down且out:表示osd运行异常,且没有承载PG

3.2.3 健康详细情况

[root@ceph01 ~]# ceph health detail
HEALTH_WARN OSD count 0 < osd_pool_default_size 3
[WRN] TOO_FEW_OSDS: OSD count 0 < osd_pool_default_size 3

这里会详细的说明为什么不健康

4. 添加节点

有一个命令 ceph orch 他是用来管理节点以及 orch 信息的c

[root@ceph01 ~]# ceph orch ls
NAME           PORTS        RUNNING  REFRESHED  AGE  PLACEMENT  
alertmanager   ?:9093,9094      1/1  2m ago     45m  count:1    
crash                           1/1  2m ago     45m  *          
grafana        ?:3000           1/1  2m ago     45m  count:1    
mgr                             1/2  2m ago     45m  count:2    
mon                             1/5  2m ago     45m  count:5    
node-exporter  ?:9100           1/1  2m ago     45m  *          
prometheus     ?:9095           1/1  2m ago     45m  count:1 
[root@ceph01 ~]# ceph orch ps
NAME                  HOST    PORTS        STATUS         REFRESHED  AGE  MEM USE  MEM LIM  VERSION  IMAGE ID      CONTAINER ID  
alertmanager.ceph01   ceph01  *:9093,9094  running (52m)    48s ago  53m    23.8M        -  0.23.0   ba2b418f427c  922cc9da5d93  
crash.ceph01          ceph01               running (53m)    48s ago  53m    6665k        -  16.2.13  e08a45948779  beb27dd23017  
grafana.ceph01        ceph01  *:3000       running (51m)    48s ago  52m    52.8M        -  8.3.5    dad864ee21e9  8040b45413ea  
mgr.ceph01.luyssm     ceph01  *:9283       running (54m)    48s ago  54m     430M        -  16.2.13  e08a45948779  46795e2d6fd4  
mon.ceph01            ceph01               running (54m)    48s ago  55m     127M    2048M  16.2.13  e08a45948779  40063aa2ec52  
node-exporter.ceph01  ceph01  *:9100       running (52m)    48s ago  52m    20.3M        -  1.3.1    1dbe0e931976  526975c5960b  
prometheus.ceph01     ceph01  *:9095       running (52m)    48s ago  52m    68.7M        -  2.33.4   514e6a882f6e  7c8ef8a42751

通过ps可以看到ceph具体的进程,运行在哪个机器上,内存占用是多少,允许最大占用内存是多少,这里的image id就是容器使用的镜像ID,cephadm部署出来的集群就是基于容器的

4.1 开始添加节点

需要将/etc/ceph/ceph.pub这个公钥传到被添加的节点上

4.1.1 发放公钥

[root@ceph01 ceph]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph02
[root@ceph01 ceph]# ssh-copy-id -f -i /etc/ceph/ceph.pub ceph03

4.1.2 被添加节点安装容器引擎

# 先移除本来就存在的podman1版本
[root@ceph02 ~]# yum remove podman* -y
# 安装podman3
[root@ceph02 ~]# yum install podman-3* -y
[root@ceph03 ~]# yum install podman-3* -y

4.1.3 添加节点

[root@ceph01 ceph]# ceph orch  host add ceph02 192.168.101.20
Added host 'ceph02' with addr '192.168.101.20'
[root@ceph01 ceph]# ceph orch  host add ceph03 192.168.101.30
Added host 'ceph03' with addr '192.168.101.30'
[root@ceph01 ceph]# ceph orch host ls
HOST    ADDR            LABELS  STATUS  
ceph01  192.168.101.10  _admin          
ceph02  192.168.101.20                  
ceph03  192.168.101.30                  
3 hosts in cluster

Lables 就是标签,当某个节点拥有_admin标签时,集群就会把连接客户端连接ceph集群的认证文件发放到该节点上

4.1.4 标签修改

添加标签

目前是只有ceph01拥有admin标签,在/etc/ceph 下有一些其他节点没有的文件

[root@ceph01 ceph]# ls /etc/ceph/
ceph.client.admin.keyring  ceph.conf  ceph.pub  rbdmap
# ceph03查看
[root@ceph03 ~]# ls /etc/ceph/
rbdmap

# 给ceph03打标签
[root@ceph01 ceph]# ceph orch host label add ceph03 _admin
Added label _admin to host ceph0
# 重新查看ceph03
[root@ceph03 ~]# ls /etc/ceph/
ceph.client.admin.keyring  ceph.conf  rbdmap
[root@ceph01 ceph]# ceph orch host ls
HOST    ADDR            LABELS  STATUS  
ceph01  192.168.101.10  _admin          
ceph02  192.168.101.20                  
ceph03  192.168.101.30  _admin

这个时候,ceph03就可以使用ceph客户端来操作ceph集群了

删除标签
[root@ceph01 ceph]# ceph orch host label rm ceph03 _admin
Removed label _admin from host ceph03
[root@ceph01 ceph]# ceph orch host ls
HOST    ADDR            LABELS  STATUS  
ceph01  192.168.101.10  _admin          
ceph02  192.168.101.20                  
ceph03  192.168.101.30

4.2 关闭mon自动扩展

[root@ceph01 ~]# ceph orch apply mon --unmanaged
Scheduled mon update...
[root@ceph01 ~]# ceph orch apply mon 3
Scheduled mon update...
[root@ceph01 ~]# ceph orch ls
NAME           PORTS        RUNNING  REFRESHED  AGE   PLACEMENT  
alertmanager   ?:9093,9094      1/1  97s ago    100m  count:1    
crash                           3/3  99s ago    100m  *          
grafana        ?:3000           1/1  97s ago    100m  count:1    
mgr                             2/2  99s ago    100m  count:2    
mon                             3/3  99s ago    52s   count:3    
node-exporter  ?:9100           3/3  99s ago    100m  *          
prometheus     ?:9095           1/1  97s ago    100m  count:1 

4.3 将mon服务固定在某几个节点

如果有一个mon节点挂掉了,而此时又添加了一台新的节点,那么按照ceph集群的控制,可能会在新的节点上启动一个mon,但我们并不想他更换mon节点,此时可以这么做

# 1. 先给节点打标签
[root@ceph01 ~]# ceph orch host label add ceph01 mon
Added label mon to host ceph01
[root@ceph01 ~]# ceph orch host label add ceph02 mon
Added label mon to host ceph02
[root@ceph01 ~]# ceph orch host label add ceph03 mon
Added label mon to host ceph03
# 2. 开启标签匹配
[root@ceph01 ~]# ceph orch apply mon label:mon
Scheduled mon update...

这样操作之后,mon就只会在有mon标签的节点上去启动

5. 添加OSD

首先需要ceph节点上有空闲的盘,然后将空闲的盘添加进来,必须是一块裸盘,在一千的版本是允许是一个目录的

[root@ceph01 ~]# ceph orch daemon add osd ceph01:/dev/sdb
Created osd(s) 0 on host 'ceph01'
[root@ceph01 ~]# ceph orch daemon add osd ceph01:/dev/sdc
Created osd(s) 1 on host 'ceph01'
[root@ceph01 ~]# ceph orch daemon add osd ceph01:/dev/sdd
Created osd(s) 2 on host 'ceph01'

在添加节点之后ceph会将这块盘做成一个lvm,可以使用lvs去查看

[root@ceph01 ~]# lvs
  LV                                             VG                                        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  osd-block-92842562-ddd9-4703-a406-0c5608943e67 ceph-4b36ac72-7807-4e01-97d6-a47974ff5819 -wi-ao---- <50.00g                                                    
  osd-block-ca2d6b54-650f-41bc-9519-08eeb5d405fb ceph-615825c2-3c13-4367-98e3-7b9197eda340 -wi-ao---- <50.00g                                                    
  osd-block-2e02f3ac-9768-48d7-8d7b-591d1f5badd5 ceph-bc484b43-f83f-43b2-b49e-a838c8d07e75 -wi-ao---- <50.00g                                                    
  home                                           openeuler                                 -wi-ao---- <29.90g                                                    
  root                                           openeuler                                 -wi-ao---- <61.24g                                                    
  swap                                           openeuler                                 -wi-ao----  <7.86g                                         

添加完之后我们使用命令来查看

[root@ceph01 ~]# ceph -s
  cluster:
    id:     dc6d1544-17ef-11ef-9393-000c297dea16
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 18m)
    mgr: ceph02.oxmsfu(active, since 19m), standbys: ceph01.luyssm
    osd: 9 osds: 9 up (since 4m), 9 in (since 4m)
 
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   53 MiB used, 450 GiB / 450 GiB avail
    pgs:     1 active+clean

这里显示有9个osd,并且状态是up且in,说明没问题

ceph df

# ceph df命令
[root@ceph01 ~]# ceph df
--- RAW STORAGE ---
CLASS     SIZE    AVAIL    USED  RAW USED  %RAW USED
hdd    450 GiB  450 GiB  53 MiB    53 MiB       0.01
TOTAL  450 GiB  450 GiB  53 MiB    53 MiB       0.01
 
--- POOLS ---
POOL                   ID  PGS  STORED  OBJECTS  USED  %USED  MAX AVAIL
device_health_metrics   1    1     0 B        0   0 B      0    142 GiB

ceph osd df

# ceph osd df
[root@ceph01 ~]# ceph osd df
ID  CLASS  WEIGHT   REWEIGHT  SIZE     RAW USE  DATA     OMAP  META     AVAIL    %USE  VAR   PGS  STATUS
 0    hdd  0.04880   1.00000   50 GiB  6.0 MiB  552 KiB   0 B  5.5 MiB   50 GiB  0.01  1.02    0      up
 1    hdd  0.04880   1.00000   50 GiB  6.0 MiB  552 KiB   0 B  5.5 MiB   50 GiB  0.01  1.02    0      up
 2    hdd  0.04880   1.00000   50 GiB  6.0 MiB  552 KiB   0 B  5.4 MiB   50 GiB  0.01  1.01    1      up
 3    hdd  0.04880   1.00000   50 GiB  6.0 MiB  552 KiB   0 B  5.4 MiB   50 GiB  0.01  1.01    1      up
 4    hdd  0.04880   1.00000   50 GiB  5.9 MiB  552 KiB   0 B  5.3 MiB   50 GiB  0.01  0.99    0      up
 5    hdd  0.04880   1.00000   50 GiB  6.1 MiB  552 KiB   0 B  5.6 MiB   50 GiB  0.01  1.03    0      up
 6    hdd  0.04880   1.00000   50 GiB  5.9 MiB  552 KiB   0 B  5.3 MiB   50 GiB  0.01  0.99    0      up
 7    hdd  0.04880   1.00000   50 GiB  5.7 MiB  552 KiB   0 B  5.2 MiB   50 GiB  0.01  0.97    1      up
 8    hdd  0.04880   1.00000   50 GiB  5.7 MiB  552 KiB   0 B  5.2 MiB   50 GiB  0.01  0.97    0      up
                       TOTAL  450 GiB   53 MiB  4.9 MiB   0 B   48 MiB  450 GiB  0.01                   
MIN/MAX VAR: 0.97/1.03  STDDEV: 0

ceph osd tree

[root@ceph01 ~]# ceph osd tree
ID  CLASS  WEIGHT   TYPE NAME        STATUS  REWEIGHT  PRI-AFF
-1         0.43918  root default                              
-3         0.14639      host ceph01                           
 0    hdd  0.04880          osd.0        up   1.00000  1.00000
 1    hdd  0.04880          osd.1        up   1.00000  1.00000
 2    hdd  0.04880          osd.2        up   1.00000  1.00000
-5         0.14639      host ceph02                           
 3    hdd  0.04880          osd.3        up   1.00000  1.00000
 4    hdd  0.04880          osd.4        up   1.00000  1.00000
 5    hdd  0.04880          osd.5        up   1.00000  1.00000
-7         0.14639      host ceph03                           
 6    hdd  0.04880          osd.6        up   1.00000  1.00000
 7    hdd  0.04880          osd.7        up   1.00000  1.00000
 8    hdd  0.04880          osd.8        up   1.00000  1.00000

到这里ceph的部署就结束了

标签:ceph,架构,部署,osd,Ceph,ceph01,mon,root,节点
From: https://www.cnblogs.com/fsdstudy/p/18206169

相关文章

  • 3分钟部署 我的世界(Minecraft) 联机服务
    游戏简介我的世界(Minecraft)是一款沙盒类电子游戏,该游戏以玩家在一个充满着方块的三维空间中自由地创造和破坏不同种类的方块为主题。玩家在游戏中可以在单人或多人模式中通过摧毁或创造精妙绝伦的建筑物和艺术,或者收集物品探索地图以完成游戏的成就(进度)。部署服务第一步:选择配......
  • 架构风格
                    ......
  • 通过ansible自动化部署apache服务 转载
    目录1安装ansible2ansible配置3创建角色目录4创建角色内的目录结构5编写tasks/main.yml6编写templates/index.html.j27创建playbook8运行playbook9验证结果10验证后卸载apache 使用Ansible来部署Apache服务是一个很好的选择,因......
  • DHCP部署与安全
       实践:部署DHCP步骤:1、需要在同一交换机中VMnet22、客户机需要让自动配置3、服务器需要自己配置(1)、先配置一个静态的ip地址(2)、安装dhcp组件,打开它,验证(netstat-an)查看有没有端口号为6768的(3)、再自己给分配一个网......
  • 本地部署MinIO实现文件下载
    前置要求续接上一篇随笔:https://www.cnblogs.com/liuhao-blog/p/18204853 1.实现代码1importio.minio.MinioClient;2importio.minio.GetObjectArgs;3importjava.io.InputStream;4importjava.nio.file.Files;5importjava.nio.file.Paths;67publiccla......
  • 架构1
     一软件架构风格定义:软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。  架构风格大类......
  • 从需求角度介绍PasteSpider(K8S平替部署工具适合于任何开发语言)
             你是否被K8S的强大而吸引,我相信一部分人是被那复杂的配置和各种专业知识而劝退,应该还有一部分人是因为K8S太吃资源而放手!    这里介绍一款平替工具PasteSpider,PasteSpider是一款使用c#编写的linux容器部署工具(使用PasteSpider和自己用啥语言开发没关......
  • Vsftp部署
    安装认证所需包首先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件)yum-yinstallpam*yum-yinstalldb4*安装vsftp[root@localhost~]#cd/etc/yum.repos.d/[[email protected]]#mkdirbak[[email protected]]#mv*obak[root@l......
  • 企业内网要不要部署DNS?
    内网通常是指一个组织或企业内部的计算机网络,用于连接组织内部的计算机、服务器和其他网络设备,以便共享资源、数据和应用程序。内网通常使用私有IP地址,并通过防火墙或其他安全设备与外部网络(如互联网)进行隔离。内网通常具有更高的安全性和私密性要求,因为它包含组织内部的重要数据......
  • 「实用推荐」如何为桌面 & 移动跨平台应用选择UI框架/APP架构?
    DevExpress.NETMAUIUI组件库提供了用于Android和iOS移动开发的高性能UI组件,该库包括数据网格、图表、日程、数据编辑器、CollectionView和选项卡组件。获取DevExpress.NETMAUI最新正式版下载DevExpress技术交流群10:532598169      欢迎一起进群讨论“一次编写,随处运......