前面的课程中我们使用 Prometheus 采集了 Kubernetes 集群中的一些监控数据指标,我们也尝试使用
promQL
语句查询出了一些数据,并且在 Prometheus 的 Dashboard 中进行了展示,但是明显可以感觉到 Prometheus 的图表功能相对较弱,所以一般情况下我们会一个第三方的工具来展示这些数据,今天我们要和大家使用到的就是grafana
。
阳明的博客
大家好,我叫阳明,前小米高级开发工程师,现在回到家乡成都,独立开发者一枚,一个有着产品思维的工程师,现在也在努力将自己的产品思维体系化,全栈工程师,现阶段专注 Kubernetes 和 AIGC,创建了「k8s技术圈」社区、「优点知识」知识付费网站以及「快课星球」AI全栈开发学习网站。我可以提供企业容器化方面的知识培训和咨询工作,感兴趣的可以通过微信 gitops 和我联系。
监控 Kubernetes 集群节点
上节课我们和大家学习了怎样用 Promethues 来监控 Kubernetes 集群中的应用,但是对于 Kubernetes 集群本身的监控也是非常重要的,我们需要时时刻刻了解集群的运行状态。
对于集群的监控一般我们需要考虑以下几个方面:
- Kubernetes 节点的监控:比如节点的 cpu、load、disk、memory 等指标
- 内部系统组件的状态:比如 kube-scheduler、kube-controller-manager、kubedns/coredns 等组件的详细运行状态
- 编排级的 metrics:比如 Deployment 的状态、资源请求、调度和 API 延迟等数据指标
Kubernetes 应用监控
上一节我们和大家介绍了
Prometheus
的数据指标是通过一个公开的 HTTP(S) 数据接口获取到的,我们不需要单独安装监控的 agent,只需要暴露一个 metrics 接口,Prometheus 就会定期去拉取数据;对于一些普通的 HTTP 服务,我们完全可以直接重用这个服务,添加一个/metrics
接口暴露给 Prometheus;而且获取到的指标数据格式是非常易懂的,不需要太高的学习成本。
重新理解 kubernetes 亲和性调度
前面一篇文章理解 Kubernetes 的亲和性调度,现在仔细回头去看看,发现有很多地方没有理解透彻,不够深入,今天我们重新来理解下亲和性调度这一块知识。
Kubernetes 调度器介绍
Helm Hooks 的使用
和
Kubernetes
里面的容器一样,Helm
也提供了 Hook 的机制,允许 chart 开发人员在 release 的生命周期中的某些节点来进行干预,比如我们可以利用 Hooks 来做下面的这些事情:
- 在加载任何其他 chart 之前,在安装过程中加载 ConfigMap 或 Secret
- 在安装新 chart 之前执行作业以备份数据库,然后在升级后执行第二个作业以恢复数据
- 在删除 release 之前运行作业,以便在删除 release 之前优雅地停止服务
国庆 K8S 课程特别活动
Helm 命名模板的使用
前面我们学习了一些Helm
模板中的一些常用使用方法,但是我们都是操作的一个模板文件,在实际的应用中,很多都是相对比较复杂的,往往会超过一个模板,如果有多个应用模板,我们应该如何进行处理呢?这就需要用到新的概念:命名模板。
Helm 其他资料地址:
并发模型
Golang
的特色之一就是goroutine
,使得程序员进行并发编程更加方便,适合用来进行服务器编程。作为后端开发工程师,有必要了解并发编程面临的场景和常见的解决方案。一般情况下,是怎样做高并发的编程呢?有那些经典的模型呢?
Dockerfile 最佳实践
Docker
官方关于Dockerfile
最佳实践原文链接地址:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
Docker
可以通过从Dockerfile
包含所有命令的文本文件中读取指令自动构建镜像,以便构建给定镜像。
Dockerfiles
使用特定的格式并使用一组特定的指令。您可以在 Dockerfile Reference 页面上了解基础知识 。如果你是新手写作Dockerfile
,你应该从那里开始。
本文档介绍了由 Docker,Inc. 和 Docker 社区推荐的用于构建高效镜像的最佳实践和方法。要查看更多实践和建议,请查看 Dockerfile for buildpack-deps。
Kubernetes 服务质量 Qos 解析
QoS
是 Quality of Service 的缩写,即服务质量。为了实现资源被有效调度和分配的同时提高资源利用率,kubernetes
针对不同服务质量的预期,通过 QoS(Quality of Service)来对 pod 进行服务质量管理。对于一个 pod 来说,服务质量体现在两个具体的指标:CPU 和内存
。当节点上内存资源紧张时,kubernetes 会根据预先设置的不同 QoS 类别进行相应处理。
Helm 的基本使用
上节课我们成功安装了Helm
的客户端以及服务端Tiller Server
,我们也自己尝试创建了我们的第一个 Helm Chart 包,这节课就来和大家一起学习下 Helm 中的一些常用的操作方法。