云计算深度实践者。《每天5分钟玩转OpenStack》《每天5分钟玩转Docker容器技术》作者。
Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。
本节将部署 Prometheus Operator。
本节讨论 Prometheus Operator 的架构。
本节开始学习 Prometheus Operator,它能监控集群本身的运行状态,比如 Kubernetes 的 API Server、Scheduler、Controller Manager 等管理组件是否正常工作,负荷是否过大等。
本节学习 Kubernetes 的原生集群监控方案 -- Heapster。
本章讨论 Kubernetes 常用的监控方案,从 Weave Scope 开始。
上一节我们完成了 Kubernetes Dashboard 的安装,本节就来实践一下。
Kubernetes Dashboard 为用户提供了 k8s 的 Web 管理界面。
本节通过一个 httpd 应用来实践 Network Policy。
Network Policy 通过 Label 选择 Pod,并指定其他 Pod 或外界如何与这些 Pod 通信。
Kubernetes 采用符合 CNI 规范的网络方案保证网络的标准化、扩展性和灵活性。
本节我们讨论 Kubernetes 网络模型这个重要主题。
准备就绪,可以安装和管理 chart 了。
本节讨论如何开发自己的 chart。
学习了 chart 结构和模板的知识后,现在重新实践一次 MySQL chart,相信会有更多收获。
Helm 通过模板创建 Kubernetes 能够理解的 YAML 格式的资源配置文件,我们将通过例子来学习如何使用模板。
chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。
Helm 的使用方法像极了 apt 和 yum,用 Helm 来管理 Kubernetes 应用非常方便。
本节我们将安装和部署 Helm 客户端和 Tiller 服务器。
本节学习 Helm 的架构。
本章我们将学习 Helm,Kubernetes 的包管理器。
本文讨论如何用 ConfigMap 管理应用的配置信息。
本节讨论如何以环境变量的方式使用 Secret。
本节讨论如何以 volume 方式使用 secret。
可以通过 kubectl get secret 查看存在的 secret。
k8s 是怎样管理用户名密码这类机密信息的呢?
本节演示如何为 MySQL 数据库提供持久化存储。
本节讨论 PV 动态供给,即按需动态创建 PV。
当 PV 不再需要时,可通过删除 PVC 回收。
上一节我们介绍了 PV 和 PVC,本节通过 NFS 实践。
与普通 K8s Volume 相比,PersistentVolume 和 PersistentVolumeClaim 提供了更好的可管理性。
Kubernetes 可以直接使用公有云提供的云硬盘作为 Volume,也可以使用 Ceph、GlusterFS 等开源方案。
hostPath Volume 将 Docker Host 文件系统的目录 mount 到 Pod 的容器。
本节开始学习 Kubernetes 如何管理数据,也即存储管理。
Health Check 会确保新版本确实能够工作,否则就不让其对外提供服务。
Health Check 让应用在 Scale Up 的过程中平滑地完成准备阶段,比如加载缓存数据,连接数据库。
除了 Liveness 探测,Kubernetes Health Check 机制还包括 Readiness 探测。
Liveness 探测让用户可以自定义判断容器是否健康的条件。如果探测失败,Kubernetes 就会重启容器。
Health Check强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性。
本节学习如何将应用回滚到某个特定 revision。
本节学习如何在 Kubernetes 中滚动更新应用。
本节讨论外网如何访问 Service。
在 Cluster 中,除了可以通过 Cluster IP 访问 Service,Kubernetes 还提供了更为方便的 DNS 访问。
Service Cluster IP 是一个虚拟 IP,是由 Kubernetes 节点上的 iptables 规则管理的。
Kubernets 通过 Service 访问 Pod。本节我们开始学习 Service。
Linux 中有 cron 程序定时执行任务,Kubernetes 的 CronJob 提供了类似的功能,可以定时执行 Job。
有时我们希望通过同时运行多个 Pod 来提高 Job 的执行效率。可以用 parallelism 来实现。
本节讨论 Kubernetes 如何处理运行失败的 Job。
Kubernetes 用 Job 来运行一次性任务,比如批处理程序,完成后容器就退出。
本节以 Prometheus Node Exporter 为例演示如何运行自己的 DaemonSet。