cloudman6 (34)in #kubernetes • 7 years ago • NoneKubernetes 集群日志管理 — Kubernetes(67)Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。Elasticsearch…cloudman6 (34)in #kubernetes • 7 years ago • None部署 Prometheus Operator — Kubernetes(66)CloudMan 在实践时使用的是 Prometheus Operator 版本 v0.14.0。由于项目开发迭代速度很快,部署方法可能会更新,必要时请参考官方文档。 下载最新源码 git clone cloudman6 (34)in #kubernetes • 7 years ago • NonePrometheus Operator 架构 — Kubernetes(65)本节讨论 Prometheus Operator 的架构。 因为 Prometheus Operator 是基于 Prometheus 的,我们需要先了解一下 Prometheus。 Prometheus 架构…cloudman6 (34)in #kubernetes • 7 years ago • NonePrometheus Operator — Kubernetes(64)前面我们介绍了 Kubernetes 的两种监控方案 Weave Scope 和 Heapster,它们主要的监控对象是 Node 和 Pod。这些数据对 Kubernetes…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None用 Heapster 监控集群 — Kubernetes(63)Heapster 是 Kubernetes 原生的集群监控方案。Heapster 以 Pod 的形式运行,它会自动发现集群节点、从节点上的 Kubelet 获取监控数据。Kubelet 则是从节点上的 cAdvisor 收集数据。…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None用 Weave Scope 监控集群 — Kubernetes(62)创建 Kubernetes 集群并部署容器化应用只是第一步。一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其职,有足够的资源满足应用的需求。Kubernetes…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None使用 Dashboard — Kubernetes(61)上一节我们完成了 Kubernetes Dashboard 的安装,本节就来实践一下。 Dashboard 界面结构 Dashboard 的界面很简洁,分为三个大的区域。 顶部操作区…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • NoneKubernetes Dashboard — Kubernetes(60)前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的。为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 Kubernetes…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None实践 Network Policy — Kubernetes(59)为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml 为: httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务。部署应用:…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • NoneNetwork Policy — Kubernetes(58)Network Policy 是 Kubernetes 的一种资源。Network Policy 通过 Label 选择 Pod,并指定其他 Pod 或外界如何与这些 Pod 通信。 默认情况下,所有 Pod…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None各种网络方案 — Kubernetes(57)网络模型有了,如何实现呢? 为了保证网络方案的标准化、扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范。 CNI 是由 CoreOS…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None网络模型 — Kubernetes(56)本节我们讨论 Kubernetes 网络这个重要主题。 Kubernetes 作为编排引擎管理着分布在不同节点上的容器和 Pod。Pod、Service、外部组件之间需要一种可靠的方式找到彼此并进行通信,Kubernetes…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None管理和安装 chart — Kubernetes(55)安装 chart 当我们觉得准备就绪,就可以安装 chart,Helm 支持四种安装方法: 安装仓库中的 chart,例如: helm install stable/nginx 通过 tar 包安装,例如: helm…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None开发自己的 chart — Kubernetes(54)Kubernetes 给我们提供了大量官方 chart,不过要部署微服务应用,还是需要开发自己的 chart,下面就来实践这个主题。 创建 chart 执行 helm create mychart 的命令创建 chart…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • None再次实践 MySQL chart — Kubernetes(53)学习了 chart 结构和模板的知识后,现在重新实践一次 MySQL chart,相信会有更多收获。 chart 安装前的准备 作为准备工作,安装之前需要先清楚 chart 的使用方法。这些信息通常记录在 values.yaml…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • Nonechart 模板 — Kubernetes(52)Helm 通过模板创建 Kubernetes 能够理解的 YAML 格式的资源配置文件,我们将通过例子来学习如何使用模板。 以 templates/secrets.yaml 为例: 从结构看,文件的内容非常像…cloudman6 (34)in #kubernetes • 7 years agosteemCreated with Sketch. • Nonechart 目录结构 — Kubernetes(51)chart 是 Helm 的应用打包格式。chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,比如…cloudman6 (34)in #kubernetes • 7 years ago • None使用 Helm — Kubernetes(50)Helm 安装成功后,可执行 helm search 查看当前可安装的 chart。 这个列表很长,这里只截取了一部分。大家不禁会问,这些 chart 都是从哪里来的? 前面说过,Helm 可以像 apt 和 yum…cloudman6 (34)in #kubernetes • 7 years ago • None部署 Helm — Kubernetes(49)本节我们将安装和部署 Helm 客户端和 Tiller 服务器。 Helm 客户端 通常,我们将 Helm 客户端安装在能够执行 kubectl 命令的节点上,只需要下面一条命令: curl | bashcloudman6 (34)in #kubernetes • 7 years ago • NoneHelm 架构 — Kubernetes(48)在实践之前,我们先来看看 Helm 的架构。 Helm 有两个重要的概念:chart 和 release。 chart 是创建一个应用的信息集合,包括各种 Kubernetes…