示例redis1: 将每个redis.yaml 的路径以及名称进行更改,如果不暴露端口可以将 type: NodePort 改为 ClusterIP,去掉nodePort: 32255,内部端口想修改可以将redis-2改为7001以此类推
vi redis-1.yaml
kind: Service
apiVersion: v1
metadata:
name: redis-1
namespace: default
labels:
app: redis-1
spec:
type: NodePort
selector:
app: redis-1
ports:
- port: 6379
name: rest
targetPort: 6379
protocol: TCP
nodePort: 32255
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-1
namespace: default
spec:
replicas: 1
minReadySeconds: 120
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
selector:
matchLabels:
app: redis-1
template:
metadata:
labels:
app: redis-1
spec:
containers:
- name: redis-1
image: redis:latest
imagePullPolicy: Always
command:
- "redis-server"
args:
- "/etc/redis/redis.conf"
resources:
limits:
cpu: 1024m
memory: 1024Mi
requests:
cpu: 50m
memory: 500Mi
ports:
- containerPort: 6379
name: rest
protocol: TCP
volumeMounts:
- mountPath: /var/lib/redis
name: data
- mountPath: /etc/redis/redis.conf
name: conf
securityContext:
privileged: true
dnsPolicy: ClusterFirst
nodeName: 主机名或ip
volumes:
- hostPath:
path: /srv/redis/test/data
name: data
- hostPath:
path: /srv/redis/test/redis.conf
name: conf
kubectl apply -f redis-1.yaml
示例redis2:创建4个或6个自行决定 将每个redis.yaml 的路径以及名称进行更改
vi redis-2.yaml
kind: Service
apiVersion: v1
metadata:
name: redis-2
namespace: default
labels:
app: redis-2
spec:
type: NodePort
selector:
app: redis-2
ports:
- port: 6379
name: rest
targetPort: 6379
protocol: TCP
nodePort: 32266
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-2
namespace: default
spec:
replicas: 1
minReadySeconds: 120
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
selector:
matchLabels:
app: redis-2
template:
metadata:
labels:
app: redis-2
spec:
containers:
- name: redis-2
image: redis:latest
imagePullPolicy: Never
command:
- "redis-server"
args:
- "/etc/redis/redis.conf"
resources:
limits:
cpu: 1024m
memory: 1024Mi
requests:
cpu: 50m
memory: 500Mi
ports:
- containerPort: 6379
name: rest
protocol: TCP
volumeMounts:
- mountPath: /var/lib/redis
name: data
- mountPath: /etc/redis/redis.conf
name: conf
securityContext:
privileged: true
dnsPolicy: ClusterFirst
nodeName: 主机名或ip
volumes:
- hostPath:
path: /srv/redis/test/data2
name: data
- hostPath:
path: /srv/redis/test/redis.conf
name: conf
kubectl apply -f redis-2.yaml
node 节点操作
vi /srv/redis/test/redis.conf
bind 0.0.0.0
masterauth 123456
requirepass 123456
slowlog-log-slower-than 100000
appendonly yes
cluster-enabled yes
cluster-config-file /var/lib/redis/nodes.conf
cluster-node-timeout 5000
dir /var/lib/redis
port 6379
node节点进行操作(本人是在单台node操作,如果有多个节点可以在多个节点进行创建,reids.conf也需要在多个节点进行创建) 先创建data1-data6
mkdir -p /srv/redis/test/data{1..6}
主节点操作,查看redis 容器ip
kubectl get pods -o wide | grep redis
启动好reids后进入容器后执行组建集群
redis-cli --cluster create --cluster-replicas 1 -a "密码" 192.168.68.117:7000 192.168.94.253:7001 192.168.70.33:7002 192.168.68.117:7003 192.168.94.253:7004 192.168.70.33:7005
查看集群信息 在任意一个 redis 节点的主机上执行以下命令:
# redis-cli -c -a "12345" -h 192.168.190.133 -p 7002 cluster info
# redis-cli -c -a "12345" -h 192.168.190.133 -p 7002 cluster nodes
开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建
文章目录查看ES信息查看节点信息查看分片信息实际场景下ES分片及副本数量应该怎么分关于ES的灵活使用查看ES信息查看版本kibana:GET/查看节点信息GET/_cat/nodes?v解释:ip:集群中节点的ip地址;heap.percent:堆内存的占用百分比;ram.percent:总内存的占用百分比,其实这个不是很准确,因为buff/cache和available也被当作使用内存;cpu:cpu占用百分比;load_1m:1分钟内cpu负载;load_5m:5分钟内cpu负载;load_15m:15分钟内cpu负载;node.role:上图的dilmrt代表全部权限master:*代表
elasticsearch查看当前集群中的master节点是哪个需要使用_cat监控命令,具体如下。查看方法es主节点确定命令,以kibana上查看示例如下:GET_cat/nodesv返回结果示例如下:ipheap.percentram.percentcpuload_1mload_5mload_15mnode.rolemastername172.16.16.188529952.591.701.45mdi-elastic3172.16.16.187329950.990.991.19mdi-elastic2172.16.16.231699940.871.001.03mdi-elastic4172
文章目录一、污点(Taint)1、污点简介2、污点的组成3、污点的设置和去除二、容忍(Tolerations)1、容忍简介2、容忍的基本用法3、示例4、多污点与多容忍配置三、警戒(cordon)和转移(drain)四、Pod启动阶段(相位phase)五、故障排除步骤一、污点(Taint)节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点Taint则相反,它使节点能够排斥一类特定的PodTaint和Toleration相互配合,可以用来避免Pod被分配到不合适的节点上。每个节点上都可以应用一个或多个taint,这表示对于那些不能容忍这些taint的Pod,是不会被
(二十二)-框架主入口main.py设计&log日志调用和生成1测试目的2测试需求3需求分析4详细设计4.1新建存放日志目录log4.1.1配置config.py中写入log的目录4.2`baseInfo.py`中加入日志4.3`test_gedit.py`中加入日志4.4主函数入口main.py中调用日志5调用日志主函数main.py源码6`baseInfo.py`源码7`test_gedit.py`源码8运行效果9目前框架结构1测试目的组织运行所有的测试用例,并调用日志模块,便于问题定位。
(1)为什么写这个话题(Why)读万卷书不如行千里路。这次搭建MQTT服务,遇到了一些误解,特此记录备忘。主要包括:(1)服务(Broker)的账户管理与网页管理平台的账户(2)与web应用的集成(Spring系)(2)ActiveMQ版本选择因为JAVA环境是JDK8,所以按兼容性考虑选择了ActiveMQ5.15的最后版本5.15.15。如果你是JDK11则可考虑ActiveMQ的最新版本5.17或5.18。ActiveMQ支持MQTTv3.1.1andv3.1。(3)ActiveMQ与web应用的集成主要介绍与Spring系的webapp集成(SpringBoot和SpringMVC)。
Kubernetes(K8s)是一个用于管理容器化应用程序的开源平台,可以帮助开发人员更轻松地部署、管理和扩展应用程序。在Kubernetes中,集群划分是一种重要的概念,可以帮助我们更好地组织和管理集群中的节点和资源。本文将介绍如何使用Kubernetes对集群进行划分,并提供详细的操作示例,希望能够帮助读者更好地了解和使用Kubernetes平台。Node划分Node划分是将集群中的节点按照一定的规则进行划分。在Kubernetes中,可以使用NodeSelector和Affinity机制来实现Node划分。NodeSelectorNodeSelector是一种将Pod调度到符合特定节点标
这篇文章,主要介绍如何使用SpringCloud微服务组件从0到1搭建一个微服务工程。目录一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件(2)微服务依赖1.2、搭建注册中心(1)引入依赖(2)配置文件(3)启动类1.3、搭建配置中心(1)引入依赖(2)配置文件(3)启动类1.4、搭建API网关(1)引入依赖(2)配置文件(3)启动类1.5、搭建服务提供者(1)引入依赖(2)配置文件(3)启动类1.6、搭建服务消费者(1)引入依赖(2)配置文件(3)启动类1.7、运行测试一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件这里主要是使用的SpringCloudNetflix
文章目录Kubernetes(k8s)工作负载一、Workloads二、Pod三、Deployment四、RC、RS、DaemonSet、StatefulSet五、Job、CronJob1、Job2、CronJob六、GCKubernetes(k8s)工作负载一、Workloads什么是工作负载(Workloads)工作负载是运行在Kubernetes上的一个应用程序。一个应用很复杂,可能由单个组件或者多个组件共同完成。无论怎样我们可以用一组Pod来表示一个应用,也就是一个工作负载Pod又是一组容器(Containers)所以关系又像是这样工作负载(Workloads)控制一组PodPod控制
前言 前端时间PHP项目部署升级需要,需要把Laravel开发的项目部署K8s上,下面以laravel项目为例,讲解采用yaml文件方式部署项目。一、部署步骤1.创建Dockerfile文件Dockerfile是一个用来构建镜像的文本文件,在容器运行时,需要把项目文件和项目运行所必须的组件安装其中。#基础镜像FROMphp:7.4-fpm#时区ARGTZ=Asia/Shanghai#更换容器时区RUNcp"/usr/share/zoneinfo/$TZ"/etc/localtime&&echo"$TZ">/etc/timezone#替换成阿里apt-get源RUNsed-i"s@http