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

239 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 一个月学会 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-实验室)