KK8S学习教程(k8s 教程)

KK8S学习教程前言 Redis 是在开发过程中经常用到的缓存中间件,为了考虑在生产环境中稳定性和高可用,Redis通常采用集群模式的部署方式。 在制定Redis集群的部署策略时,常规部署在虚拟机上

前言

Redis是开发过程中常用的缓存中间件,为了兼顾生产环境的稳定性和高可用性,Redis通常采用集群模式部署。

在制定Redis集群部署策略时,传统的虚拟机部署方式比较繁琐,需要手动重启节点。相比之下,使用PetaExpress 具有以下优势:

Kubernetes (k8s) 服务在部署Redis 集群时具有显着的优势。

1.安装便捷:可以使用镜像或者yaml配置文件批量安装,大大简化了安装过程。

2、方便的扩缩容:扩缩容的好处是一键扩容,无需复杂的设置或繁琐的步骤。

3、智能自动调度:容器意外挂掉后,快速自动调度、重启、分配资源。

4.高效稳定:Kubernetes跨集群调度。容器服务始终计划在适当的节点上重新启动,除非整个集群挂起。

阅读全文,稍后我们会告诉您如何获得免费红包。

在PetaExpress KubeSphere 容器平台上部署Kubernetes 集群

在Peta Express 上部署Kubernetes 非常简单。直接使用Peta Express 内置的QKE,在“产品和服务”下找到AppCenter Console。

找到QKE并立即部署。

只需按照提示,输入您的姓名,选择您的集群大小等信息,然后直接提交即可。但是,您在配置集群时需要小心。开发和测试可以选择基础开发环境或企业测试环境。对于生产环境,您可以选择基本生产环境。 “企业运营环境”。您还可以自定义集群大小和HA。

部署时间约为2 到10 分钟,具体取决于集群的大小,但仍然非常快。部署Kubernetes 后,您可以继续安装Redis。

安装Redis集群

我这里新建了一个名为test-project的项目空间,用来放置Redis集群的所有安装资源。需要注意的是,稍后在DNS 中将使用项目空间名称,这部分将使用其自己的项目。空间名称。

Redis集群安装过程大致分为以下几个主要步骤:

设置redis.conf字典。

创建redis服务。

容器组配置。

存储设置。

详细设置。

接下来,我们将引导您完成安装和配置Redis 集群的过程,从第一步开始。

配置redis.conf字典

通过选择“配置”“配置字典”“创建”,在项目空间中创建配置字典。

它被命名为redis-conf,下一步是添加键值对数据。

key value内容为redis.conf,value值为:

创建Redis服务

在您的项目空间中,在“应用程序负载”“工作负载”“状态副本集”“创建”下创建Redis 服务。

基本配置名称是redis-cluster。接下来,继续容器组配置的下一步:突出显示。

容器组配置

这一步的重点是使用集群数量的集群配置,通常是3个master和3个slave。此配置不仅仅可以确保集群稳定性。它不仅提高了系统的安全性,还提高了数据的安全性。

将容器组的副本数量调整为6,然后单击“添加容器”。

在Docker Hub 中为您的映像选择Redis,并选择使用默认端口。如果没有预留,则公共资源将被调度。

如果选择使用默认端口,则接下来的端口设置将使用如上所示的6379,并配置启动命令。

上图配置:

命令:redis-server

参数:/etc/redis/redis.conf

该参数指向之前字典配置的内容,但是字典必须在下一步的存储设置中配置好才可以使用。

没有什么需要配置的。选择复选标记以完成容器配置。

推荐的更新策略是滚动更新。您无需单击“下一步”来配置存储设置。

保存设置

这一步有两个操作

添加存储卷模板

挂载配置字典或秘密字典

登录后复制

**添加存储卷模板**

1.

PVC 名称前缀:redis-pvc

容量:10G

挂载路径:

权限:读、写

地址:/数据

最主要的是选择安装路径。设置完成后,点击对勾即可完成设置。

挂载配置字典或秘密字典

在这一步中,我们将挂载之前配置的字典redis-conf。这也是redis启动命令参数的内容。

选择Redis配置字典。

挂载权限为只读,地址为/etc/redis。相当于上面设置命令参数。

选择redis.conf后的同名特定key。完成后,单击复选标记返回存储设置。配置完成后,输入上图,点击下一步,进入最终的高级设置。

高级设置下还有一些附加配置。调整完成后,单击“创建”以创建Redis 集群容器。

初始化Redis集群

创建Redis服务后,进入加载应用程序服务在项目空间中指定Redis服务并输入Redis服务详细信息。详细信息如下:

所有六个Redis 容器组均已成功启动。配置的Redis服务是有状态服务(无头),访问方式是通过内部DNS,访问格式如下: (容器名称).(容器DNS).svc.cluster.local。

例如,按照上图的例子,访问集群1节点的访问地址为redis-cluster-v1-1, DNS 地址, redis-cluster.test-project, svc.cluster.local 。如下:

登录后复制

1 redis-cluster-v1-1.redis-cluster.test-project.svc.cluster.local

2

1.2.

通过该地址访问Redis集群中除第一个节点以外的其他节点的终端,如下图进入节点3的终端,检查是否互通。

进入终端并运行以下命令:

如果能跳转到如下图所示的v1-1节点,则说明两个节点已经互通。

1 redis-cli -h redis-cluster-v1-1.redis-cluster.test-project.svc.clusterredis.local

登录后复制

2

1.

如果能跳转到如下图所示的v1-1节点,则说明两个节点已经互通。

运行命令“cluster info”查看节点的集群状态。

主要关注上图中的两个参数。 node为1,表示当前只有1个节点,cluster_size表示当前没有master节点,所以还没有集群结构。此处列出了属性:

cluster_state:ok状态表示集群可以成功接受查询请求。失败状态表示至少有一个哈希槽未绑定(表示存在未绑定的哈希槽)。

任何节点),或者处于错误状态(该节点能够提供服务,但有FAIL 标志),或者该节点无法联系大多数主节点。

cluster_slots_signed:分配给集群节点的哈希槽数量(不是未绑定的数量)。所有16384 个哈希槽都分配给集群节点。

正常操作所需。

cluster_slots_ok :哈希槽状态不是FAIL 和PFAIL 计数。

cluster_known_nodes:集群中的节点数量(包括尚未成为集群正式成员的处于握手状态的节点)。

cluster_slots_pfail:哈希槽状态是PFAIL的数量。这些哈希槽可以继续被成功处理,除非它们的状态升级为FAIL 状态。

PFAIL 状态意味着您当前无法与节点交互,但此状态只是暂时的错误情况。

cluster_slots_fail:状态为FAIL 的哈希槽数量。如果该值非零,则集群节点无法处理查询,除非cluster-require-full。

覆盖范围设置为否。

cluster_current_epoch:集群本地当前纪元变量的值。该值在节点故障转移期间很有用,并且始终是增量且唯一的。

cluster_my_epoch:当前使用的节点的配置纪元值。这是与该节点关联的版本值。

cluster_size:包含并可以服务至少一个哈希槽的主节点数量。

cluster_stats_messages_sent:通过节点之间的二进制总线发送的消息数。

cluster_stats_messages_received:通过节点之间的二进制总线接收的消息数。

通过IP地址初始化集群(初始化方案1)

我最初尝试使用ip + 端口来初始化集群,但是当我在Kubernetes (K8s) 上启动服务时,服务IP 会发生变化,因此我最终使用DNS 来初始化集群。

执行此步骤后,如果更改为初始化DNS地址,则必须再次执行此步骤。如果觉得麻烦的话可以直接跳过。

记录Redis集群的所有IP+端口。初始化命令为:

1redis-cli –cluster 创建10.233.70.30:6379 10.233.70.32:6379 10.233.90.41:6379 10.233.90.43:6379 10.233.96.47:6

2

在Redis 集群中的任意节点上输入终端并运行上述命令。

集群初始化完成后,输入命令redis-cli进入命令终端,运行cluster information即可查看集群信息,如上图所示。

现在已经建立了6个集群节点和3个主节点,选择主节点进行后续操作。

如果检查集群节点时出现上图中的MOVED 2589 10.233.70.30:6379 错误,则说明redis-cli 没有启用集群模式,因此将命令更改为redis-cli -c 切换到集群模式。

使用内部DNS初始化(初始化方案2)

在K8s集群上使用ip方式初始化集群并不合适,因为K8s每次调度redis时IP地址使用情况都会发生变化。但是,如上所示直接使用内部DNS 初始化集群将导致错误。redis不适合域名支持,暂时可以使用Redis-tribe。

创建Redis部落服务

在项目空间中的“应用程序负载”“工作负载”“创建”“编辑YAML”下创建Redis-tribe 服务。

登录后复制

参数命名空间是项目名称。

1.

具体的YAML内容为:

创建后,在容器组中找到redis-cluster-tools。

初始化集群

点击容器名称,输入容器详细信息,然后进入终端。

1api版本:应用程序/v1

2kind:的部署

3 元数据:

4namespace:测试项目

5 个标签:

6app: redis – 集群工具

7name: redis – 集群工具

8 规格:

9 复制品: 1

10 选择器:

11matchLabels:

12app: redis – 集群工具

13个模板:

14 元数据:

15 个标签:

16app: redis – 集群工具

17name: pos-redis

18规格:

19个集装箱:

20- name: pos-redis

21image: sunnywang/redis-tools-ubuntu:v0.5.1

22imagePullPolicy: 如果不存在

23args:

24-/bin/bash

25- -c

26晚3600

27

创建后,在容器组中找到redis-cluster-tools。

初始化集群

点击容器名称,输入容器详细信息,然后进入终端。

首先,通过运行以下命令初始化主节点:这就是您之前的内部DNS 域名派上用场的地方。

1 redis-trib.py 创建了ig +short redis-cluster-v1-0.redis-cluster.test-project.svc.cluster.local:6379 `dig +shor

2

执行结果如下。

然后为每个主节点总共绑定三个对应的副本节点。

0 个节点到3 个节点

1redis-trib.py 创建了ig +short redis-cluster-v1-0.redis-cluster.test-project.svc.cluster.local:6379 `dig +shor

2

1 个节点到4 个节点

1redis-trib.py克隆–master-addr `dig +short redis-cluster-v1-0.redis-cluster.test-project.svc.cluster.local

2

2个节点到5个节点

1redis-trib.py 克隆–master-addr `dig +short redis-cluster-v1-1.redis-cluster.test-project.svc.cluster.loca

2

执行结果如下。

确认

要查看集群信息,只需进入集群节点的终端或运行cluster info 命令即可。

使用基本命令进行验证。要在集群模式下查看redis-cli,需要添加-c。

验证集群模式是否可以成功使用。

参考本文,您可以访问petaexpress官网提交工单,即可获得10美元免费红包。数量有限,先到先得。申请流程:注册登录发送职位请求并回复“文章网址+文章标题+打赏申请”

原作者: u_16566195 : https://blog.51cto.com/u_16566195/11339289 转载

以上#KK8S学习教程相关内容摘自网络,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92943.html

(0)
CSDN的头像CSDN
上一篇 2024年7月4日
下一篇 2024年7月4日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注