简介:本文详细解析k8s私有化部署的完整流程,涵盖环境规划、组件安装、配置优化及运维管理,提供可落地的技术方案与实操建议,助力企业构建安全高效的容器化平台。
在公有云服务普及的今天,k8s私有化部署仍是企业构建容器化平台的重要选择。其核心价值体现在三方面:
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| Master节点 | 4核16G+100GB | 8核32G+200GB(NVMe SSD) |
| Worker节点 | 8核32G+200GB | 16核64G+500GB(分布式存储) |
| 存储节点 | - | 3节点Ceph集群(每节点12块HDD) |
关键指标:单Master节点可支撑2000+节点集群,但生产环境建议采用3Master高可用架构。
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: example-ingressannotations:nginx.ingress.kubernetes.io/limit-rpm: "100"spec:rules:- host: "example.com"http:paths:- path: /pathType: Prefixbackend:service:name: web-serviceport:number: 80
使用kubeadm初始化集群(以v1.27为例):
# Master节点初始化kubeadm init --kubernetes-version v1.27.0 \--pod-network-cidr=10.244.0.0/16 \--control-plane-endpoint="master.example.com:6443"# Worker节点加入kubeadm join master.example.com:6443 --token abcdef.1234567890abcdef \--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxx
配置优化:
/etc/kubernetes/manifests/kube-apiserver.yaml,增加审计日志:以Rook-Ceph为例的存储类配置:
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:name: ceph-blockprovisioner: rook-ceph.block.csi.ceph.comparameters:clusterID: rook-cephpool: replica-poolimageFormat: "2"imageFeatures: "layering"csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisionercsi.storage.k8s.io/provisioner-secret-namespace: rook-cephreclaimPolicy: DeleteallowVolumeExpansion: true
使用NetworkPolicy限制微服务间通信:
apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:name: api-allow-only-frontendspec:podSelector:matchLabels:app: api-servicepolicyTypes:- Ingressingress:- from:- podSelector:matchLabels:app: frontendports:- protocol: TCPport: 8080
| 指标 | 阈值 | 告警级别 |
|---|---|---|
| kube_node_status_ready | 0 | Critical |
| kube_pod_status_phase{phase=”Pending”} | >0 | Warning |
| node_filesystem_avail_bytes{mountpoint=”/“} | <10% | Critical |
推荐采用”蓝绿部署”方式升级:
velero backup create full-backup --include-namespaces=prod
ETCDCTL_API=3 etcdctl snapshot save snapshot.db \--endpoints=https://127.0.0.1:2379 \--cacert=/etc/kubernetes/pki/etcd/ca.crt \--cert=/etc/kubernetes/pki/etcd/server.crt \--key=/etc/kubernetes/pki/etcd/server.key
kubectl top nodes查看网络IO,结合iperf3测试节点间带宽net.ipv4.tcp_tw_reuse=1内核参数ceph df检查存储池使用率,使用iotop定位高IO进程vfs_cache_pressure=100内核参数私有化部署k8s是构建企业级容器平台的核心路径,需在安全性、性能、成本间取得平衡。建议采用”小步快跑”策略,先实现基础功能上线,再逐步优化。某金融客户案例显示,通过分阶段实施,其容器化应用发布效率提升60%,资源利用率提高45%。