简介:本文系统梳理Kubernetes集群部署全流程,涵盖架构解析、集群搭建、应用部署、安全加固及运维优化五大模块。通过理论讲解与配置示例结合,帮助系统管理员、开发人员及云原生技术爱好者快速掌握容器编排核心技能,实现从环境初始化到高可用集群运维的完整技术闭环。
Kubernetes作为容器编排领域的行业标准,其部署涉及计算资源调度、服务发现、自动扩缩容等核心能力。本文聚焦以下部署目标:
适用场景:
技术背景要求:
| 网络方案 | 实现原理 | 适用场景 |
|---|---|---|
| Flannel | Overlay网络(VXLAN/UDP) | 简单跨主机通信 |
| Calico | BGP路由协议 | 大规模集群,需网络策略 |
| Cilium | eBPF技术 | 高性能,支持L4/L7策略 |
| 节点类型 | CPU核心 | 内存 | 磁盘 | 数量 |
|---|---|---|---|---|
| 控制节点 | ≥4 | ≥16G | ≥100G SSD | 3(奇数) |
| 工作节点 | ≥8 | ≥32G | ≥200G SSD | ≥2 |
# 生成自签名证书示例(生产环境建议使用CA签发)openssl req -x509 -nodes -days 3650 \-newkey rsa:2048 -keyout /etc/kubernetes/pki/apiserver.key \-out /etc/kubernetes/pki/apiserver.crt \-subj "/CN=kubernetes-master"
# 使用kubeadm初始化集群(示例)kubeadm init --control-plane-endpoint "master-ip:6443" \--pod-network-cidr=10.244.0.0/16 \--service-cidr=10.96.0.0/12 \--upload-certs# 配置kubectlmkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config
# 在控制节点获取join命令kubeadm token create --print-join-command# 在工作节点执行(需替换实际token)kubeadm join master-ip:6443 --token xxxxxx \--discovery-token-ca-cert-hash sha256:yyyyyy
# calico.yaml核心配置片段apiVersion: apps/v1kind: DaemonSetmetadata:name: calico-nodespec:template:spec:containers:- name: calico-nodeenv:- name: CALICO_IPV4POOL_CIDRvalue: "10.244.0.0/16"
apiVersion: apps/v1kind: Deploymentmetadata:name: nginx-demospec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.23ports:- containerPort: 80resources:requests:cpu: "100m"memory: "128Mi"
| 服务类型 | 访问方式 | 适用场景 |
|---|---|---|
| ClusterIP | 集群内部访问 | 数据库等内部服务 |
| NodePort | 通过节点IP+端口访问 | 开发测试环境 |
| LoadBalancer | 云厂商负载均衡器 | 生产环境外网访问 |
journalctl -u kube-scheduler -n 100kubectl exec -it pod-name -- ping another-pod-ipkubectl get pods -n kube-system | grep cni通过本文的部署实践,读者已掌握Kubernetes集群从初始化到高可用运维的全流程技术。实际生产环境中,建议结合CI/CD流水线实现自动化部署,并通过Service Mesh技术增强服务治理能力。随着云原生生态的演进,可逐步探索Serverless容器、边缘计算等高级应用场景。
关键收获: