总体评价
- 阅读状态:已读
- 阅读时间:2021/02/27 - 2021/03/06
- 个人评价:一般
本书前十二章内容适合刚接触 K8S 的小白做入门学习,后面几章内容略显仓促收尾。作为一本 K8S 的入门书籍,还是不错的。
小白学习,一定要记得练习。
读书笔记
2021/02/27 chap. 第1章 先把Kubernetes跑起来
本书偏入门,第一章主要是通过 minikube 来体验 K8S 的功能,学一项新技术,首先需要跑起来。
2021/02/28 chap. 第2章 重要概念
本章内容主要是介绍 K8S 中的一些名词概念以及各个组件在 K8S 中的职责。
2021/03/01 chap. 至第4章 Kubernetes架构
学习了如何通过 kubeadm 部署三节点的 K8S 集群,同时学习了 K8S 的架构以及 Master 和 Node 节点分别跑哪些组件和服务。
PS:因个人资源与网络环境问题,个人使用
k3d+k3s
实践。
2021/03/02 chap. 第5章 运行应用
学习了 K8S 中不同类型 Controller 的作用以及如何通过 yaml 文件去部署这些 Controller 应用。
2021/03/03 chap. 至第7章 Rolling Update
K8S 里应用是通过 Service 关联一组 Pod 同时对外提供访问机制。K8S 提供了多种 Service 类型:
- ClusterIP:默认类型,Service 通过 Cluster 内部的 IP 对外提供服务,只有 Cluster 内的节点和 Pod 可访问。
- NodePort:Service 通过 Cluster 节点的静态端口对外提供服务。Cluster 外部可以通过
<NodeIP>:<NodePort>
访问 Service。这种方式下存在几个 Port 的概念,注意不要搞混。- nodePort 是节点上监听的端口。
- port 是 ClusterIP 上监听的端口。
- targetPort 是 Pod 监听的端口。
- LoadBalancer
K8S 提供了 2 个参数 maxSurge 和 maxUnavailable 来精细控制 Pod 滚动更新时的替换数量,默认是 1。通过在 apply -f xxx.yaml --record
可以将当前命令记录到 K8S
的reversion 记录中,此时就可以通过 rollout undo
去回滚到某个版本了。
2021/03/04 chap. 至第9章 数据管理
健康检查是 K8S 中一个非常重要的功能,可以通过配置 liveness 和 readiness 实现精细化的健康检查。
- liveness:主要用于判断容器是否正常运行,如果不正常,则会重启容器。
- readiness:主要用于判断容器是否可以正常对外提供服务,如果不正常,则不会加入到 Service 的负载均衡中。
通过 Volume 对 K8S 中的容器提供存储能力,同时学习了 PV 和 PVC 的作用,以及通过 StorageClass 进行动态分配
PV。最后实践了一个小例子,通过对 MySQL 数据库提供持久化存储,模拟节点宕机,保证服务可用且数据完好。
2021/03/05 chap. 至第11章 Helm——Kubernetes的包管理器
K8S 中可以通过 Secret 传递密文配置,通过 ConfigMap 传递明文参数,Secret & ConfigMap 均可以通过 Volume 进行挂载,此时配置信息会进行动态更新,同时 Secret & ConfigMap
也支持通过环境变量的形式,但是与 Volume 不同的是,环境变量的方式引用配置不会被动态更新。
Helm 有 2 个重要概念:chart、release。
- chart 是一个 K8S 应用的信息集合,包括配置模板、参数定义、依赖关系、文档说明等内容。
- release 是 chart 的运行实例,当 chart 被安装到 K8S 集群中,就相当于生成了一个 release。
chart 目录结构:
- Chart.yaml,用于描述 chart 的元数据信息(其中 name、version 必填)。
- README.md,相当于该 chart 的使用手册(可选)。
- LICENSE(可选)。
- requirement.yaml,定义当前 chart 的依赖关系,安装过程中,依赖的 chart 也会被一起安装。
- values.yaml,当前 chart 的配置参数
- templates 目录,里面存放了描述各类 K8S 资源的配置模板文件,Helm 会将 values.yaml 文件中的配置参数注入进去,生成标准的 YAML 配置文件。
PS:书中关于 Helm 的介绍其实是 v2 的版本,据说 V3 版本有些变更,这个待后续再去官网研究一下 ChangeLog。
2021/03/06 chap. 至结束
学习了 K8S 中的网络模型,以及如何通过 Canal 来实现 Network Policy。后面了解一下 Dashboard 应用,同时介绍了 K8S 如何实现集群监控和日志管理。