之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制;2)多harbor实例共享后端存储。
一、Harbor双主复制高可用集群
1)主从同步harbor官方默认提供主从复制的方案来解决镜像同步问题,通过复制的方式,我们可以实时将测试环境harbor仓库的镜像同步到生产环境harbor,类似于如下流程:
在实际生产运维的中,往往需要把镜像发布到几十或上百台...
/
558 次浏览/
容器虚拟化
关于集群中的"脑裂"问题,之前已经在这里详细介绍过,下面重点说下Zookeeper脑裂问题的处理办法。ooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能。脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Zookeeper集群中有Leader节...
/
508 次浏览/
容器虚拟化
StatefulSet是为了解决有状态服务的容器问题而设计的,对应的Deployment和ReplicaSet是为了无状态服务而设计的。
StatefulSet应用场景包括:
稳定的持久化存储,即Pod重新调度后还是能访问到相同的持久化数据,基于PVC来实现
稳定的网络标志,即Pod重新调度后其PodName和HostName不变,基于Headless Service(即没有Cluster IP的Service)来实现
有序部署,...
/
508 次浏览/
容器虚拟化
NFS高可用目的
部署NFS双机热备高可用环境,用作K8S容器集群的远程存储,实现K8S数据持久化。
NFS高可用思路
NFS + Keepalived 实现高可用,防止单点故障。
Rsync+Inotify 实现主备间共享数据进行同步。
环境准备
技术要求
两个NFS节点机器的配置要一致
keepalived监...
/
506 次浏览/
容器虚拟化
K8S自身带有优雅终止Pod容器的机制,发送SIGTERM终止信号,在规定的terminationGracePeriodSeconds优雅时间内完成Pod优雅终止动作。
terminationGracePeriodSeconds默认是30秒,该时间是从Pod的Termination状态开始计算的,包括了Prestop钩子处理时间、SIGTERM信号发送即程序优雅处理时间。
Pod容器终止流程:1)新Pod启动,通过Readiness就绪性探测,加入serv...
/
497 次浏览/
容器虚拟化
Harbor环境部署的要求:系统版本在Centos7.5以上、内核版本在4.4X以上、ip_forward路由转发功能要打开。
一、环境准备
[root@k8s-harbor01 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@k8s-harbor01 ~]# uname -r
4.4.232-1.el7.elrepo.x86_64
[r...
/
499 次浏览/
容器虚拟化
一、基本知识简要说明
RocketMQ主要有四大组成部分:NameServer、Broker、Producer、Consumer。
Nameserver作用:
NameServer 可以说是 Broker 的注册中心,Broker 在启动的时候,会根据配置信息向所有的 NameServer 进行注册,NameServer 会和每次前来注册的 Broker 保持长连接,并每 30s 检查...
/
496 次浏览/
容器虚拟化
一、基础说明
Kafka和zookeeper是两种典型的有状态的应用集群服务。首先kafka和zookeeper都需要存储盘来保存有状态信息;其次kafka和zookeeper每一个实例都需要有对应的实例Id (Kafka需broker.id, zookeeper需要my.id) 来作为集群内部每个成员的标识,集群内节点之间进行内部通信时需要用到这些标识。
对于这类服务的部署,需要解决两个大的问题:一个是状态保存,另一...
/
483 次浏览/
容器虚拟化
kafka-manager 是雅虎开源的apache-kafka管理工具,是用Scala编写的,可以在web页面进行kafka的相关操作。
一、制作kafkamanager的image镜像
下载kafka-manager-2.0.0.2.zip,在解压目录的conf下的application.conf文件里,修改kafka-manager.zkhosts地址和cmake.zkhosts地址为:...
/
604 次浏览/
容器虚拟化
一、Redis 介绍
Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理。它可以存储和操作高级数据类型,例如列表,地图,集合和排序集合。
由于Redis接受多种格式的密钥,因此可以在服务器上执行操作,从而减少了客户端的工作量。
它仅将磁盘用于持久性,而将数据完全保存在内存中。
Redis是一种流行的数据存储解决方案,并被GitHub,P...
/
553 次浏览/
容器虚拟化