K8S-JFrog-DevOps实战训练营
DevOps CAMS模型
C 文化 Culture
A 自动化 Automation
M 指标维度 Measurement
S 分享 Sharing
DevOps Five Stages
- 规范化技术栈
- 推进标准化 & 降低不一致性因素
- 扩展DevOps实践,开始从一个团队,再到第二个第三个,最后到整个公司
- 自动化基础框架交付(PaaS平台)
- 提供自服务能力(自定义编排)
DevOps三步落地法
- 基于价值流的自动化持续交付,有六个实践,分别是:可视化、限制在制品、减少规模、减少交接数量、持续识别和拓展约束,以及在价值流中消除浪费。
- 每种架构一套标准化流水线
gitlab / jenkins / nexus / ansible - Kanban 或 Sprint计划板实现可视化工作,价值流交付可视化
- 每种架构一套标准化流水线
- 快速反馈,PaaS监控、应用监控
prometheus / grafana
持续反馈,交付之前快速反馈
jmeter / redmood / senium - DevOps度量
Hygieia
Docker
跨主机网络
- 大二层网络
vxlan, flannel
Mac in UDP - 三层路由
calico
必须有三层路由转发能力设备支持
流水线反模式
Docker镜像多次构建,不做升级
问题:你发布的并不是你测试的
解决:一次构建,多次升级
缺乏质量关卡
Docker镜像不进行安全漏洞扫描
问题:
- 30%镜像包含已知漏洞
- 14% npm package 包含已知漏洞
- 59% maven已知漏洞未修复
解决:DevSecOps
工具碎片化
问题: 缺少可追溯性,定位问题难
解决:流水线全系统记录,静态扫描结果、测试阶段
交付物或部署文件无版本化
问题:
- 部署回滚流程缺少规范及标准,管理复杂,易出错
- 可读性差,易出错,风险高
- 历史链混乱,追溯性差,定位问题难
解决:
Helm——Kubernetes官方包管理工具
配置与应用分离
持续交付流水线设计
基础镜像也会有单独的流水线、并且会漏洞扫描、做测试,并将它放在公共生产镜像仓库
微服务
痛点
开发语言、运行环境多
应用部署、管理难
依赖关系复杂、服务治理
配置管理
解决
容器
容器编排
Istio服务网格
ConfigMap & Secret
容器云优势
- 打包运行环境
- 集群管理,扩容伸缩
- 集群管理,扩容伸缩
- 降低运维成本
- 降低运维成本
- DevOps(20%)
使用Pod
- 方便管理
- 资源共享和通信
- 灵活
安全
configmap或者secret在应用启动前注入环境变量,然后在应用启动后,将环境变量去掉。
Kubernetes最佳实践
- 配置与应用分离
- 计算与存储分离
- 服务透明访问
- 善用调度特性
Kubernetes添加节点前Token忘了怎么办?
两种办法,1:找回;2:生成新的加入命令
- 找回忘记的Token
1
2
3
4
5
6
7
8[root@iZ2ze436suxv73x9jtiy2vZ helm-demo-master]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
cda2299d203e26b6499e8283937ffbb6489421ff761569fdf8172d03d9a889d6
[root@iZ2ze436suxv73x9jtiy2vZ helm-demo-master]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
qyg3si.njhyhixcqd18by2g 23h 2019-07-27T15:13:15+08:00 authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
[root@iZ2ze436suxv73x9jtiy2vZ helm-demo-master]# #kubeadm join 172.17.3.226:6443 --token qyg3si.njhyhixcqd18by2g --discovery-token-ca-cert-hash sha256:cda2299d203e26b6499e8283937ffbb6489421ff761569fdf8172d03d9a889d6 - 生成新的命令
1
[root@iZ2ze436suxv73x9jtiy2vZ helm-demo-master]# kubeadm token create --print-join-command
Helm
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Michael Blog!
评论