读《基于 Kubernetes 的容器云平台实战》
记忆中第二本关于 k8s 的书。很大可能记错了。一本深度讲解容器云领域关键技术及应用实践的书。以 Docker 技术基础介绍为开篇,详述了 Kubernetes 技术架构及原理,并提供了容器应用部署实例。容器引擎Containerd-shim 的目的主要是避免容器中出现僵尸进程并减轻容器处理系统信号的负担。该组件是可选的。目前 Dockerd 自动生成的...
记忆中第二本关于 k8s 的书。很大可能记错了。
一本深度讲解容器云领域关键技术及应用实践的书。
以 Docker 技术基础介绍为开篇,详述了 Kubernetes 技术架构及原理,并提供了容器应用部署实例。
容器引擎
Containerd-shim 的目的主要是避免容器中出现僵尸进程并减轻容器处理系统信号的负担。
该组件是可选的。目前 Dockerd 自动生成的 Containerd 的启动配置文件中,已经将该组件设为启用。
Containerd-shim gRPC 接口方法及其说明
Containerd gRPC 接口方法及其说明
镜像管理
-
列出本地镜像,
-
从镜像仓库下载镜像,
-
上传镜像,
-
导出镜像到 tar 文件,
-
导入镜像,
-
查看镜像历史,
-
删除本地镜像
-
构建镜像
-
修改本地镜像标识
Dockerfile 常用命令集
创建完 Dockerfile 文件后,在 Dockerfile 目录中执行以下命令来构建镜像
docker build -t <镜像名称>:<tag>
镜像仓库管理
Kubernetes
云计算 PaaS 领域的集大成者。
应用的构建,部署,运维管理,
用于自动部署,扩展和管理容器化应用程序的开源系统,由 google 设计并捐赠。
2014 年 google 首次对外宣布。
让用户可以在物理机和虚拟机集群上调用和运行 Docker 容器。
强大的 PaaS 功能
1,自动装箱
2,弹性伸缩
3,服务发现和负载均衡
4,自愈
重新启动失败的容器,以便替换故障容器
5,自动发布和回滚
6,密钥和配置管理
2017年7月,Kubernetes 1.6 版本中,单集群的规模终于达到 5000个 node 节点,15万个 Pod 的水平。
Pod: Kubernetes 的基本调度单元,一个 Pod 包含一个或多个容器,这样可以保证同一个 Pod 内的容器运行在同一个
安装:Minikube 方式。下载一个二进制文件即可拥有一个单机版的 kubernetes 而且支持各个平台。
Pod
如何运行 Pod
如何保证 Pod 的数量
如何访问 Pod
Pod 对象的增,删,改,查操作
Pod 支持三种重启策略:
-
Always 默认策略:当容器终止退出后总是重启容器
-
OnFailure 当容器终止且异常退出时重启
-
Never 从不重启
通过 Replication Controller 可以非常方便地实现 Pod 的弹性伸缩。
扩展分为二种:
一,水平扩展,针对于实例数目的增减
二,垂直扩展,即单个实例可以使用的资源的增减
健康检查
返回状态值:200~399之间是正常
为什么需要容器云平台?
因为
1,业务快速发展需要应用快速上线并且能适应突发性的交易访问需求。
2,环境不一致影响研发效率导致应用快速交付。
3,缺乏 DevOps 有效落地手段,促进开发和运维合作。
4,运维割裂,自动化水平不高,运维人力成本高。
监控
1,平台监控
2,应用监控
性能
可用性
3,中间件监控
接口可用性次数超过阀值时将会删除对应容器(或 Pod )实例。
4,交易监控
5,性能监控
6,事件与告警
微服务网关
1,几种网关实现方案
nginx + lua
不能对 api 进行真正管理,不能算是真正意义上的网关。
kong
api 管理软件,依赖 nginx,性能及稳定性好,但是商用软件。
spring cloud Zuul
是 Netfix 的 api 网关,还需要完善路由规则的动态配置才能更好使用。使用配置文件实现。
2,自研 API 网关实现方案:
基于 openResty 二次开发;使用 redis 存储微服务的路由信息;
基于正则表达式实现 api 服务、IUI 内存、自定义服务分离;
容器平台的 API 网关:分为平台管理网关;应用网关;
数据库连接池
使用分布式部署,原来数据库连接池中的连接数量要修改,各个节点中总数加起来不能超过传统应用的总数。
定时任务
一个单独的容器。
有状态任务改造
将有状态改造成无状态任务,需要将状态数据存储到类似 redis 中。
存储改造
使用共享或分布式存储,不要使用本地的。
日志信息
路径,日志格式,要统一规划。
更多推荐
所有评论(0)