前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >上k8s生产环境的准备

上k8s生产环境的准备

作者头像
没有故事的陈师傅
发布于 2022-05-23 01:55:31
发布于 2022-05-23 01:55:31
6160
举报
文章被收录于专栏:运维开发故事运维开发故事

在生产中运行应用程序可能很棘手。这篇文章提出了一个自以为是的清单,用于在 Kubernetes 上使用 Web 服务(即应用程序公开 HTTP API)进入生产环境。

一般

  • 应用程序的名称、描述、用途和拥有团队被清楚地记录在案(例如通过服务树)
  • 定义应用程序的关键级别(例如,如果应用程序对业务非常关键,则为“关键链路程序”)
  • 开发团队对k8s技术栈有足够的知识/经验,比如服务无状态等
  • 确定并通知负责的 24/7 待命团队
  • 存在上线计划,包括(潜在回滚的步骤)

应用

  • 应用程序的代码库 (git) 有关于如何开发、如何配置以及如何更改的明确说明(对于紧急修复很重要)
  • 代码依赖被固定(即修补程序更改不会意外引入新库)
  • 遵循OpenTracing/OpenTelemetry语义约定
  • 所有发起的 HTTP 调用都定义超时时间
  • HTTP 连接池根据预期流量配置合理的值
  • 线程池或非阻塞异步代码已正确实现与配置
  • redis,数据库连接池配置大小正确
  • 为依赖服务实施重试和重试策略(例如退避抖动)
  • 根据业务需求定义的回滚机制
  • 实施了减载/速率限制机制(可能是提供的基础设施的一部分)
  • 应用程序指标公开以供收集(例如由 Prometheus 抓取)
  • 应用程序日志转到 stdout/stderr
  • 应用程序日志遵循良好的实践(例如结构化日志记录、有意义的消息)、明确定义日志级别,并且默认情况下对生产禁用调试日志记录(可以选择打开)
  • 应用程序容器因致命错误而崩溃(即它没有进入某些不可恢复的状态或死锁)
  • 应用程序设计与代码由高级工程师审查

安全与合规

  • 应用程序可以作为非特权用户(非 root)运行
  • 应用程序不需要可写的容器文件系统(即可以只读挂载)
  • HTTP 请求经过身份验证和授权(例如使用 OAuth
  • 缓解拒绝服务 (DOS) 攻击的机制已经到位(例如入口速率限制、WAF)
  • 进行了安全审计
  • 代码/依赖项的自动漏洞检查已经到位
  • 处理后的数据被理解、分类(例如 PII)并记录在案
  • 已创建威胁模型并记录风险
  • 遵循其他适用的组织规则和合规标准

持续集成/持续交付

  • 每次更改都会自动运行
  • 自动化测试是交付管道的一部分
  • 生产部署不需要手动操作
  • 所有相关团队成员都可以部署和回滚
  • 生产部署有冒烟测试和可选的自动回滚
  • 从代码提交到生产的前置时间很快(例如 15 分钟或更短,包括测试运行)

Kubernetes

  • 开发团队受过 Kubernetes 主题培训,了解相关概念
  • Kubernetes 清单使用最新的 API 版本(例如,用于部署的apps/v1)
  • 容器以非 root 用户身份运行并使用只读文件系统
  • 定义了适当的就绪探针
  • 未使用 Liveness Probe,或者使用 Liveness Probe 有明确的理由
  • Kubernetes 部署至少有两个副本
  • 如果足够,则配置水平自动缩放 (HPA)
  • 根据性能与负载测试设置内存和 CPU 请求
  • 内存限制等于内存请求(避免内存过度使用)
  • 未设置 CPU 限制或 CPU 节流的影响很好理解
  • 为容器环境正确配置了应用程序(例如 JVM 堆、单线程运行时、非容器感知的运行时)
  • 每个容器运行单个应用程序进程
  • 应用程序可以在不中断的情况下处理正常关闭和滚动更新
  • 如果应用程序不处理正常终止,则使用Pod Lifecycle Hook(例如preStop 中的“sleep 20” )
  • 设置所有必需的 Pod 标签
  • 应用程序设置为高可用性:Pod 分布在故障域或应用程序部署到多个集群
  • Kubernetes Service 为 pod 使用正确的标签选择器(例如,不仅匹配“应用程序”标签,还匹配“组件”和“环境”以供将来扩展)
  • 可选:根据需要使用容忍(例如将 pod 绑定到特定的节点池)

监控

  • 收集了四个黄金信号的指标
  • 收集应用程序指标(例如通过 Prometheus 抓取)
  • 数据库(例如 PostgreSQL 数据库)受到监控
  • SLO 已定义
  • 存在监控仪表板(例如 Grafana)(可以自动设置)
  • 警报规则是根据影响而不是潜在原因定义的

测试

  • 断点测试(系统/混沌测试)
  • 执行负载测试以反映预期的流量模式
  • 测试了数据存储(如 PostgreSQL 数据库)的备份和恢复

24/7 服务团队

  • 所有相关的 24/7服务团队都被告知上线(例如其他团队、SRE 或其他角色,如事件指挥官)
  • 24/7 服务团队对应用程序和业务环境有足够的了解
  • 24/7 服务团队拥有必要的生产访问权限(例如 kubectl、kube-web-view、应用程序日志)
  • 24/7 服务团队拥有解决技术堆栈(例如 JVM)生产问题的专业知识
  • 24/7 服务团队经过培训并有信心执行标准操作(扩展、回滚等)
  • 设置了呼叫 24/7 服务团队的监控警报
  • 告警自动升级规则已到位(例如,在 10 分钟后没有确认升级高级级别)
  • 存在进行事后分析和传播事件学习的过程
  • 定期进行应用程序与操作审查(例如查看 SLO 违规情况)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发故事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
树莓派进入Bullseye版本!完全兼容Linux,视频驱动全开源
自2019年以来,树莓派的操作系统Raspberry Pi OS一直都是基于Debian10「Buster」开发的。
新智元
2021/11/23
1.6K0
玩树莓派(raspberry pi) 2/3 raspbian的遇到的一些问题
先要有一个制作一个U启动盘。先将SD卡格式化,再用Win32DiskImager或dd命令将raspberry官方下载的镜像烧写进去(这种文档很多的,随便找一个都可以完成操作)。
sunsky
2020/08/20
1.5K0
树莓派:设置与软件安装
拿到树莓派后,你需要进行一些初始化设置,以便于用起来更方便。除此之外,你可能需要安装一些软件,以便树莓派能实现更加强大的功能。 常见初始化设置 1)设置密码: 树莓派的默认用户名是pi,没有密码。这意味着别人可以随意使用你的树莓派。你可以在终端中为pi用户设置密码:  $sudo passwd pi 2)拓展文件系统 一开始的Raspbian镜像只有4G。这意味着你的树莓派也只会使用SD卡上4G的空间。如果SD卡有16G大小,那么就浪费了12G的空间。为此,我们可以让Raspbian的文件系统扩展到整张SD
Vamei
2018/01/18
2.9K0
树莓派:设置与软件安装
用Raspberry Pi Zero打造「即插即用」的Web服务器
*本文原创作者:yfgeek,未经许可禁止转载 虽然Raspberry Pi Zero只有4.5英镑,非常便宜,但确实具有局限性,由于缺少网口、WiFi,功能比较单一,可曾设想,用Raspberry
FB客服
2018/02/09
2.2K0
用Raspberry Pi Zero打造「即插即用」的Web服务器
Hello, Raspberry Pi.
最近在研究自动升级开源项目的时候偶然想到IoT领域的自动升级,突然想起2016年买的树莓派(Raspberry Pi)。那就分享一下如何入门树莓派的教程,我当时一共买了两块一款是Raspberry Pi 3b(2016年价格259元去年以抽奖送给社区小伙伴)另一块Raspberry Pi 3 Model b+(2018年价格221元)。在今年买了一块Raspberry Pico(24元)这些统称为开发板具体的型号如下:
JusterZhu
2022/12/07
3K0
Hello, Raspberry Pi.
树莓派4最小化安装Linux
Raspberry Pi 4 Model B发布了半年了,其强大的性能与低廉的价格使得其非常的热门。
bigmagic
2020/05/18
3.4K0
树莓派4b入手 (下篇)
推荐普通用户使用官方镜像即可. 该系统对树莓派设备适配优化的最为成熟. Download Raspberry Pi OS for Raspberry Pi https://www.raspberrypi.org/downloads/raspberry-pi-os/
acc8226
2022/05/17
1.6K0
树莓派4b入手 (下篇)
树莓派3B+安装Raspbian简易教程
刚买的树莓派3B+没过一周,树莓派4就出来了。不过算了,基本上用起来差不多,所以大家继续看吧。最近有点忙,所以就不BB了,直接上主题。
乐百川
2019/07/02
4.1K0
树莓派3B+安装Raspbian简易教程
树莓派4b基础入门「建议收藏」
树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,旨为学生计算机编程教育而设计,其系统基于Linux,由注册于英国的慈善组织“Raspberry Pi基金会”开发,Eben·Upton为项目带头人。别看其外表“娇小”,内“心”却很强大,上网、看视频、听音乐等功能都有,可谓是“麻雀虽小,五脏俱全”。自问世以来,受众多计算机发烧友和创客的追捧。 1.树莓派的家族
全栈程序员站长
2022/07/01
7.4K0
树莓派4b基础入门「建议收藏」
基于CodeSys和Raspberry Pi制作简单PLC
目前常见的PLC厂家有:SIEMENS、Rockwell、Schneider、Mitsubishi、Beckhoff、GE、Omron、台达……但常用的PLC编程语言都是相似的,比如LD、ST、FBD、CFC、IL、GRAPH等,CoDeSys支持LD、ST、IL、FBD、CFC等,用CoDeSys可以学习多种PLC编程语言,也可以向其他PLC编程软件切换,比如TwinCAT2和SoMachine就是基于CoDeSys开发的。用Raspberry Pi代替工业现场使用的PLC便于学习和各类研究等。
剑指工控
2021/11/09
2.7K0
基于CodeSys和Raspberry Pi制作简单PLC
Raspberry Pi尝试Raspbmc可以用Yatse遥控
作者:matrix 被围观: 2,057 次 发布时间:2013-07-17 分类:兼容并蓄 零零星星 | 无评论 »
HHTjim 部落格
2022/09/26
5080
Raspberry Pi尝试Raspbmc可以用Yatse遥控
树莓派4B上手 - 从初始设置开始
环境说明: 设备:树莓派4B 操作系统:Raspberry Pi OS 5.4 32位
知识分子没文化
2023/07/01
6270
BeagleBone AI VS Raspberry 4评测
最近一直在研究树莓派4和BeagleBone AI。对于派4的使用和资料查询的比较多,但是对于狗板的探究也没有停下来。说起树莓派,大家都很熟悉,但是狗板却不一定玩过。其实两者都是卡片电脑,如果单从使用的角度来说,两者并无十分大的区别,但是树莓派的社区很强大,开源项目也很多,狗板社区虽然不多,但是由于有了树莓派社区的支持,使得其生态也不断的完善起来。
bigmagic
2020/11/17
2K0
BeagleBone AI VS Raspberry 4评测
树莓派 Raspberry Pi 连接 WiFi
在有显示器和鼠标键盘的情况下,而你安装的系统又是包含桌面图形界面的,那么直接开机,进入系统后,可以看到桌面如下图。
全栈程序员站长
2022/08/30
3.1K0
树莓派 Raspberry Pi 连接 WiFi
Raspberry Pi上的OpenVINO,OpenCV和Movidius NCS
在本教程中,将学习如何将OpenVINO工具包与OpenCV一起使用,以便在Raspberry Pi上进行更快速的深度学习推理。
代码医生工作室
2019/06/21
4.4K0
树莓派安装raspbian并配置开发环境
首先准备好我们要烧录的raspbian系统,可以在树莓派官网中下载https://www.raspberrypi.org/downloads/
墨文
2020/02/28
3.8K0
树莓派安装raspbian并配置开发环境
远程控制树莓派3b上的pi pico
树莓派pi pico和树莓派4相比差别很大,但是pi pico有一些特点是树莓派4上没有的,比如实时性控制上,采用cortex-m系列方案会更加占据优势,所以往往都会使用树莓派+Arduino组成一个具有实时控制的系统。另外树莓派上是没有AD采样的,而pi pico则有12位的ad采样功能。而且在树莓派3b或者树莓派2上,只有一路串口,这样只需要一个低成本的pi pico则可以实现I2C、SPI、UART的扩展,这样是非常方便的,得一提的则是树莓派上没有而pi pico的ADC功能,下面通过一个集成方案来将树莓派和pi pico的ADC结合起来进行使用。
bigmagic
2021/03/10
1.6K0
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
对于很多程序员而言,树莓派如今已经如雷贯耳,对于我一个新入行AI领域研究的新人而言,树莓派激发了我极大的兴趣。最开始知道树莓派,是因为我之前做了一个语音对话机器人,然后在查询有关资料的时候发现有人用树莓派做了一个语音对话机器人,于是乎很惊奇,心中一直想自己动手实验一下。刚好那时候听说树莓派4B新上市,各方面的性能至少提升了3倍以上,好奇心害死猫,所以我决定入坑树莓派了。
全栈程序员站长
2022/07/01
9K0
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
树莓派python编程指南_树莓派python软件
http://downloads.raspberrypi.org/raspbian_latest
全栈程序员站长
2022/11/04
3.3K0
树莓派python编程指南_树莓派python软件
入门树莓派及NAS软件安装
Raspberry PI是arm架构的OS。官方售卖的是主板,电源、风扇、SD卡、盒子等配件需要自行购买。
码之有理
2024/06/12
5910
推荐阅读
相关推荐
树莓派进入Bullseye版本!完全兼容Linux,视频驱动全开源
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档