用 kubeadm 在 CentOS 7 上从零搭一套多节点 k8s 集群的完整记录,包含 cri-dockerd 适配器、容器运行时配置,以及节点 IP 变更后重新初始化集群的办法。IP、token、cert-hash 都用占位符,实际操作时换成自己的。
硬件和网络要求
- 每台机器 2GB 以上内存,CPU 2 核以上
- 所有机器网络互通(公网内网都行)
- 节点之间不能有重复的主机名、MAC 地址或 product_uuid(
ip a可看) - 必须禁用交换分区,否则 kubelet 工作不正常:
用 kubeadm 在 CentOS 7 上从零搭一套多节点 k8s 集群的完整记录,包含 cri-dockerd 适配器、容器运行时配置,以及节点 IP 变更后重新初始化集群的办法。IP、token、cert-hash 都用占位符,实际操作时换成自己的。
ip a 可看)TeamCity 里 build 按工程(project)分组,工程下可以继续分子工程。建 build 有两种方式。
在 UI 上一步步手动建工程、配 VCS、加 build step。
把用 Kotlin DSL 写的配置放在 VCS 仓库里,TeamCity 会按工程代码自动创建出完整的多个 build。流程:
蓝鲸 BK-CI(腾讯开源的持续集成系统)在 k8s 上部署时遇到的一些问题。分开源版和社区版两套,测试都用的 minikube 集群。
官方文档:bk-ci/docs/install/kubernetes.md。
kubeadm 那套手动流程步骤多、容易踩坑。Sealos 把整个集群封装成镜像,一条 sealos run 就把 control plane、worker 节点、CNI、helm 全装好,适合快速起一套能用的集群。参考官方文档。
下面操作都在主节点 root 用户下执行。
整理一下这三个工具各自干什么、为什么要一起用、一个真实项目里它们怎么衔接。
现代云原生项目的基础设施栈,从下到上大致四层,每一层只解决一类问题:
┌─────────────────────────────────────────┐
│ Terraform → 创建基础设施(云资源) │ Provision 建房
├─────────────────────────────────────────┤
│ Ansible → 配置服务器(装软件、改配置) │ Configure 装修(可选)
├─────────────────────────────────────────┤
│ Docker → 打包应用(镜像 + 运行时) │ Package 装家具
├─────────────────────────────────────────┤
│ Kubernetes → 编排容器(调度、伸缩、自愈) │ Orchestrate 物业管理
└─────────────────────────────────────────┘
k8s 的概念、集群搭建和运维记录。
sealos run 拉起 control plane + worker + CNI,再用 podman 跑 Kuboard用 docker-compose 起一套 ZooKeeper 架构的三节点 Kafka 集群,再配 Kafka Connect 把 topic 数据自动同步到 Elasticsearch,一个 topic 对应一个 index。下面把 IP 都写成 <HOST_IP> 占位,部署时换成宿主机地址。
用 bitnami 的镜像,一个 ZooKeeper 控制器 + 三个 broker + 一个可视化管理页。关键在每个 broker 的 KAFKA_CFG_ADVERTISED_LISTENERS 要写宿主机能访问到的地址,否则外部客户端连不上。
Elasticsearch + Logstash + Kibana 日志栈的部署记录,从单机 Docker 到 k8s。
Windows 上装 TeamCity server 和 agent 的记录。同一个 exe 既能装 server 也能装 agent,安装时按需选。免费版最多三个 agent。
去官网下载 teamcity.exe,双击安装,它会注册成 Windows 服务。安装向导里可以选装 server 还是 agent。参考官方快速安装指南。