企业级Kubernetes离线部署指南
问题场景与需求分析
1.1 核心挑战
在隔离网络环境下构建企业级Kubernetes集群时面临三大挑战:
- 资源隔离:无法直接访问DockerHub、GitHub等公共资源库
- 安全合规:需通过私有镜像仓库(Harbor)实现镜像生命周期管理
- 生产级要求:需满足高可用架构、持久化存储、网络策略等企业特性
1.2 解决方案要点
- 跳板机设计:通过双网卡笔记本实现:
- 外网侧:下载RKE2二进制文件、Harbor安装包、依赖镜像
- 内网侧:搭建HTTP文件服务器同步资源
- 离线资源池:
- RKE2 v1.26.5+ 离线包
- Harbor v2.7.0+ 离线安装包
- 预下载Kubernetes组件镜像(约300个)
- 网络规划:
架构设计与组件分布
2.1 逻辑架构图
2.2 节点规格建议
角色类型 | CPU | 内存 | 磁盘 | 数量 | 网络要求 |
---|---|---|---|---|---|
Server | 4+ | 8G+ | 100GB+ x3 | 3 | 1Gbps 内网 |
Agent | 8+ | 16G+ | 200GB+ | N | 10Gbps 内网 |
Harbor | 4 | 8G | 1TB | 1 | 独立存储网络 |
关键配置与问题排查
3.1 RKE2数据目录迁移
修改/etc/rancher/rke2/config.yaml
指定数据目录到数据盘:
1 | data-dir: /data/rke2 |
3.2 指定Ingress节点
- 给目标节点打标签:
1
kubectl label node node01 role=server
- 部署定制化Ingress, 创建
/data/rke2/server/manifests/rke2-ingress-nginx-config.yaml
:1
2
3
4
5
6
7
8
9
10apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-ingress-nginx
namespace: kube-system
spec:
valuesContent: |-
controller:
nodeSelector:
role: server - 重启
rke2-server
服务
3.3 NFS StorageClass配置
在K8S所有节点上安装nfs客户端工具:
1
2sudo apt-get update
sudo apt-get install nfs-common获取并安装Helm Chart
1
2
3
4
5
6
7
8
9$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner \
-n storage \
--create-namespace \
--set nfs.server=NFS_SERVER_IP \
--set nfs.path=/data/exports/k8s \
--set storageClass.name=nfs \
--set storageClass.defaultClass=true \
nfs-subdir-external-provisioner/nfs-subdir-external-provisioner验证是否成功
1
2
3
4
5
6
7
8
9
10
11# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
storageClassName: nfs
accessModes: [ReadWriteMany]
resources:
requests:
storage: 1Gi1
2
3
4$ kubectl apply -f pvc.yaml
$ ssh root@nfs-server ls /data/exports/k8s
default-test-pvc-pvc-e4c14e5b-e820-4ca0-8bc0-f08d40e333ae
$ kubectl delete -f pvc.yaml
参考链接
注:所有操作建议先在预发布环境验证,生产部署前做好etcd备份。可通过
rke2 etcd-snapshot save
创建集群快照。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 三木的技术博客!
评论