二进制部署k8s集群
0. 前言
k8s从1.24版本开始不再直接支持docker,但可以自行调整相关配置,实现1.24版本后的k8s还能调用docker。其实docker自身也是调用containerd,与其k8s通过docker再调用containerd,不如k8s直接调用containerd,以减少性能损耗。
除了containerd,比较流行的容器运行时还有podman,但是podman官方安装文档要么用包管理器在线安装,要么用包管理器下载一堆依赖再编译安装,内网离线环境下安装可能会比较麻烦,而containerd的安装包是静态二进制文件,解压后就能直接使用,离线环境下相对方便一点。
本文将在内网离线环境下用二进制文件部署一个三节点集群+harbor镜像仓库。集群中部署了三个apiserver,并配置nginx反向代理,提升master的高可用性(如对高可用有进一步要求,可以再加个keepalive)。
相关软件信息:
| 名称 | 版本 | 说明 |
|---|---|---|
| containerd | cri-containerd-cni-1.7.2-linux-amd64 | 容器运行时 |
| harbor | 2.8.2 | 容器镜像仓库 |
| etcd | 3.4.24 | 键值对数据库 |
| kubernetes | 1.26.6 | 容器编排系统 |
| nginx | 1.25.1 | 负载均衡,反向代理apiserver |
服务器信息:
| IP | 操作系统 | 硬件配置 | Hostname | 说明 |
|---|---|---|---|---|
| 192.168.3.31 | Debian 11.6 amd64 | 4C4G | k8s31 | nginx+etcd+master+node |
| 192.168.3.32 | Debian 11.6 amd64 | 4C4G | k8s32 | etcd+master+node |
| 192.168.3.33 | Debian 11.6 amd64 | 4C4G | k8s33 | etcd+master+node |
| 192.168.3.43 | Debian 11.6 amd64 | 4C4G | 无 | harbor,内网域名registry.atlas.cn |