第一次用 kubectl 的人多半在这卡过:打开用户目录下的 .kube/config,开头一段就叫 clusters,后面跟着一长串 server 地址和证书路径。其实它就是集群列表,记录你手上能连的每个集群怎么连。
cluster 是单数,加 s 才是一群
cluster 在英文里指群、簇,加了 s 就是复数。技术圈说的集群,指多台服务器互相配合、对外当成一台机器用:一台挂了别的顶上,负载太高就加节点,可用性和算力都靠这个思路。数据库集群、计算集群、Web 集群,名字不同,内核都是冗余加分工。判断是不是集群有个简单办法:看能不能往里加机器、拔掉一台还照常干活。
常见的几个出场位置
- Kubernetes:kubeconfig 里的 clusters 段存 API server 地址、证书和密钥路径,kubectl config get-clusters 能直接列出来,再配合 context 决定当前操作的是哪套环境
- 数据库:Redis Cluster 把数据切成 16384 个槽分给各节点管理,MySQL 的高可用方案也常以集群形式部署
- Windows 服务器:故障转移集群,数据库和文件服务做高可用时常见
- 高性能计算:科研单位把几十上百台机器凑成计算集群跑仿真和渲染
- 办公内网:几台文件服务器组成集群对外一个地址,坏一台用户基本无感
看到这个词先看上下文
报错里带 clusters,先看前缀。kubectl 开头的,是集群连接配置问题,检查 server 地址通不通、证书文件存不存在,用 curl 直接请求一下 API 地址就有数,看到 connection refused 多半是地址或端口不对;certificate signed by unknown authority 这类提示,则指向证书配置。数据库文档里的,多半是分片或副本配置。普通软件界面里出现,一般也指一组协同工作的节点,不会有太出格的含义。
拿不准的时候,把词前面的软件名一起拿去搜,比单搜一个单词准得多。另外别把它和 cloud 混了,一个指集群一个指云,字面相近,意思两码事。