菠菜网

allbet:Kubernetes实战 - 从零开始搭建微服务 - 1.5 提高可用性-公布多节点的Node/Express网络应用程序

时间:5个月前   阅读:50

1.5 提高可用性-公布多节点的Node/Express网络应用程序

Kubernetes实战 - 从零开始搭建微服务

前言

在上一篇文章中,已经学习了若何简朴地开发一个单层网络应用。【Kubernetes实战 - 从零开始搭建微服务 1 - 使用kind构建一个单层架构Node/Express网络应用程序】 ,本文将在上一篇基础上,添加分外节点,目的在于提高可用性(high availability)。

关于可用性 high availability

在软件产物环境下,若何提高服务稳定性,进而制止用户流失,一直是架构师事情的焦点。高可用性有一些基本的设计原则,

  1. 找到单一故障点/单点故障,就是在整个架构中,找到其中可用性最低的服务/点,增添冗余,以制止单点故障
  2. 可靠交织(reliable crossover),没找到很好的中文翻译,即,当多服务交织在一起,相互依赖度极高,它们可能成为单点故障
  3. 及时发现故障

盘算可用性 high availability


A(可用性),MTBF(平均故障距离),MDT(平均修复时间)

举个例子,AWS S3 存储服务HA保证值就在99.99%,耐用性durability是11个9 - 99.999999999%。

kind 建立一个多节点集群

k8s设计自己就是在于降低容器devops维护复杂度,提高可用性。
在上一篇文章的先容里,整个App运行在单集群、单节点的情况下,虽然我们使用了Kubernetes,然则并没有施展其优势,node service 仍然是一个无冗余的单点服务。实在使用kind可以很容易地增添节点,以提高可用性。

3-nodes-config.yaml

# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
  - role: worker

  • source code
  • kind create cluster --config 3-nodes-config.yaml

  • kubectl get nodes

公布到k8s

参考【Kubernetes实战 - 从零开始搭建微服务 1 - 使用kind构建一个单层架构Node/Express网络应用程序】。

  • kind get clusters 获取所有cluster
  • deploy, (配置文件见上文,或者这里repo)
    - kubectl apply -f deployment.yaml
    - kubectl apply -f service.yaml

scale up 扩展

  • kubectl get deployments

  • kubectl get pods

停止现在,虽然集群是多节点,然则pods和deployment都只有一个,接下来就是最主要的一步,扩展/Scale Up

  • kubectl scale deployments/a-node-deployment --replicas=2

scale down 缩小

能大就能小,要不然就是貔貅了,

  • kubectl scale deployments/a-node-deployment --replicas=1

结语

以上是一个k8s 手动扩展/缩小的历程,在现实产物中,这一样平常是一个自动历程,可以依托于云/k8s服务提供商或者k8s配置文件,以平衡破费和可用性。

参考及推荐

  • source code
  • AWS s3 faq
  • kind k8s quick start

一些入门架构文章

  • 什么是高可用
  • cnblogs jeff 三、高可用系统设计
,

欧博网址开户

www.cx11yj.cn欢迎进入欧博网址(Allbet Gaming),欧博网址开放会员注册、代理开户、电脑客户端下载、苹果安卓下载等业务。

上一篇:约搏对战平台:百度回应退市;中概股大跌;逐日优鲜完成新融资;丁磊俞敏洪两会建言献策|Do早报

下一篇:allbet gaming代理:她把胡歌亲到吐,将张嘉译亲肿,被指太旷达,今32岁却仍独身一人

网友评论