通过PromQL用户可以非常方便地对监控样本数据进行统计分析,PromQL支持常见的运算操作符,同时PromQL中还提供了大量的内置函数可以实现对数据的高级处理。在学习PromQL之前,还需要了解Prometheus的样本数据模型。PromQL作为Prometheus的核心能力除了实现数据的对外查询和展现,同时告警监控也是依赖PromQL实现的。

阅读全文 »

Prometheus简介


Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。2016年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。

阅读全文 »

Harbor支持通过Docker compose和Helm Chart进行部署,本文主要介绍使用Helm在Kubernetes集群上安装Harbor的方法,并且官方提供了对应的Helm Chart。

Harbor简介


Harbor是一个开源的可信云原生注册表项目,用于存储、签名和扫描内容。Harbor通过添加用户通常需要的功能(例如安全性、身份和管理)来扩展了开源Docker Distribution。拥有更接近构建和运行环境的注册表可以提高图像传输效率。 Harbor支持在注册中心之间复制镜像,还提供高级安全功能,例如用户管理、访问控制和活动审计。

阅读全文 »

众所周知,Kubernetes每隔3个月就会发布一个版本,虽然在2021年7月20日Kubernetes官博宣布,将版本发布周期由每年4次调整为每年3次,但每年3个版本的发布同样意味着更多功能特性的来临,如果一直不更新,势必会导致许多新功能无法使用。因此,如何对Kubernetes集群进行升级是每个Kubernetes用户均需面临的一个问题。目前比较流行的Kubernetes集群部署方式分为kubeadm部署和二进制部署,本文主要介绍如何将kubeadm方式部署的Kubernetes集群进行升级。(以1.20.X升级至1.21.X为例)

阅读全文 »

etcd简介


etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统。etcd是CoreOS公司发起的一个开源项目,授权协议为Apache。

说明
目前etcd在Kubernetes中主要用于存储所有需要持久化的数据,本文主要针对Kubernetes使用etcd的场景,介绍etcd常用命令,以及如何对etcd进行备份与还原,以保证Kubernetes集群的稳定运行。

阅读全文 »

服务器硬件配置推荐


Mater节点

  • 物理机虚拟机均可,至少1台,高可用集群至少2台(etcd集群必须奇数台)
  • 推荐配置:实验环境2核2G、测试环境2核4G、生产环境8核16G
  • 关闭所有swap分区或不划分swap分区
阅读全文 »

Kubernetes集群为Jenkins添加了一个新的自动化层。由Kubernetes来确保资源得到有效利用,并且服务器和基础架构不会过载。Kubernetes协调容器部署的能力可确保Jenkins始终拥有适量的可用资源。

先决条件


  • 一套可用的Kubernetes集群,测试环境可使用minikube
  • Kubernetes可提供持久化存储的能力,测试环境可使用NFS提供
阅读全文 »

为何要弃用Docker


https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md

在Kuberntes平台中,为了解决与容器运行时(例如Docker)集成问题,在早期社区推出CRI(Container Runtime Interface,容器运行时接口),以支持更多的容器运行时。而Docker本身并不支持CRI(容器运行时接口)这一Kubernetes运行时API,Kubernetes用户一直以来所使用的其实是名为“dockershim”的桥接服务。Dockershim能够转换Docker API与CRI,但在后续版本当中,Kubernetes将不再提供这项桥接服务。

阅读全文 »

环境要求


Master节点

  • 物理机虚拟机均可,至少1台,高可用集群至少2台(etcd集群必须奇数台)
  • 推荐配置:实验环境2核2G、测试环境2核4G、生产环境8核16G
  • 关闭所有swap分区或不划分swap分区
阅读全文 »
0%