kubernetes-yaml/learn/learn-kubernetes-master/README.md

239 lines
11 KiB
Markdown
Raw Permalink Normal View History

# 一个月学会 Kubernetes
![header](./header.png)
哈喽,欢迎来到我的课程。我希望本课程可以给大家带来良好的学习体验。
在每一章中都有一个明确的重点,一个有用的话题,并且这些话题是相互关联的,让你有一个全面的了解,了解如何在实践中使用 Kubernetes。你需要大量的练习每天练习巩固每一章获得的知识形成肌肉记忆。
可以移步到 [GitHub Pages](https://yyong-brs.github.io/learn-kubernetes/) 页面进行阅读。
更多云原生技术,请关注公众号:云原生拓展
![公众号](./gongzh.png)
# 目录
- **第一部分** 快速了解 Kubernetes
- 第一章 [开始之前](./chapter1.md)
- 1.1 [了解 Kubernetes](./chapter1.md#11-了解-kubernetes)
- 1.2 [这本书适合你吗?](./chapter1.md#12-这本书适合你吗)
- 1.3 [创建你的实验环境](./chapter1.md#13-创建你的实验环境)
- 1.4 [立即见效](./chapter1.md#14-立即见效)
- 第二章 [Pods & Deployment 在 Kubernetes 中的应用](./chapter2.md)
- 2.1 [Kubernetes 如何运行并管理容器](./chapter2.md#21-kubernetes-如何运行并管理容器)
- 2.2 [通过控制器运行 Pods](./chapter2.md#22-通过控制器运行-pods)
- 2.3 [在清单文件中定义 Deployments](./chapter2.md#23-在清单文件中定义-deployments)
- 2.4 [应用在 Pods 中运行](./chapter2.md#24-应用在-pods-中运行)
- 2.5 [了解 Kubernetes 资源管理](./chapter2.md#25-了解-kubernetes-资源管理)
- 2.6 [实验室](./chapter2.md#26-实验室)
- 第三章 [通过 Service 网络连接 Pods](./chapter3.md)
- 3.1 [Kubernetes 如何路由网络流量](./chapter3.md#31-kubernetes-如何路由网络流量)
- 3.2 [在 Pods 间路由流量](./chapter3.md#32-在-pods-间路由流量)
- 3.3 [路由外部流量到 Pods](./chapter3.md#33-路由外部流量到-pods)
- 3.4 [将流量路由到 Kubernetes 外面](./chapter3.md#34-将流量路由到-kubernetes-外面)
- 3.5 [理解 Kubernetes Service 解析](./chapter3.md#35-理解-kubernetes-service-解析)
- 3.6 [实验室](./chapter3.md#36-实验室)
- 第四章 [通过 ConfigMaps 和 Secrets 配置应用程序](./chapter4.md)
- 4.1 [Kubernetes 如何为应用提供配置](./chapter4.md#41-kubernetes-如何为应用提供配置)
- 4.2 [在 ConfigMaps 中存储和使用配置文件](./chapter4.md#42-在-configmaps-中存储和使用配置文件)
- 4.3 [从 ConfigMaps 中查找配置数据](./chapter4.md#43-从-configmaps-中查找配置数据)
- 4.4 [使用 Secrets 配置敏感数据](./chapter4.md#44-使用-secrets-配置敏感数据)
- 4.5 [管理 Kubernetes 中的应用程序配置](./chapter4.md#45-管理-kubernetes-中的应用程序配置)
- 4.6 [实验室](./chapter4.md#46-实验室)
- 第五章 [通过 volumes,mounts,claims 存储数据](./chapter5.md)
- 5.1 [Kubernetes 如何构建容器文件系统](./chapter5.md#51-kubernetes-如何构建容器文件系统)
- 5.2 [在节点使用 volumes 及 mounts 存储数据](./chapter5.md#52-在节点使用-volumes-及-mounts-存储数据)
- 5.3 [使用 persistent volumes 及 claims 存储集群范围数据](./chapter5.md#53-使用-persistent-volumes-及-claims-存储集群范围数据)
- 5.4 [动态 volume provisioning 及 storage classes](./chapter5.md#54-动态-volume-provisioning-及-storage-classes)
- 5.5 [理解 Kubernetes 中存储的选择](./chapter5.md#55-理解-kubernetes-中存储的选择)
- 5.6 [实验室](./chapter5.md#56-实验室)
- 第六章 [通过 controllers 在多个 Pod 之间扩展应用](./chapter6.md)
- 6.1 [Kubernetes 如何大规模运行应用程序](./chapter6.md#61-kubernetes-如何大规模运行应用程序)
- 6.2 [使用 Deployments 和 ReplicaSets 来扩展负载](./chapter6.md#62-使用-deployments-和-replicasets-来扩展负载)
- 6.3 [使用 DaemonSets 实现高可用性](./chapter6.md#63-使用-daemonsets-实现高可用性)
- 6.4 [理解 Kubernetes 中的对象所有权](./chapter6.md#64-理解-kubernetes-中的对象所有权)
- 6.5 [实验室](./chapter6.md#65-实验室)
- **第二部分** 现实世界中的 Kubernetes
- 第七章 [使用多容器 Pods 扩展应用程序](./chapter7.md)
- 7.1 [Pod 中多个容器如何通信](./chapter7.md#71-pod-中多个容器如何通信)
- 7.2 [使用 init 容器设置应用程序](./chapter7.md#72-使用-init-容器设置应用程序)
- 7.3 [通过 adapter 容器以应用一致性](./chapter7.md#73-通过-adapter-容器以应用一致性)
- 7.4 [通过 ambassador 容器抽象连接](./chapter7.md#74-通过-ambassador-容器抽象连接)
- 7.5 [理解 Pod 环境](./chapter7.md#75-理解-pod-环境)
- 7.6 [实验室](./chapter7.md#76-实验室)
- 第八章 [使用 StatfulSets 和 Jobs 运行数据量大的应用](./chapter8.md)
- 8.1 [Kubernetes 如何用 StatefulSets 建模稳定性](./chapter8.md#81-kubernetes-如何用-statefulsets-建模稳定性)
- 8.2 [在 StatefulSets 中使用 init 容器引导 Pod](./chapter8.md#82-在-statefulsets-中使用-init-容器引导-pod)
- 8.3 [使用卷声明模板请求存储](./chapter8.md#83-使用卷声明模板请求存储)
- 8.4 [使用 Jobs 和 CronJobs 运行维护任务](./chapter8.md#84-使用-jobs-和-cronjobs-运行维护任务)
- 8.5 [为有状态应用程序选择平台](./chapter8.md#85-为有状态应用程序选择平台)
- 8.6 [实验室](./chapter8.md#86-实验室)
- 第九章 [通过 rollouts 和 rollbacks 管理应用发布](./chapter9.md)
- 9.1 [Kubernetes 如何管理 rollouts](./chapter9.md#91-kubernetes-如何管理-rollouts)
- 9.2 [使用 rollouts 和 rollbacks 更新 Deployments](./chapter9.md#92-使用-rollouts-和-rollbacks-更新-deployments)
- 9.3 [为 Deployments 配置滚动更新](./chapter9.md#93-为-deployments-配置滚动更新)
- 9.4 [DaemonSets 和 StatefulSets 中的滚动更新](./chapter9.md#94-daemonSets-和-statefulsets-中的滚动更新)
- 9.5 [理解发布策略](./chapter9.md#95-理解发布策略)
- 9.6 [实验室](./chapter9.md#96-实验室)
- 第十章 [通过 Helm 打包并管理应用](./chapter11.md)
- 10.1 [Helm 给 Kubernetes 带来了什么](./chapter11.md#101-helm-给-Kubernetes-带来了什么)
- 10.2 [使用 Helm 打包你自己的应用](./chapter11.md#102-使用-helm-打包你自己的应用)
- 10.3 [charts 中的模块依赖](./chapter11.md#103-charts-中的模块依赖)
- 10.4 [升级及回滚 Helm releases](./chapter11.md#104-升级及回滚-helm-releases)
- 10.5 [理解 Helm 定位](./chapter11.md#105-理解-helm-定位)
- 10.6 [实验室](./chapter11.md#106-实验室)
- 第十一章 [App 开发——开发人员工作流程及 CI/CD](./chapter11.md)
- 11.1 [Docker 开发人员工作流程](./chapter11.md#111-docker-开发人员工作流程)
- 11.2 [Kubernetes 开发人员工作流程](./chapter11.md#112-kubernetes-开发人员工作流程)
- 11.3 [使用上下文和名称空间隔离工作负载](./chapter11.md#113-使用上下文和名称空间隔离工作负载)
- 11.4 [在不考虑 Docker 的 Kubernetes 中持续交付](./chapter11.md#114-在不考虑-docker-的-kubernetes-中持续交付)
- 11.5 [评估 Kubernetes 上的开发人员工作流程](./chapter11.md#115-评估-kubernetes-上的开发人员工作流程)
- 11.6 [实验室](./chapter11.md#116-实验室)
- **第三部分** 为生产而准备
- 第十二章 [增强自我修复应用程序](./chapter12.md)
- 12.1 [使用 readiness 探测将流量路由到健康 Pods](./chapter12.md#121-使用-readiness-探测将流量路由到健康-pods)
- 12.2 [通过 liveness 探测重启不健康的 Pods](./chapter12.md#122-通过-liveness-探测重启不健康的-pods)
- 12.3 [使用 Helm 安全地部署升级](./chapter12.md#123-使用-helm-安全地部署升级)
- 12.4 [通过 resource limits 保护应用和节点](./chapter12.md#124-通过-resource-limits-保护应用和节点)
- 12.5 [了解自我修复应用的局限性](./chapter12.md#125-了解自我修复应用的局限性)
- 12.6 [实验室](./chapter12.md#126-实验室)
- 第十三章 [使用 Fluentd 和 Elasticsearch 集中化日志](./chapter13.md)
- 13.1 [Kubernetes 如何存储日志条目](./chapter13.md#131-kubernetes-如何存储日志条目)
- 13.2 [使用 Fluentd 收集节点日志](./chapter13.md#132-使用-fluentd-收集节点日志)
- 13.3 [向 Elasticsearch 发送日志](./chapter13.md#133-向-elasticsearch-发送日志)
- 13.4 [解析和过滤日志条目](./chapter13.md#134-解析和过滤日志条目)
- 13.5 [了解 Kubernetes 中的日志记录选项](./chapter13.md#135-了解-kubernetes-中的日志记录选项)
- 13.6 [实验室](./chapter13.md#136-实验室)
- 第十四章 [使用 Prometheus 监控应用程序和 Kubernetes](./chapter14.md)
- 14.1 [Prometheus 如何监控 Kubernetes 的工作负载](./chapter14.md#141-prometheus-如何监控-kubernetes-的工作负载)
- 14.2 [监视使用 Prometheus 客户端库构建的应用程序](./chapter14.md#142-监视使用-prometheus-客户端库构建的应用程序)
- 14.3 [通过 metrics exporters 来监控第三方应用](./chapter14.md#143-通过-metrics-exporters-来监控第三方应用)
- 14.4 [监控容器以及 kubernetes 对象](./chapter14.md#144-监控容器以及-kubernetes-对象)
- 14.5 [了解您在监控方面所做的投资](./chapter14.md#145-了解您在监控方面所做的投资)
- 14.6 [实验室](./chapter14.md#146-实验室)
- 第十五章 [使用 Ingress 管理流入流量](./chapter15.md)
- 15.1 [Kubernetes 如何使用 Ingress 路由流量](./chapter15.md#151-kubernetes-如何使用-ingress-路由流量)
- 15.2 [使用 Ingress rules 路由 Http 流量](./chapter15.md#152-使用-ingress-rules-路由-http-流量)
- 15.3 [比较 Ingress 控制器](./chapter15.md#153-比较-ingress-控制器)
- 15.4 [使用 Ingress 通过 HTTPS 保护您的应用程序](./chapter15.md#154-使用-ingress-通过-https-保护您的应用程序)
- 15.5 [理解 Ingress 及 Ingress 控制器](./chapter15.md#155-理解-ingress-及-ingress-控制器)
- 15.6 [实验室](./chapter15.md#156-实验室)
- 第十六章 [使用策略上下文和准入控制保护应用程序](./chapter16.md)
- 16.1 [使用网络策略(network policies)保护通信](./chapter16.md#161-使用网络策略(network-policies)保护通信)
- 16.2 [使用安全上下文(security contets)限制容器功能](./chapter16.md#162-使用安全上下文(security-contets)限制容器功能)
- 16.3 [使用 webhook 阻止和修改工作负载](./chapter16.md#163-使用-webhook-阻止和修改工作负载)
- 16.4 [使用 Open Policy Agent 控制准入](./chapter16.md#164-使用-open-policy-agent-控制准入)
- 16.5 [深入了解 Kubernetes 中的安全性](./chapter16.md#165-深入了解-kubernetes-中的安全性)
- 16.6 [实验室](./chapter16.md#166-实验室)