当前位置: 首页 > news >正文

湘潭网站推广大兴区营销网络推广行业

湘潭网站推广,大兴区营销网络推广行业,网站开发系统绿色版,百度推广登陆平台k8s通过liveness来探测微服务的存活性#xff0c;判断什么时候该重启容器实现自愈。比如访问 Web 服务器时显示 500 内部错误#xff0c;可能是系统超载#xff0c;也可能是资源死锁#xff0c;此时 httpd 进程并没有异常退出#xff0c;在这种情况下重启容器可能是最直接…       k8s通过liveness来探测微服务的存活性判断什么时候该重启容器实现自愈。比如访问 Web 服务器时显示 500 内部错误可能是系统超载也可能是资源死锁此时 httpd 进程并没有异常退出在这种情况下重启容器可能是最直接最有效的解决方案。        k8s通过readiness来探测微服务的什么时候准备就绪例如初始化时连接数据库加载缓存数据等等可能需要一段时间然后将容器加入到server的负载均衡池中对外提供服务。        k8s默认健康检查机制               每个容器启动时都会执行一个进程此进程由 Dockerfile 的 CMD 或 ENTRYPOINT 指定。如果进程退出时返回码非零则认为容器发生故障Kubernetes 就会根据 restartPolicy 重启容器。如果不特意配置Kubernetes 将对两种探测采取相同的默认行为。   OK那我们就来实现一下新建.Net Core Api项目 k8s-healthcheck新增Heathchecks控制器 [Route(/api/v1/heathchecks)]public class HeathchecksController : Controller{private readonly static DateTime _beginUtc DateTime.Now;[HttpGet][Route(test)]public ActionResultIEnumerablestring Test(){return new string[] { value1, value2 };}[HttpGet][ProducesResponseType((int)HttpStatusCode.OK)][ProducesResponseType((int)HttpStatusCode.ServiceUnavailable)][Route(liveness)]public async TaskIActionResult Liveness(){return await Task.RunIActionResult(() {if(DateTime.UtcNow.Subtract(_beginUtc).TotalSeconds60*10){Console.WriteLine({0} HealthChecks.Api is dead start restarting...,DateTime.Now);return this.NotFound();}else{Console.WriteLine({0} HealthChecks.Api is alive.,DateTime.Now);return this.Ok();}});}[HttpGet][ProducesResponseType((int)HttpStatusCode.OK)][ProducesResponseType((int)HttpStatusCode.ServiceUnavailable)][Route(readiness)]public async TaskIActionResult Readiness(){return await Task.RunIActionResult(() {if(DateTime.UtcNow.Subtract(_beginUtc).TotalSeconds30){Console.WriteLine({0} HealthChecks.Api is not ready...,DateTime.Now);return this.NotFound();}else{Console.WriteLine({0} HealthChecks is ready,start accepting traffic..., DateTime.Now);return this.Ok();}});}} 解释一下我们这里自定义的 liveness 和 readiness检查机制 liveness存活10分钟如果当前时间超过服务启动时间10分钟则探测失败否则探测成功。Kubernetes 如果连续执行 3 次 Liveness 探测均失败就会杀掉并重启容器。 readiness准备就绪30秒30秒后如果连续 3 次 Readiness 探测均失败后容器将被重置为不可用不接收 service 转发的请求。 从上面可以看到我们可以根据自身的需求来实现这两种机制然后提供给k8s进行探测。         k8s默认是根据命令进行探测的由于我们需要与微服务结合所以需要在yml文件中指定为http方式备注k8s提供了三种container probes方式command、TCP check、HTTP Get其他的方式希望大家下去自己实践k8s对于http方式探测成功的判断条件是请求的返回代码在 200-400 之间。 该项目的 deploy.yaml 内容如下 apiVersion: apps/v1 kind: Deployment metadata:namespace: k8s-ecoysystem-appsname: k8s-healthchecklabels:app: k8s-healthcheck spec:replicas: 3selector:matchLabels:app: k8s-healthchecktemplate:metadata:namespace: k8s-ecoysystem-appslabels:app: k8s-healthcheckspec:containers:- name: k8s-healthcheckimagePullPolicy: Alwaysimage: 1151322093/k8s-healthcheckports:- containerPort: 80readinessProbe:httpGet:path: /api/v1/heathchecks/readinessport: 80scheme: HTTP initialDelaySeconds: 30periodSeconds: 60 livenessProbe:httpGet:path: /api/v1/heathchecks/livenessport: 80scheme: HTTP initialDelaySeconds: 120periodSeconds: 60 运行kubectl apply -f deploy.yaml然后通过 kubectl get pod -n k8s-ecoysystem-apps查看当前运行的pod可以看到创建开始是不可以的Ready状态数量是0。   稍等等待一会发现都可以用了 然后我们通过 kubectl describe pod k8s-healthcheck-5c85bdcb69-f9zk9 -n k8s-ecoysystem-apps 命令可以查看更具体的信息 刚开始readiness返回404不可用状态不过我们设置的是30秒检查一次所以很快状态就消除了通过dashboard界面我们也可以看到更直观的信息     等待10分钟过后Liveness检测将会返回失败pod处于不可用状态       继续等待一会集群就会自愈完成前面说过Liveness检测3次失败就会删除pod并重启重启之后就一轮新的检测 从上面图中可以看到集群已经重启过1次继续等待一段时间如图    Liveness 探测和 Readiness 探测是独立执行的二者之间没有依赖可以单独使用也可以同时使用。用 Liveness 探测判断容器是否需要重启以实现自愈用 Readiness 探测判断容器是否已经准备好对外提供服务。   OK大功告成转载于:https://www.cnblogs.com/weiBlog/p/10056281.html
http://www.pierceye.com/news/382654/

相关文章:

  • 网站编辑的工作内容WordPress添加上传下载
  • 公司网站需求建设银行企业网站首页
  • 一般找素材都是做哪几个网站呢郑州seo外包阿亮
  • 广州个人网站建设公司jsp网站建设模板
  • 全国的网站建设网站建设肆金手指排名7
  • 做网站如何防止被抄袭17zwd一起做网站官网
  • 北京鲜花的网站建设做任务网站有哪些内容
  • 互联网营销网站建设印章在线生成
  • 厦门seo网站管理南宁广告网页设计人才招聘
  • 沂水住房与城乡建设局网站wordpress如何建立论坛
  • 贵州省文化旅游网站建设的必要性查网站流量的网址
  • 自己做的网站怎么传到空间啊平面设计技术培训机构
  • php 做网站xml地图回龙观手机网站开发服务
  • 四川建设工程网上合同备案网站如何重新打开wordpress
  • 免费个人网站模板下载qq邮箱企业邮箱注册
  • 泰兴市网站建设wp怎么打开wordpress
  • wordpress可以建哪些网站吗开发app需要多少人
  • 0基础学做网站什么做网站做个网站一般要多少钱啊
  • 外贸营销型网站建设多少钱wordpress付费浏览
  • 网站空间可以换吗进网站备案
  • 番禺建设网站开发软件工程专业介绍
  • 如何做网站定位网站建设报价新鸿儒
  • 商务网站建设包含了河北招投标公共服务平台
  • 高权重网站怎么发软文外贸平台app
  • nas服务器 做网站网页设计页面图片
  • 青海建设协会网站电子商务网站备案
  • 性价比高的广州网站建设不同用户入口的网站样板
  • 投资交易网站开发黑镜wordpress主题破解
  • 文化传媒公司网站建设西渡网站建设
  • 购物网站为什么做移动端seo优化快速排名