一. 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可用区,已达到高可用或者同城灾备的部署. 二. 效果图 三. 实现原理 为了实现上述的效果,kubernetes提供了pod的亲和性和反亲和性来保证pod在节点级别,可用区级别的高可用部署:具体的值为topologyKey:failure-domain.beta.kubernetes.io/zone.…
一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller-manager.kube-scheduler 是多实例部署,所以只要有一个实例正常,就可以保证高可用: 集群内的 Pod 使用 K8S 服务域名 kubernetes 访问 kube-apiserver, kube-dns 会自动解析出多个 kube-apiserver 节点的 IP,所以也是高可…
更多内容,添加公众号关注: 场景一: 某智能家居厂家,用户喊出“小X同学,帮我扫地”后,服务器宕机了,扫地机器人不能立即启动,于是,用户可能再连续喊几次后,无奈又习惯的按下了扫地机器人的启动按钮. 场景二: 某高层建筑有2000个房间,10个房间烟感连续发出报警,理论上出现了火灾并在逐步扩散,恰巧,服务器又宕机了,然后... 两个场景都是服务器宕机,但后果却不同,根据业务实际情况,我们必须考虑软件架构的高可用性. 有人会说,上云吧,上云比自己搭建服务器稳定多了.通常情况下是这样的,但是,不要忽略…
(参考文章:https://www.linuxprobe.com/hadoop-high-available.html) 一.技术背景 影响HDFS集群不可用主要包括以下两种情况:一是NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用:  二是计划内的NameNode节点软件或硬件升级,导致集群在短时间内不可用. 为了解决上述问题,Hadoop给出了HDFS的高可用HA方案:HDFS通常由两个NameNode组成,一个处于active状态,另一个处于standby状态.…
1. 共有三个服务 discovery服务,domain服务,gateway服务. discovery服务是用来注册其他服务的,作为服务治理用. domain服务是主业务服务. gateway服务是所有服务的一个入口,用来做一些服务的判断和过滤用. 2. 有三台机器分别为192.168.1.1,192.168.1.2,192.168.1.3 3. 三台服务器上分别部署各个服务. 4. domain服务的需要注册到每个disscover服务上. 8002 是 discover服务的端口. clie…
转载自:https://www.qikqiak.com/post/deploy-kafka-ha-on-k8s/ Apache Kafka 是目前最流行的分布式消息发布订阅系统,虽然 Kafka 非常强大,但它同样复杂,需要一个高可用的强大平台来运行.在微服务盛行,大多数公司都采用分布式计算的今天,将 Kafka 作为核心的消息系统使用还是非常有优势的. 如果你在 Kubernetes 集群中运行你的微服务,那么在 Kubernetes 中运行 Kafka 集群也是很有意义的,这样可以利用其内置…
参考: 龙果学院http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2BnHpF8rHqMAsZ9U%2Ff1CcK%2Fi%2BOWuJ8pVcwcq6A%3D%3D 一.场景需求 二.Keepalived 简要介绍Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 w…
五.部署高可用etcd集群 etcd是key-value存储(同zookeeper),在整个kubernetes集群中处于中心数据库地位,以集群的方式部署,可有效避免单点故障. 这里采用静态配置的方式部署(另也可通过etcd提供的rest api在运行时动态添加,修改或删除集群成员). 以kubenode1为例,kubenode2&kubenode3做适当小调整. 1. 下载 [root@kubenode1 ~]# cd /usr/local/src/ [root@kubenode1 src]#…
第一篇 集群概述 keepalived + haproxy +Rabbitmq集群+MariaDB Galera高可用集群   部署openstack时使用单个控制节点是非常危险的,这样就意味着单个节点所在的服务器一旦拓机了,整个openstack就废掉了   所有我们基本上需要部署2个以上的控制节点,这里我们的方案是在前端使用keepalive + haproxy,这样openstack计算节点访问数据库和控制节点都是通过VIP反向代理到后端的. 数据库我们使用了MariaDB Galera高…
给节点打上标签: kubectl label node  <node_name> GPU=true   #打上标签 GPU=true 在创建pod的yaml文件时:  添加 nodeSelector 这样pod会在有标签 GPU=true 的node上面运行…